using System.Text.Json; namespace LehrerApp.Desktop.Services; internal sealed class BackupSettingsConfig { public string? SecondaryDirectory { get; set; } } /// Merkt sich einen optionalen zweiten Sicherungsordner (13.3.1 Nachtrag) — z.B. ein /// USB-Stick oder Netzlaufwerk, damit ein Backup nicht ausschließlich neben der Live-Datenbank /// liegt und bei Plattenausfall oder gelöschtem Profilverzeichnis mit verloren geht. Gleiches /// Muster wie . Das eigentliche Kopieren übernimmt /// bewusst best-effort. public sealed class BackupSettingsService { private readonly string _configPath; public BackupSettingsService(string appDataPath) => _configPath = Path.Combine(appDataPath, "backupsettings.json"); public string? LoadSecondaryDirectory() { try { if (File.Exists(_configPath)) return JsonSerializer.Deserialize(File.ReadAllText(_configPath)) ?.SecondaryDirectory; } catch { /* beschädigte Konfiguration -> kein zweites Ziel */ } return null; } public void SaveSecondaryDirectory(string? path) => File.WriteAllText(_configPath, JsonSerializer.Serialize(new BackupSettingsConfig { SecondaryDirectory = path })); }