From bfd995e46bde2e7c4b342a2a7a012ff8462f3a24 Mon Sep 17 00:00:00 2001 From: DaPi Date: Sat, 21 Dec 2024 17:39:22 +0100 Subject: [PATCH] Observable und Typo --- .../ViewModels/StundeViewModel.cs | 4 +- .../ViewModels/StundenViewModel.cs | 58 +++++++++---------- Jugenddienst Stunden/Views/StundenPage.xaml | 2 +- 3 files changed, 29 insertions(+), 35 deletions(-) diff --git a/Jugenddienst Stunden/ViewModels/StundeViewModel.cs b/Jugenddienst Stunden/ViewModels/StundeViewModel.cs index d2b6b01..8ab10ce 100644 --- a/Jugenddienst Stunden/ViewModels/StundeViewModel.cs +++ b/Jugenddienst Stunden/ViewModels/StundeViewModel.cs @@ -162,7 +162,7 @@ public partial class StundeViewModel : ObservableObject, IQueryAttributable { DayTime.GemeindeAktiv = OptionsGemeinde.FirstOrDefault(Gemeinde => Gemeinde.Id == DayTime.Gemeinde) ?? new Gemeinde(); DayTime.ProjektAktiv = OptionsProjekt.FirstOrDefault(Projekt => Projekt.Id == DayTime.Projekt) ?? new Projekt(); DayTime.FreistellungAktiv = OptionsFreistellung.FirstOrDefault(Freistellung => Freistellung.Id == DayTime.Free) ?? new Freistellung(); - OnPropertyChanged(nameof(DayTime)); + //OnPropertyChanged(nameof(DayTime)); } catch (Exception e) { AlertEvent?.Invoke(this, e.Message); @@ -215,7 +215,7 @@ public partial class StundeViewModel : ObservableObject, IQueryAttributable { FreistellungEnabled = true; OnPropertyChanged(nameof(SubTitle)); - OnPropertyChanged(nameof(DayTime)); + //OnPropertyChanged(nameof(DayTime)); } } diff --git a/Jugenddienst Stunden/ViewModels/StundenViewModel.cs b/Jugenddienst Stunden/ViewModels/StundenViewModel.cs index 2da0991..40c3aeb 100644 --- a/Jugenddienst Stunden/ViewModels/StundenViewModel.cs +++ b/Jugenddienst Stunden/ViewModels/StundenViewModel.cs @@ -11,7 +11,7 @@ namespace Jugenddienst_Stunden.ViewModels; /// /// ViewModel für die Stundenliste /// -internal class StundenViewModel : ObservableObject, IQueryAttributable, INotifyPropertyChanged { +internal partial class StundenViewModel : ObservableObject, IQueryAttributable, INotifyPropertyChanged { public string LoadOverview => "Lade Summen für " + DateTime.Today.ToString("MMMM"); @@ -28,9 +28,24 @@ internal class StundenViewModel : ObservableObject, IQueryAttributable, INotifyP //private HoursBase HoursBase = new HoursBase(); internal Settings Settings = new Settings(); - public TimeOnly Sollstunden { get; set; } + /// + /// Zu leistende Stunden + /// + [ObservableProperty] + private TimeOnly sollstunden; + /// + /// Geleistete Stunden an einem Tag + /// + [ObservableProperty] + private TimeOnly dayTotal; + /// + /// Liste der Tageszeiten + /// + [ObservableProperty] + private List dayTimes = new List(); + public string Title { get; set; } = GlobalVar.Name + " " + GlobalVar.Surname; private Hours _hour; @@ -38,22 +53,8 @@ internal class StundenViewModel : ObservableObject, IQueryAttributable, INotifyP get => _hour; } - /// - /// Gesamtstunden an einem Tag - /// - public TimeOnly DayTotal { get; set; } - /// - /// Liste der Tageszeiten - /// - private List _dayTimes = new List(); - public List DayTimes { - get => _dayTimes; - set { - SetProperty(ref _dayTimes, value); - OnPropertyChanged(nameof(DayTimes)); - } - } + /// /// Mindest-Datum für den Datepicker @@ -124,16 +125,9 @@ internal class StundenViewModel : ObservableObject, IQueryAttributable, INotifyP /// /// Seite neu laden /// + [ObservableProperty] private bool isRefreshing; - public bool IsRefreshing { - get => isRefreshing; - set { - if (isRefreshing != value) { - isRefreshing = value; - OnPropertyChanged(); - } - } - } + /// /// Dürfen Gemeinden verwendet werden? @@ -212,7 +206,7 @@ internal class StundenViewModel : ObservableObject, IQueryAttributable, INotifyP //_dayTimes = await HoursBase.LoadDay(date); BaseResponse dat = await HoursBase.LoadBase("date=" + date.ToString("yyyy-MM-dd")); - _dayTimes = dat.daytimes; + DayTimes = dat.daytimes; Settings = dat.settings; GemeindeAktivSet = Settings.GemeindeAktivSet; ProjektAktivSet = Settings.ProjektAktivSet; @@ -224,7 +218,7 @@ internal class StundenViewModel : ObservableObject, IQueryAttributable, INotifyP List _soll; TimeSpan span = TimeSpan.Zero; bool merker = false; - foreach (DayTime dt in _dayTimes) { + foreach (DayTime dt in DayTimes) { span += dt.End - dt.Begin; //Nachtstunden dazurechnen if (dt.Night.Ticks > 0 && !merker) { @@ -238,20 +232,20 @@ internal class StundenViewModel : ObservableObject, IQueryAttributable, INotifyP DayTotal = TimeOnly.FromTimeSpan(span); //Nach der Tagessumme die anderen Tage anhängen - if (_dayTimes != null) { + if (DayTimes != null) { BaseResponse dat1 = await HoursBase.LoadBase("date=" + date.ToString("yyyy-MM-dd") + "&tilldate=" + date.AddDays(3).ToString("yyyy-MM-dd")); if (dat1.daytimes != null) - _dayTimes = dat.daytimes.Concat(dat1.daytimes).ToList(); + DayTimes = dat.daytimes.Concat(dat1.daytimes).ToList(); } } catch (Exception e) { - _dayTimes = new List(); + DayTimes = new List(); //TODO: hier könnte auch ein Fehler kommen, dann wäre InfoEvent falsch. InfoEvent?.Invoke(this, e.Message); } finally { OnPropertyChanged(nameof(DayTotal)); OnPropertyChanged(nameof(Sollstunden)); - OnPropertyChanged(nameof(DayTimes)); + //OnPropertyChanged(nameof(DayTimes)); } } diff --git a/Jugenddienst Stunden/Views/StundenPage.xaml b/Jugenddienst Stunden/Views/StundenPage.xaml index 54d4e54..195f755 100644 --- a/Jugenddienst Stunden/Views/StundenPage.xaml +++ b/Jugenddienst Stunden/Views/StundenPage.xaml @@ -33,7 +33,7 @@ - +