Daten speichern
This commit is contained in:
@@ -136,7 +136,7 @@ namespace Jugenddienst_Stunden.Models {
|
|||||||
var tokendata = new TokenData(apiKey);
|
var tokendata = new TokenData(apiKey);
|
||||||
await Auth.SaveItemAsync(tokendata.url, tokendata.apiKey, stunde,false);
|
await Auth.SaveItemAsync(tokendata.url, tokendata.apiKey, stunde,false);
|
||||||
|
|
||||||
return null;
|
return stunde;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,26 +2,38 @@
|
|||||||
using System.Collections.ObjectModel;
|
using System.Collections.ObjectModel;
|
||||||
|
|
||||||
namespace Jugenddienst_Stunden.Types {
|
namespace Jugenddienst_Stunden.Types {
|
||||||
|
/// <summary>
|
||||||
|
/// Represents a day time entry for an employee.
|
||||||
|
/// </summary>
|
||||||
public class DayTime {
|
public class DayTime {
|
||||||
public int? id;
|
public int? id { get; set; }
|
||||||
public int EmployeeId;
|
public int EmployeeId { get; set; }
|
||||||
public DateTime day;
|
public DateTime day { get; set; }
|
||||||
public int wday;
|
public int wday { get; set; }
|
||||||
public TimeOnly begin { get; set; }
|
public TimeOnly begin { get; set; }
|
||||||
public TimeOnly end { get; set; }
|
public TimeOnly end { get; set; }
|
||||||
public string description { get; set; }
|
public string description { get; set; }
|
||||||
public string? free;
|
public string? free { get; set; }
|
||||||
public bool? approved;
|
public bool? approved { get; set; }
|
||||||
public int? type;
|
public int? type { get; set; }
|
||||||
public int? projekt;
|
public int? projekt { get; set; }
|
||||||
public int? gemeinde;
|
public int? gemeinde { get; set; }
|
||||||
public TimeOnly night;
|
public TimeOnly night { get; set; }
|
||||||
public Dictionary<string, TimeOnly> total;
|
public Dictionary<string, TimeOnly> total { get; set; }
|
||||||
public TimeOnly end_print;
|
public TimeOnly end_print { get; set; }
|
||||||
public TimeSpan TimeSpanVon { get; set; }
|
public TimeSpan TimeSpanVon { get; set; }
|
||||||
public TimeSpan TimeSpanBis { get; set; }
|
public TimeSpan TimeSpanBis { get; set; }
|
||||||
public Collection<Projekt> Projekte { get; set; }
|
public Collection<Projekt> Projekte { get; set; }
|
||||||
public Collection<Gemeinde> Gemeinden { get; set; }
|
public Collection<Gemeinde> Gemeinden { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets the active Gemeinde based on the gemeinde ID.
|
||||||
|
/// </summary>
|
||||||
|
public Gemeinde GemeindeAktiv { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets the active Projekt based on the projekt ID.
|
||||||
|
/// </summary>
|
||||||
|
public Projekt ProjektAktiv { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,7 +21,6 @@ namespace Jugenddienst_Stunden.ViewModels {
|
|||||||
private DayTime _stunde;
|
private DayTime _stunde;
|
||||||
public DayTime Stunde { get => _stunde; }
|
public DayTime Stunde { get => _stunde; }
|
||||||
|
|
||||||
public int Identifier => (int)_stunde.id;
|
|
||||||
|
|
||||||
public event EventHandler<string> AlertEvent;
|
public event EventHandler<string> AlertEvent;
|
||||||
|
|
||||||
@@ -29,24 +28,25 @@ namespace Jugenddienst_Stunden.ViewModels {
|
|||||||
public ObservableCollection<Projekt> OptionsProjekt { get; private set; }
|
public ObservableCollection<Projekt> OptionsProjekt { get; private set; }
|
||||||
public ObservableCollection<string> OptionsFreistellung { get; }
|
public ObservableCollection<string> OptionsFreistellung { get; }
|
||||||
|
|
||||||
private Gemeinde _selectedGemeinde;
|
//private Gemeinde _selectedGemeinde;
|
||||||
public Gemeinde SelectedOptionGemeinde {
|
public Gemeinde SelectedOptionGemeinde {
|
||||||
get => _selectedGemeinde;
|
get => _stunde.GemeindeAktiv;
|
||||||
set {
|
set {
|
||||||
if (_selectedGemeinde != value) {
|
if (_stunde.GemeindeAktiv != value) {
|
||||||
_selectedGemeinde = value;
|
//_selectedGemeinde = value;
|
||||||
|
_stunde.GemeindeAktiv = value;
|
||||||
OnPropertyChanged(nameof(SelectedOptionGemeinde));
|
OnPropertyChanged(nameof(SelectedOptionGemeinde));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private Projekt _selectedProjekt;
|
//private Projekt _selectedProjekt;
|
||||||
public Projekt SelectedOptionProjekt {
|
public Projekt SelectedOptionProjekt {
|
||||||
get => _selectedProjekt;
|
get => _stunde.ProjektAktiv;
|
||||||
set {
|
set {
|
||||||
if (_selectedProjekt != value) {
|
if (_stunde.ProjektAktiv != value) {
|
||||||
_selectedProjekt = value;
|
//_selectedProjekt = value;
|
||||||
//new AsyncRelayCommand(LoadData);
|
_stunde.ProjektAktiv = value;
|
||||||
OnPropertyChanged(nameof(SelectedOptionProjekt));
|
OnPropertyChanged(nameof(SelectedOptionProjekt));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -58,7 +58,6 @@ namespace Jugenddienst_Stunden.ViewModels {
|
|||||||
set {
|
set {
|
||||||
if (selectedFreistellung != value) {
|
if (selectedFreistellung != value) {
|
||||||
selectedFreistellung = value;
|
selectedFreistellung = value;
|
||||||
//new AsyncRelayCommand(LoadData);
|
|
||||||
OnPropertyChanged(nameof(SelectedOptionFreistellung));
|
OnPropertyChanged(nameof(SelectedOptionFreistellung));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -93,10 +92,10 @@ namespace Jugenddienst_Stunden.ViewModels {
|
|||||||
|
|
||||||
public StundeViewModel() {
|
public StundeViewModel() {
|
||||||
_stunde = new DayTime();
|
_stunde = new DayTime();
|
||||||
|
|
||||||
SaveCommand = new AsyncRelayCommand(Save);
|
SaveCommand = new AsyncRelayCommand(Save);
|
||||||
//DeleteCommand = new AsyncRelayCommand(Delete);
|
//DeleteCommand = new AsyncRelayCommand(Delete);
|
||||||
|
|
||||||
|
|
||||||
OptionsFreistellung = new ObservableCollection<string> {
|
OptionsFreistellung = new ObservableCollection<string> {
|
||||||
"Keine",
|
"Keine",
|
||||||
"Urlaub",
|
"Urlaub",
|
||||||
@@ -113,8 +112,6 @@ namespace Jugenddienst_Stunden.ViewModels {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async Task Save() {
|
async Task Save() {
|
||||||
//_stunde.day = DateTime.Now;
|
|
||||||
//_stunde.Save();
|
|
||||||
await Models.Stunde.SaveEntry(_stunde);
|
await Models.Stunde.SaveEntry(_stunde);
|
||||||
await Shell.Current.GoToAsync($"..?saved={_stunde.id}");
|
await Shell.Current.GoToAsync($"..?saved={_stunde.id}");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -53,6 +53,7 @@ namespace Jugenddienst_Stunden.ViewModels {
|
|||||||
public string Holiday {
|
public string Holiday {
|
||||||
get => _hour.holiday;
|
get => _hour.holiday;
|
||||||
}
|
}
|
||||||
|
|
||||||
public TimeOnly DayTotal { get; set; }
|
public TimeOnly DayTotal { get; set; }
|
||||||
|
|
||||||
public List<DayTime> DayTimes {
|
public List<DayTime> DayTimes {
|
||||||
@@ -154,6 +155,8 @@ namespace Jugenddienst_Stunden.ViewModels {
|
|||||||
////if (_hour.zeit_total_daily_api != null) {
|
////if (_hour.zeit_total_daily_api != null) {
|
||||||
////TimeDay = _hour.zeit_total_daily_api.Where(static p => p.Day == GetDay.Day).ToList() ?? new List<TimeDay> { new TimeDay { Day = GetDay.Day, Hours = 0 } };
|
////TimeDay = _hour.zeit_total_daily_api.Where(static p => p.Day == GetDay.Day).ToList() ?? new List<TimeDay> { new TimeDay { Day = GetDay.Day, Hours = 0 } };
|
||||||
//RefreshProperties();
|
//RefreshProperties();
|
||||||
|
|
||||||
|
|
||||||
TimeSpan span = TimeSpan.Zero;
|
TimeSpan span = TimeSpan.Zero;
|
||||||
foreach (DayTime dt in _hour.daytime) {
|
foreach (DayTime dt in _hour.daytime) {
|
||||||
span += dt.end - dt.begin;
|
span += dt.end - dt.begin;
|
||||||
|
|||||||
@@ -14,13 +14,13 @@
|
|||||||
<Label Text="{Binding SubTitle}" />
|
<Label Text="{Binding SubTitle}" />
|
||||||
|
|
||||||
<FlexLayout Direction="Row" AlignItems="Start" Wrap="Wrap" JustifyContent="SpaceBetween">
|
<FlexLayout Direction="Row" AlignItems="Start" Wrap="Wrap" JustifyContent="SpaceBetween">
|
||||||
<Border Background="LightGreen" >
|
<Border>
|
||||||
<HorizontalStackLayout>
|
<HorizontalStackLayout>
|
||||||
<Label Text="Beginn" TextColor="Gray" VerticalTextAlignment="Center" HorizontalTextAlignment="End" Padding="0,0,10,0" Margin="5,0,0,0" MinimumWidthRequest="60"></Label>
|
<Label Text="Beginn" TextColor="Gray" VerticalTextAlignment="Center" HorizontalTextAlignment="End" Padding="0,0,10,0" Margin="5,0,0,0" MinimumWidthRequest="60"></Label>
|
||||||
<TimePicker x:Name="TimeBegin" HorizontalOptions="Center" TextColor="Gray" Format="HH:mm" MinimumWidthRequest="80" Time="{Binding Stunde.TimeSpanVon}" Margin="0,0,0,-5" />
|
<TimePicker x:Name="TimeBegin" HorizontalOptions="Center" TextColor="Gray" Format="HH:mm" MinimumWidthRequest="80" Time="{Binding Stunde.TimeSpanVon}" Margin="0,0,0,-5" />
|
||||||
</HorizontalStackLayout>
|
</HorizontalStackLayout>
|
||||||
</Border>
|
</Border>
|
||||||
<Border Background="OrangeRed" >
|
<Border>
|
||||||
<HorizontalStackLayout>
|
<HorizontalStackLayout>
|
||||||
<Label Text="Ende" TextColor="White" VerticalTextAlignment="Center" HorizontalTextAlignment="End" Padding="0,0,10,0" Margin="5,0,0,0" MinimumWidthRequest="60"></Label>
|
<Label Text="Ende" TextColor="White" VerticalTextAlignment="Center" HorizontalTextAlignment="End" Padding="0,0,10,0" Margin="5,0,0,0" MinimumWidthRequest="60"></Label>
|
||||||
<TimePicker x:Name="TimeEnd" TextColor="White" Format="HH:mm" MinimumWidthRequest="80" Time="{Binding Stunde.TimeSpanBis}" Margin="0,0,0,-5" />
|
<TimePicker x:Name="TimeEnd" TextColor="White" Format="HH:mm" MinimumWidthRequest="80" Time="{Binding Stunde.TimeSpanBis}" Margin="0,0,0,-5" />
|
||||||
|
|||||||
@@ -49,9 +49,11 @@
|
|||||||
<ColumnDefinition Width="*" />
|
<ColumnDefinition Width="*" />
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
<HorizontalStackLayout Grid.Row="0" Grid.Column="0">
|
<HorizontalStackLayout Grid.Row="0" Grid.Column="0">
|
||||||
<Label Grid.Row="0" Grid.Column="0" Text="{Binding begin}"/>
|
<Label Grid.Column="0" Text="{Binding begin}"/>
|
||||||
<Label Text="bis" Padding="10,0,10,0"/>
|
<Label Text="bis" Padding="5,0,5,0"/>
|
||||||
<Label Grid.Row="0" Grid.Column="1" Text="{Binding end}"/>
|
<Label Text="{Binding end}"/>
|
||||||
|
<Label Text="{Binding GemeindeAktiv.Name}" Margin="10,0,0,0"/>
|
||||||
|
<Label Text="{Binding ProjektAktiv.Name}" Margin="10,0,0,0"/>
|
||||||
</HorizontalStackLayout>
|
</HorizontalStackLayout>
|
||||||
|
|
||||||
<Label Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2" Text="{Binding description}" Padding="0,0,0,15"/>
|
<Label Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2" Text="{Binding description}" Padding="0,0,0,15"/>
|
||||||
@@ -61,32 +63,6 @@
|
|||||||
|
|
||||||
</CollectionView>
|
</CollectionView>
|
||||||
|
|
||||||
<!--<ListView ItemsSource="{Binding DayTimes}" VerticalScrollBarVisibility="Never" ItemSelected="{Binding SelectEntryCommand}">-->
|
|
||||||
<!--<ListView ItemsSource="{Binding DayTimes}" VerticalScrollBarVisibility="Never">
|
|
||||||
<ListView.ItemTemplate>
|
|
||||||
<DataTemplate>
|
|
||||||
<ViewCell>
|
|
||||||
<Grid Padding="15,10,0,10">
|
|
||||||
<Grid.RowDefinitions>
|
|
||||||
<RowDefinition Height="Auto" />
|
|
||||||
<RowDefinition Height="Auto" />
|
|
||||||
</Grid.RowDefinitions>
|
|
||||||
<Grid.ColumnDefinitions>
|
|
||||||
<ColumnDefinition Width="*" />
|
|
||||||
<ColumnDefinition Width="*" />
|
|
||||||
</Grid.ColumnDefinitions>
|
|
||||||
<HorizontalStackLayout Grid.Row="0" Grid.Column="0">
|
|
||||||
<Label Grid.Row="0" Grid.Column="0" Text="{Binding begin}"/>
|
|
||||||
<Label Text="bis" Padding="10,0,10,0"/>
|
|
||||||
<Label Grid.Row="0" Grid.Column="1" Text="{Binding end}"/>
|
|
||||||
</HorizontalStackLayout>
|
|
||||||
|
|
||||||
<Label Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2" Text="{Binding description}" Padding="0,0,0,5"/>
|
|
||||||
</Grid>
|
|
||||||
</ViewCell>
|
|
||||||
</DataTemplate>
|
|
||||||
</ListView.ItemTemplate>
|
|
||||||
</ListView>-->
|
|
||||||
|
|
||||||
<BoxView HeightRequest="1" Color="Red"/>
|
<BoxView HeightRequest="1" Color="Red"/>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user