Less requests to get Data faster
Load settings with `GetEntryWithSettingsAsync`, update `Hours` and `ViewModels`.
This commit is contained in:
@@ -86,7 +86,7 @@ public partial class StundeViewModel : ObservableObject, IQueryAttributable {
|
||||
alertService.AlertRaised += (s, msg) => AlertEvent?.Invoke(this, msg);
|
||||
}
|
||||
|
||||
LoadSettingsAsync();
|
||||
//LoadSettingsAsync();
|
||||
}
|
||||
|
||||
private async void LoadSettingsAsync() {
|
||||
@@ -105,6 +105,16 @@ public partial class StundeViewModel : ObservableObject, IQueryAttributable {
|
||||
}
|
||||
}
|
||||
|
||||
private async void UpdateSettingsAsync(Settings settings) {
|
||||
GlobalVar.Settings = settings;
|
||||
OptionsGemeinde = settings.Gemeinden;
|
||||
OptionsProjekt = settings.Projekte;
|
||||
OptionsFreistellung = settings.Freistellungen;
|
||||
|
||||
GemeindeAktivSet = settings.GemeindeAktivSet;
|
||||
ProjektAktivSet = settings.ProjektAktivSet;
|
||||
}
|
||||
|
||||
async Task Save() {
|
||||
bool exceptionOccurred = false;
|
||||
bool proceed = true;
|
||||
@@ -185,7 +195,9 @@ public partial class StundeViewModel : ObservableObject, IQueryAttributable {
|
||||
if (query.ContainsKey("load")) {
|
||||
//DateTime heute = DateTime.Now;
|
||||
try {
|
||||
var entry = await _hoursService.GetEntryAsync(Convert.ToInt32(query["load"]));
|
||||
//var entry = await _hoursService.GetEntryAsync(Convert.ToInt32(query["load"]));
|
||||
var (entry, settings, daytimes) = await _hoursService.GetEntryWithSettingsAsync(Convert.ToInt32(query["load"]));
|
||||
UpdateSettingsAsync(settings);
|
||||
|
||||
DayTime = entry;
|
||||
DayTime.TimeSpanVon = entry.Begin.ToTimeSpan();
|
||||
@@ -208,13 +220,16 @@ public partial class StundeViewModel : ObservableObject, IQueryAttributable {
|
||||
OnPropertyChanged(nameof(SubTitle));
|
||||
|
||||
FreistellungEnabled = !DayTime.Approved;
|
||||
|
||||
DayTimes = daytimes;
|
||||
OnPropertyChanged(nameof(DayTimes));
|
||||
} catch (Exception e) {
|
||||
AlertEvent?.Invoke(this, e.Message);
|
||||
} finally {
|
||||
//Evtl. noch die anderen Zeiten des gleichen Tages holen
|
||||
var day = await _hoursService.GetDayWithSettingsAsync(DayTime.Day);
|
||||
DayTimes = day.dayTimes;
|
||||
OnPropertyChanged(nameof(DayTimes));
|
||||
//var day = await _hoursService.GetDayWithSettingsAsync(DayTime.Day);
|
||||
//DayTimes = day.dayTimes;
|
||||
//OnPropertyChanged(nameof(DayTimes));
|
||||
}
|
||||
|
||||
//OnPropertyChanged(nameof(DayTime));
|
||||
@@ -227,15 +242,9 @@ public partial class StundeViewModel : ObservableObject, IQueryAttributable {
|
||||
//Bei neuem Eintrag die vorhandenen des gleichen Tages anzeigen
|
||||
try {
|
||||
var (list, settings) = await _hoursService.GetDayWithSettingsAsync(_date);
|
||||
GlobalVar.Settings = settings;
|
||||
UpdateSettingsAsync(settings);
|
||||
DayTimes = list;
|
||||
|
||||
OptionsGemeinde = settings.Gemeinden;
|
||||
OptionsProjekt = settings.Projekte;
|
||||
OptionsFreistellung = settings.Freistellungen;
|
||||
|
||||
GemeindeAktivSet = settings.GemeindeAktivSet;
|
||||
ProjektAktivSet = settings.ProjektAktivSet;
|
||||
|
||||
} catch (Exception) {
|
||||
//Ein Tag ohne Einträge gibt eine Fehlermeldung,
|
||||
//die soll aber ignoriert werden, weil beim Neueintrag ist das ja Wurscht
|
||||
|
||||
Reference in New Issue
Block a user