Projekt and Gemeinde are required if active
This commit is contained in:
@@ -78,6 +78,7 @@ public partial class StundeViewModel : ObservableObject, IQueryAttributable {
|
||||
|
||||
|
||||
public StundeViewModel() : this(GetServiceOrCreate()) {
|
||||
LoadSettingsAsync();
|
||||
}
|
||||
|
||||
private static IHoursService GetServiceOrCreate() {
|
||||
@@ -124,10 +125,24 @@ public partial class StundeViewModel : ObservableObject, IQueryAttributable {
|
||||
async Task Save() {
|
||||
bool exceptionOccurred = false;
|
||||
bool proceed = true;
|
||||
|
||||
//Arbeitszeit sollte nicht null sein
|
||||
if (DayTime.TimeSpanVon == DayTime.TimeSpanBis && DayTime.FreistellungAktiv.Name == null) {
|
||||
proceed = false;
|
||||
AlertEvent?.Invoke(this, "Uhrzeiten sollten unterschiedlich sein");
|
||||
}
|
||||
|
||||
//Projekt ist ein Pflichtfeld
|
||||
if (Settings.ProjektAktivSet && DayTime.ProjektAktiv.Id == 0) {
|
||||
proceed = false;
|
||||
AlertEvent?.Invoke(this, "Projekt darf nicht leer sein");
|
||||
}
|
||||
|
||||
//Gemeinde ist ein Pflichtfeld
|
||||
if (Settings.GemeindeAktivSet && DayTime.GemeindeAktiv.Id == 0) {
|
||||
proceed = false;
|
||||
AlertEvent?.Invoke(this, "Gemeinde darf nicht leer sein");
|
||||
}
|
||||
|
||||
if (proceed) {
|
||||
try {
|
||||
@@ -182,18 +197,18 @@ public partial class StundeViewModel : ObservableObject, IQueryAttributable {
|
||||
//DateTime heute = DateTime.Now;
|
||||
try {
|
||||
var entry = await _hoursService.GetEntryAsync(Convert.ToInt32(query["load"]));
|
||||
var settings = await _hoursService.GetSettingsAsync();
|
||||
GlobalVar.Settings = settings;
|
||||
GemeindeAktivSet = settings.GemeindeAktivSet;
|
||||
ProjektAktivSet = settings.ProjektAktivSet;
|
||||
// var settings = await _hoursService.GetSettingsAsync();
|
||||
// GlobalVar.Settings = settings;
|
||||
// GemeindeAktivSet = settings.GemeindeAktivSet;
|
||||
// ProjektAktivSet = settings.ProjektAktivSet;
|
||||
|
||||
DayTime = entry;
|
||||
DayTime.TimeSpanVon = entry.Begin.ToTimeSpan();
|
||||
DayTime.TimeSpanBis = entry.End.ToTimeSpan();
|
||||
|
||||
OptionsGemeinde = settings.Gemeinden ?? new List<Gemeinde>();
|
||||
OptionsProjekt = settings.Projekte ?? new List<Projekt>();
|
||||
OptionsFreistellung = settings.Freistellungen ?? new List<Freistellung>();
|
||||
// OptionsGemeinde = settings.Gemeinden ?? new List<Gemeinde>();
|
||||
// OptionsProjekt = settings.Projekte ?? new List<Projekt>();
|
||||
// OptionsFreistellung = settings.Freistellungen ?? new List<Freistellung>();
|
||||
|
||||
DayTime.GemeindeAktiv = OptionsGemeinde.FirstOrDefault(Gemeinde => Gemeinde.Id == DayTime.Gemeinde) ??
|
||||
new Gemeinde();
|
||||
@@ -244,7 +259,7 @@ public partial class StundeViewModel : ObservableObject, IQueryAttributable {
|
||||
//Ein Tag ohne Einträge gibt eine Fehlermeldung,
|
||||
//die soll aber ignoriert werden, weil beim Neueintrag ist das ja Wurscht
|
||||
//In dem Fall müssen die Settings aber nochmal geholt werden, weil die dann nicht geladen wurden
|
||||
LoadSettingsAsync();
|
||||
// LoadSettingsAsync();
|
||||
} finally {
|
||||
DayTime = new DayTime();
|
||||
DayTime.Day = _date;
|
||||
|
||||
Reference in New Issue
Block a user