Observable und Typo

This commit is contained in:
2024-12-21 17:39:22 +01:00
parent d7ccb883b4
commit bfd995e46b
3 changed files with 29 additions and 35 deletions

View File

@@ -162,7 +162,7 @@ public partial class StundeViewModel : ObservableObject, IQueryAttributable {
DayTime.GemeindeAktiv = OptionsGemeinde.FirstOrDefault(Gemeinde => Gemeinde.Id == DayTime.Gemeinde) ?? new Gemeinde(); DayTime.GemeindeAktiv = OptionsGemeinde.FirstOrDefault(Gemeinde => Gemeinde.Id == DayTime.Gemeinde) ?? new Gemeinde();
DayTime.ProjektAktiv = OptionsProjekt.FirstOrDefault(Projekt => Projekt.Id == DayTime.Projekt) ?? new Projekt(); DayTime.ProjektAktiv = OptionsProjekt.FirstOrDefault(Projekt => Projekt.Id == DayTime.Projekt) ?? new Projekt();
DayTime.FreistellungAktiv = OptionsFreistellung.FirstOrDefault(Freistellung => Freistellung.Id == DayTime.Free) ?? new Freistellung(); DayTime.FreistellungAktiv = OptionsFreistellung.FirstOrDefault(Freistellung => Freistellung.Id == DayTime.Free) ?? new Freistellung();
OnPropertyChanged(nameof(DayTime)); //OnPropertyChanged(nameof(DayTime));
} catch (Exception e) { } catch (Exception e) {
AlertEvent?.Invoke(this, e.Message); AlertEvent?.Invoke(this, e.Message);
@@ -215,7 +215,7 @@ public partial class StundeViewModel : ObservableObject, IQueryAttributable {
FreistellungEnabled = true; FreistellungEnabled = true;
OnPropertyChanged(nameof(SubTitle)); OnPropertyChanged(nameof(SubTitle));
OnPropertyChanged(nameof(DayTime)); //OnPropertyChanged(nameof(DayTime));
} }
} }

View File

