using CommunityToolkit.Mvvm.ComponentModel; using Elwig.Models.Entities; using System; using System.Collections.Generic; using System.Windows; namespace Elwig.ViewModels { public partial class MemberBusinessSharesViewModel : ObservableObject { [ObservableProperty] private string _title = "Geschäftsanteilbewegungen - Elwig"; public required Member FilterMember { get; set; } [ObservableProperty] private MemberHistory? _selectedHistoryEntry; [ObservableProperty] private IEnumerable _history = []; [ObservableProperty] private string? _dateNoticeString; public DateOnly? DateNotice { get => DateOnly.TryParseExact(DateNoticeString, "dd.MM.yyyy", out var d) ? d : null; set => DateNoticeString = $"{value:dd.MM.yyyy}"; } [ObservableProperty] private string? _dateEffectiveString; public DateOnly? DateEffective { get => DateOnly.TryParseExact(DateEffectiveString, "dd.MM.yyyy", out var d) ? d : null; set => DateEffectiveString = $"{value:dd.MM.yyyy}"; } [ObservableProperty] private string? _reason; [ObservableProperty] private string? _sharesString; public int? Shares { get => int.TryParse(SharesString, out var shares) ? shares : null; set => SharesString = $"{value}"; } [ObservableProperty] private string? _otherMgNrString; public int? OtherMgNr { get => int.TryParse(OtherMgNrString, out var mgnr) ? mgnr : null; set => OtherMgNrString = $"{value}"; } [ObservableProperty] private string? _deductYearString; public int? DeductYear { get => int.TryParse(DeductYearString, out var year) ? year : null; set => DeductYearString = $"{value}"; } [ObservableProperty] private bool _deduct; [ObservableProperty] private bool _memberHasSigned; [ObservableProperty] private string? _valuePerShareString; public decimal? ValuePerShare { get => decimal.TryParse(ValuePerShareString, out var v) ? v : null; set => ValuePerShareString = $"{value:0.00}"; } [ObservableProperty] private string? _totalAmount; [ObservableProperty] private string? _comment; [ObservableProperty] private Visibility _controlButtonsVisibility = Visibility.Visible; [ObservableProperty] private Visibility _editingButtonsVisibility = Visibility.Hidden; [ObservableProperty] private Visibility _personalNameVisibility = Visibility.Visible; [ObservableProperty] private Visibility _juridicalNameVisibility = Visibility.Hidden; } }