Settings geht noch nicht ganz

This commit is contained in:
2024-10-18 18:42:58 +02:00
parent b27e8ffcce
commit fbd650c174
8 changed files with 623 additions and 481 deletions

View File

@@ -37,11 +37,6 @@ class Auth {
/// <summary>
/// Stundeneintrag speichern
/// </summary>
/// <param name="url"></param>
/// <param name="token"></param>
/// <param name="item"></param>
/// <param name="isNewItem"></param>
/// <returns></returns>
public static async Task SaveItemAsync(string url, string token, DayTime item, bool isNewItem = false) {
//using (HttpClient client = new HttpClient() { Timeout = TimeSpan.FromSeconds(15) }) {

View File

@@ -10,7 +10,6 @@ internal class Stunde : ObservableObject {
public DateTime Date { get; set; }
//Default-Werte zum Testen
public static string apiKey = Preferences.Default.Get("apiKey", "");
public static int EmployeeId = Preferences.Default.Get("employeeId", 0);
public static string name = Preferences.Default.Get("name", "");
@@ -21,8 +20,6 @@ internal class Stunde : ObservableObject {
public static async Task<Hours> LoadData() {
if (string.IsNullOrEmpty(apiKey)) {
throw new Exception("Kein APIKEY, bitte zuerst Login durchführen");
}
@@ -31,9 +28,6 @@ internal class Stunde : ObservableObject {
if (Connectivity.Current.NetworkAccess == NetworkAccess.None) {
throw new Exception("Bitte überprüfen Sie Ihre Internetverbindung und versuchen Sie es erneut.");
//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);
@@ -56,20 +50,51 @@ internal class Stunde : ObservableObject {
return hours;
}
/// <summary>
/// Basisdaten: Mitarbeiterdaten, Projekte, Gemeinden, Freistellungen.
/// </summary>
/// <returns></returns>
/// <exception cref="Exception"></exception>
public static async Task<Hours> LoadBasicData() {
/// <summary>
/// Einstellungen
/// </summary>
public static async Task<Settings> LoadSettings()
{
Settings settings;
if (Connectivity.Current.NetworkAccess == NetworkAccess.None)
{
throw new Exception("Bitte überprüfen Sie Ihre Internetverbindung und versuchen Sie es erneut.");
}
else
{
var tokendata = new TokenData(apiKey);
string? data = await Auth.GetApiDataWithAuthAsync(tokendata.url + "?settings", tokendata.apiKey);
if (data == "null")
{
throw new Exception("Keine Daten erhalten");
}
if (data == "\"Lalala\"")
{
throw new Exception("Problem mit Token");
}
if (data == null)
{
throw new Exception("Keine Daten erhalten");
}
settings = JsonConvert.DeserializeObject<Settings>(data) ?? throw new Exception("Fehler beim Deserialisieren der Daten");
}
return settings;
}
/// <summary>
/// Basisdaten: Mitarbeiterdaten, Projekte, Gemeinden, Freistellungen.
/// </summary>
public static async Task<Hours> LoadBasicData() {
Hours hours = new Hours();
if (Connectivity.Current.NetworkAccess == NetworkAccess.None) {
throw new Exception("Bitte überprüfen Sie Ihre Internetverbindung und versuchen Sie es erneut.");
//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);
@@ -94,9 +119,6 @@ internal class Stunde : ObservableObject {
/// <summary>
/// Zeiten eines Tages holen
/// </summary>
/// <param name="date"></param>
/// <returns></returns>
/// <exception cref="Exception"></exception>
public static async Task<ObservableCollection<DayTime>> LoadDay(DateTime date) {
if (string.IsNullOrEmpty(apiKey)) {
throw new Exception("Kein APIKEY, bitte zuerst Login durchführen");
@@ -104,9 +126,6 @@ internal class Stunde : ObservableObject {
if (Connectivity.Current.NetworkAccess == NetworkAccess.None) {
throw new Exception("Bitte überprüfen Sie Ihre Internetverbindung und versuchen Sie es erneut.");
//await App.Current.MainPage.DisplayAlert("Keine Internetverbindung",
// "Bitte überprüfen Sie Ihre Internetverbindung und versuchen Sie es erneut.",
// "OK");
}
var tokendata = new TokenData(apiKey);
@@ -134,8 +153,6 @@ internal class Stunde : ObservableObject {
/// <summary>
/// Einzelnen Stundeneintrag holen
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public static async Task<DayTime> LoadEntry(int id) {
var tokendata = new TokenData(apiKey);
@@ -171,8 +188,6 @@ internal class Stunde : ObservableObject {
/// <summary>
/// Eintrag speichern
/// </summary>
/// <param name="stunde"></param>
/// <returns></returns>
public static async Task<DayTime> SaveEntry(DayTime stunde) { //, string begin, string end, string freistellung, string bemerkung) {
var tokendata = new TokenData(apiKey);
@@ -187,14 +202,9 @@ internal class Stunde : ObservableObject {
/// <summary>
/// Eintrag löschen
/// </summary>
/// <param name="stunde"></param>
/// <returns></returns>
public static async Task<DayTime> DeleteEntry(DayTime stunde) { //, string begin, string end, string freistellung, string bemerkung) {
public static async Task DeleteEntry(DayTime stunde) {
var tokendata = new TokenData(apiKey);
await Auth.DeleteItemAsync(tokendata.url + "/entry/" + stunde.id, tokendata.apiKey);
return stunde;
}