using Jugenddienst_Stunden.Types; using Newtonsoft.Json; namespace Jugenddienst_Stunden.Models; internal static class HoursBase { /// /// what can be: settings, hours, date=YYYY-MM-DD, id= /// internal static async Task LoadBase(string what) { string data = await BaseFunc.GetApiDataWithAuthAsync(GlobalVar.ApiUrl + "?"+what, GlobalVar.ApiKey); BaseResponse res = JsonConvert.DeserializeObject(data) ?? throw new Exception("Fehler beim Deserialisieren der Daten"); return res; } /// /// Einstellungen /// internal static async Task LoadSettings() { string data = await BaseFunc.GetApiDataWithAuthAsync(GlobalVar.ApiUrl + "?settings", GlobalVar.ApiKey); BaseResponse res = JsonConvert.DeserializeObject(data) ?? throw new Exception("Fehler beim Deserialisieren der Daten"); return res.settings; } /// /// Daten laden /// internal static async Task LoadData() { string data = await BaseFunc.GetApiDataWithAuthAsync(GlobalVar.ApiUrl + "?hours", GlobalVar.ApiKey); BaseResponse res = JsonConvert.DeserializeObject(data) ?? throw new Exception("Fehler beim Deserialisieren der Daten"); return res.hour; } public static async Task LoadUser(string apiKey) { string data = await BaseFunc.GetApiDataWithAuthAsync(GlobalVar.ApiUrl, apiKey); BaseResponse res = JsonConvert.DeserializeObject(data) ?? throw new Exception("Fehler beim Deserialisieren der Daten"); return res.user; } /// /// Zeiten eines Tages holen /// internal static async Task> LoadDay(DateTime date) { string data = await BaseFunc.GetApiDataWithAuthAsync(GlobalVar.ApiUrl + "?date=" + date.ToString("yyyy-MM-dd"), GlobalVar.ApiKey); BaseResponse res = JsonConvert.DeserializeObject(data) ?? throw new Exception("Fehler beim Deserialisieren der Daten"); return res.daytimes; } /// /// Einzelnen Stundeneintrag holen /// internal static async Task LoadEntry(int id) { string data = await BaseFunc.GetApiDataWithAuthAsync(GlobalVar.ApiUrl + "?id=" + id, GlobalVar.ApiKey); BaseResponse res = JsonConvert.DeserializeObject(data) ?? throw new Exception("Fehler beim Deserialisieren der Daten"); res.daytime.TimeSpanVon = res.daytime.Begin.ToTimeSpan(); res.daytime.TimeSpanBis = res.daytime.End.ToTimeSpan(); return res.daytime; } /// /// Eintrag speichern /// internal static async Task SaveEntry(DayTime stunde) { //, string begin, string end, string freistellung, string bemerkung) { bool isNew = false; if (stunde.Id == null) isNew = true; await BaseFunc.SaveItemAsync(GlobalVar.ApiUrl, GlobalVar.ApiKey, stunde, isNew); return stunde; } /// /// Eintrag löschen /// internal static async Task DeleteEntry(DayTime stunde) { await BaseFunc.DeleteItemAsync(GlobalVar.ApiUrl + "/entry/" + stunde.Id, GlobalVar.ApiKey); } }