using CommunityToolkit.Mvvm.ComponentModel; using Newtonsoft.Json; using Microsoft.Maui.Networking; using Microsoft.Maui.Controls; using System; using System.Text; using System.Text.Json; using Jugenddienst_Stunden.Types; using System.Collections.Generic; namespace Jugenddienst_Stunden.Models { internal class Stunde : ObservableObject { public DateTime Date { get; set; } private static Hours Hours { get; set; } //Default-Werte zum Testen //Katharina //public static string apiKey = Preferences.Default.Get("apiKey", "MTAyfEJZZnB1L3VwcnhoVms0dDlLZENPZWtUVy85b3xodHRwOi8vaG91cnMuZGF1bmkubWluZS5udTo4MS9hcHBhcGk="); //public static string name = Preferences.Default.Get("name", "Katharina"); //public static string surname = Preferences.Default.Get("surname", "Weger"); //Christine Feichter public static string apiKey = Preferences.Default.Get("apiKey", "MTQzfEFlMVRjQXdZMnI4RmpxZ0FSY3A0VEN2bVZYVXxodHRwOi8vaG91cnMuZGF1bmkubWluZS5udTo4MS9hcHBhcGk="); public static string name = Preferences.Default.Get("name", "Christine"); public static string surname = Preferences.Default.Get("surname", "Feichter"); public static string apiUrl = Preferences.Default.Get("apiUrl", "https://"); //Damian //public static string apiKey = Preferences.Default.Get("apiKey", "MTU0fGpkQUNYTGkvcjMvVk4rNkMyK0dDQkJmMkFwVXxodHRwOi8vaG91cnMuZGF1bmkubWluZS5udTo4MS9hcHBhcGk="); //private static readonly string requestUrl = $"{BaseAddress}/appapi?hours"; public static async Task LoadData() { //Temporär fix für virtuelle App //apiKey = "NXw5eFF0RVQ5TFBMTXFVeFIzQURtd01idHFUb2d8aHR0cDovL2hvdXJzLmRhdW5pLm1pbmUubnU6ODEvYXBwYXBp"; //Johannes Fink Hours hours = new Hours(); if (Connectivity.Current.NetworkAccess == NetworkAccess.None) { await App.Current.MainPage.DisplayAlert("Keine Internetverbindung", "Bitte überprüfen Sie Ihre Internetverbindung und versuchen Sie es erneut.", "OK"); } else { var tokendata = new TokenData(apiKey); //string data = await Auth.GetApiDataWithAuthAsync(requestUrl, apiKey); string data = await Auth.GetApiDataWithAuthAsync(tokendata.url + "?hours", tokendata.apiKey); if (data == null) { throw new Exception("Keine Daten erhalten"); } if (data == "\"Lalala\"") { throw new Exception("Problem mit Token"); } hours = JsonConvert.DeserializeObject(data); } return hours; } public static async Task> LoadDay(DateTime date) { List daytimes = new List(); if (Connectivity.Current.NetworkAccess == NetworkAccess.None) { await App.Current.MainPage.DisplayAlert("Keine Internetverbindung", "Bitte überprüfen Sie Ihre Internetverbindung und versuchen Sie es erneut.", "OK"); } else { var tokendata = new TokenData(apiKey); //string data = await Auth.GetApiDataWithAuthAsync(requestUrl, apiKey); string data = await Auth.GetApiDataWithAuthAsync(tokendata.url + "?date=" + date.ToString("yyyy-MM-dd"), tokendata.apiKey); if (data == null) { throw new Exception("Keine Daten erhalten"); } if (data == "\"Lalala\"") { throw new Exception("Problem mit Token"); } //daytimes = System.Text.Json.JsonSerializer.Deserialize>(data); daytimes = JsonConvert.DeserializeObject>(data); } //Hours = hours; return daytimes; } public static async Task LoadEntry(int id) { var tokendata = new TokenData(apiKey); var data = await Auth.GetApiDataWithAuthAsync(tokendata.url + "?id=" + id, tokendata.apiKey); //DayTime hours = Hours.daytime.Find(x => x.id == id); DayTime hours = JsonConvert.DeserializeObject(data); hours.TimeSpanVon = hours.begin.ToTimeSpan(); hours.TimeSpanBis = hours.end.ToTimeSpan(); return hours; } public static Stunde Load(string filename) { filename = System.IO.Path.Combine(FileSystem.AppDataDirectory, filename); if (!File.Exists(filename)) throw new FileNotFoundException("Unable to find file on local storage.", filename); return new() { //Filename = Path.GetFileName(filename), //Text = File.ReadAllText(filename), Date = File.GetLastWriteTime(filename) }; } } }