Programm_Wirl/UserSettingsManager.cs

70 lines
1.9 KiB
C#

using System;
using System.IO;
using System.Text.Json;
public class UserSettingsManager
{
public string DruckerSWS { get; set; } = "";
public string DruckerEtikett { get; set; } = "";
public decimal CopiesSWS { get; set; } = 0;
//TODO: UserSetting Properties eintragen und in EinstellungsScreen abrufen.
private readonly string _configPath;
public UserSettingsManager()
{
_configPath = Path.Combine(
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData),
"Kilian Wirl GmbH", "Verwaltung", "settings.json");
}
public void Load()
{
try
{
if (File.Exists(_configPath))
{
string json = File.ReadAllText(_configPath);
var loadedSettings = JsonSerializer.Deserialize<UserSettingsManager>(json);
if (loadedSettings != null)
{
DruckerSWS = loadedSettings.DruckerSWS;
DruckerEtikett = loadedSettings.DruckerEtikett;
CopiesSWS = loadedSettings.CopiesSWS;
// Weitere Properties hier zuweisen
//TODO: Weitere Properties von oben hier zuweisen
}
}
}
catch { /* Alte Datei kaputt → Defaults */ }
}
public void Save()
{
try
{
Directory.CreateDirectory(Path.GetDirectoryName(_configPath));
string json = JsonSerializer.Serialize(this, new JsonSerializerOptions
{
WriteIndented = true
});
File.WriteAllText(_configPath, json);
}
catch (Exception ex)
{
// Fallback: LocalAppData
string fallbackPath = Path.Combine(
Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData),
"Kilian Wirl GmbH", "Verwaltung", "settings.json");
Directory.CreateDirectory(Path.GetDirectoryName(fallbackPath));
string json = JsonSerializer.Serialize(this, new JsonSerializerOptions
{
WriteIndented = true
});
File.WriteAllText(fallbackPath, json);
}
}
}