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,11 +125,25 @@ 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 {
|
||||
await _hoursService.SaveEntryAsync(DayTime);
|
||||
@@ -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;
|
||||
|
||||
@@ -63,14 +63,6 @@
|
||||
<On Platform="WPF" Value="5" />
|
||||
</OnPlatform>
|
||||
</Border.Padding>
|
||||
<!--<Grid ColumnDefinitions="*,*,*">
|
||||
<Picker x:Name="pick_gemeinde" Title="Gemeinde" ItemsSource="{Binding OptionsGemeinde}" SelectedItem="{Binding DayTime.GemeindeAktiv, Mode=TwoWay}" ItemDisplayBinding="{Binding Name}" Grid.Column="0" IsVisible="{Binding GemeindeAktivSet}">
|
||||
</Picker>
|
||||
<Picker x:Name="pick_projekt" Title="Projekt" ItemsSource="{Binding OptionsProjekt}" SelectedItem="{Binding DayTime.ProjektAktiv, Mode=TwoWay}" ItemDisplayBinding="{Binding Name}" Grid.Column="1" IsVisible="{Binding ProjektAktivSet}">
|
||||
</Picker>
|
||||
<Picker x:Name="pick_freistellung" Title="Freistellung" ItemsSource="{Binding OptionsFreistellung}" SelectedItem="{Binding DayTime.FreistellungAktiv, Mode=TwoWay}" ItemDisplayBinding="{Binding Name}" Grid.Column="2" IsEnabled="{Binding FreistellungEnabled}">
|
||||
</Picker>
|
||||
</Grid>-->
|
||||
<HorizontalStackLayout>
|
||||
<Picker x:Name="pick_gemeinde" Title="Gemeinde" ItemsSource="{Binding OptionsGemeinde}"
|
||||
SelectedItem="{Binding DayTime.GemeindeAktiv, Mode=TwoWay}" ItemDisplayBinding="{Binding Name}"
|
||||
|
||||
Reference in New Issue
Block a user