using System.Text.Json;
namespace LehrerApp.Desktop.Services;
public sealed class WindowSettings
{
public double Width { get; set; } = 1280;
public double Height { get; set; } = 800;
public bool IsMaximized { get; set; }
}
///
/// Merkt sich Fenstergröße und Maximiert-Status über Sitzungen hinweg (14.6). Bewusst OHNE
/// Fensterposition: ein Laptop, der mal mit, mal ohne externen Monitor läuft, könnte sonst dazu
/// führen, dass das Fenster bei der nächsten Sitzung außerhalb jedes sichtbaren Bildschirms
/// landet — die Größe allein ist der Teil, der täglich beim Korrigieren am Abend stört.
///
public sealed class WindowSettingsService
{
private readonly string _configPath;
public WindowSettingsService(string appDataPath) =>
_configPath = Path.Combine(appDataPath, "windowsettings.json");
public WindowSettings Load()
{
try
{
if (File.Exists(_configPath))
{
var loaded = JsonSerializer.Deserialize(File.ReadAllText(_configPath));
if (loaded is { Width: >= 200, Height: >= 150 }) return loaded;
}
}
catch { /* beschädigte Konfiguration -> Standardgröße */ }
return new WindowSettings();
}
public void Save(WindowSettings settings) =>
File.WriteAllText(_configPath, JsonSerializer.Serialize(settings));
}