@@ -11,7 +11,7 @@ namespace Jugenddienst_Stunden.ViewModels;
/// <summary> /// <summary>
/// ViewModel für die Stundenliste /// ViewModel für die Stundenliste
/// </summary> /// </summary>
internal class StundenViewModel : ObservableObject, IQueryAttributable, INotifyPropertyChanged { internal partial class StundenViewModel : ObservableObject, IQueryAttributable, INotifyPropertyChanged {
public string LoadOverview => "Lade Summen für " + DateTime.Today.ToString("MMMM"); public string LoadOverview => "Lade Summen für " + DateTime.Today.ToString("MMMM");
@@ -28,8 +28,23 @@ internal class StundenViewModel : ObservableObject, IQueryAttributable, INotifyP
//private HoursBase HoursBase = new HoursBase(); //private HoursBase HoursBase = new HoursBase();
internal Settings Settings = new Settings(); internal Settings Settings = new Settings();
public TimeOnly Sollstunden { get; set; } /// <summary>
/// Zu leistende Stunden
/// </summary>
[ObservableProperty]
private TimeOnly sollstunden;
/// <summary>
/// Geleistete Stunden an einem Tag
/// </summary>
[ObservableProperty]
private TimeOnly dayTotal;
/// <summary>
/// Liste der Tageszeiten
/// </summary>
[ObservableProperty]
private List<DayTime> dayTimes = new List<DayTime>();
public string Title { get; set; } = GlobalVar.Name + " " + GlobalVar.Surname; public string Title { get; set; } = GlobalVar.Name + " " + GlobalVar.Surname;
@@ -38,22 +53,8 @@ internal class StundenViewModel : ObservableObject, IQueryAttributable, INotifyP
get => _hour; get => _hour;
} }
/// <summary>
/// Gesamtstunden an einem Tag
/// </summary>
public TimeOnly DayTotal { get; set; }
/// <summary>
/// Liste der Tageszeiten
/// </summary>
private List<DayTime> _dayTimes = new List<DayTime>();
public List<DayTime> DayTimes {
get => _dayTimes;
set {
SetProperty(ref _dayTimes, value);
OnPropertyChanged(nameof(DayTimes));
}
}
/// <summary> /// <summary>
/// Mindest-Datum für den Datepicker /// Mindest-Datum für den Datepicker
@@ -124,16 +125,9 @@ internal class StundenViewModel : ObservableObject, IQueryAttributable, INotifyP
/// <summary> /// <summary>
/// Seite neu laden /// Seite neu laden
/// </summary> /// </summary>
[ObservableProperty]
private bool isRefreshing; private bool isRefreshing;
public bool IsRefreshing {
get => isRefreshing;
set {
if (isRefreshing != value) {
isRefreshing = value;
OnPropertyChanged();
}
}
}
/// <summary> /// <summary>
/// Dürfen Gemeinden verwendet werden? /// Dürfen Gemeinden verwendet werden?
@@ -212,7 +206,7 @@ internal class StundenViewModel : ObservableObject, IQueryAttributable, INotifyP
//_dayTimes = await HoursBase.LoadDay(date); //_dayTimes = await HoursBase.LoadDay(date);
BaseResponse dat = await HoursBase.LoadBase("date=" + date.ToString("yyyy-MM-dd")); BaseResponse dat = await HoursBase.LoadBase("date=" + date.ToString("yyyy-MM-dd"));
_dayTimes = dat.daytimes; DayTimes = dat.daytimes;
Settings = dat.settings; Settings = dat.settings;
GemeindeAktivSet = Settings.GemeindeAktivSet; GemeindeAktivSet = Settings.GemeindeAktivSet;
ProjektAktivSet = Settings.ProjektAktivSet; ProjektAktivSet = Settings.ProjektAktivSet;
@@ -224,7 +218,7 @@ internal class StundenViewModel : ObservableObject, IQueryAttributable, INotifyP
List<Sollstunden> _soll; List<Sollstunden> _soll;
TimeSpan span = TimeSpan.Zero; TimeSpan span = TimeSpan.Zero;
bool merker = false; bool merker = false;
foreach (DayTime dt in _dayTimes) { foreach (DayTime dt in DayTimes) {
span += dt.End - dt.Begin; span += dt.End - dt.Begin;
//Nachtstunden dazurechnen //Nachtstunden dazurechnen
if (dt.Night.Ticks > 0 && !merker) { if (dt.Night.Ticks > 0 && !merker) {
@@ -238,20 +232,20 @@ internal class StundenViewModel : ObservableObject, IQueryAttributable, INotifyP
DayTotal = TimeOnly.FromTimeSpan(span); DayTotal = TimeOnly.FromTimeSpan(span);
//Nach der Tagessumme die anderen Tage anhängen //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")); BaseResponse dat1 = await HoursBase.LoadBase("date=" + date.ToString("yyyy-MM-dd") + "&tilldate=" + date.AddDays(3).ToString("yyyy-MM-dd"));
if (dat1.daytimes != null) if (dat1.daytimes != null)
_dayTimes = dat.daytimes.Concat(dat1.daytimes).ToList(); DayTimes = dat.daytimes.Concat(dat1.daytimes).ToList();
} }
} catch (Exception e) { } catch (Exception e) {
_dayTimes = new List<DayTime>(); DayTimes = new List<DayTime>();
//TODO: hier könnte auch ein Fehler kommen, dann wäre InfoEvent falsch. //TODO: hier könnte auch ein Fehler kommen, dann wäre InfoEvent falsch.
InfoEvent?.Invoke(this, e.Message); InfoEvent?.Invoke(this, e.Message);
} finally { } finally {
OnPropertyChanged(nameof(DayTotal)); OnPropertyChanged(nameof(DayTotal));
OnPropertyChanged(nameof(Sollstunden)); OnPropertyChanged(nameof(Sollstunden));
OnPropertyChanged(nameof(DayTimes)); //OnPropertyChanged(nameof(DayTimes));
} }
} }

View File

@@ -33,7 +33,7 @@
<Border Grid.Column="1" Margin="15,0,0,0" Padding="15,0,0,0" ToolTipProperties.Text="Tagessumme"> <Border Grid.Column="1" Margin="15,0,0,0" Padding="15,0,0,0" ToolTipProperties.Text="Tagessumme">
<HorizontalStackLayout> <HorizontalStackLayout>
<Label Text="{Binding DayTotal,StringFormat='{}{0:HH:mm}'}" VerticalOptions="Center"></Label> <Label Text="{Binding DayTotal,StringFormat='{}{0:HH:mm}'}" VerticalOptions="Center"></Label>
<Label Text=" / " VerticalOptions="Center"></Label> <Label Text="/" VerticalOptions="Center" Margin="3,0"/>
<Label Text="{Binding Sollstunden,StringFormat='{}{0:HH:mm}'}" VerticalOptions="Center"></Label> <Label Text="{Binding Sollstunden,StringFormat='{}{0:HH:mm}'}" VerticalOptions="Center"></Label>
</HorizontalStackLayout> </HorizontalStackLayout>
</Border> </Border>