using System.Text.Json; namespace Elfisa.Core; public sealed class AppSettings { public string? ApiBaseUrl { get; set; } public string Theme { get; set; } = "Light"; // Light | Dark public string? DefaultLocationId { get; set; } public string? Token { get; set; } // сохранённая сессия public string? Role { get; set; } public string? Username { get; set; } } /// Настройки приложения в %APPDATA%\ElfisaAvalonia\settings.json. public static class SettingsStore { private static readonly string Dir = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "ElfisaAvalonia"); private static readonly string File = Path.Combine(Dir, "settings.json"); public static AppSettings Current { get; private set; } = Load(); public static AppSettings Load() { try { if (System.IO.File.Exists(File)) return JsonSerializer.Deserialize(System.IO.File.ReadAllText(File)) ?? new AppSettings(); } catch { /* повреждённый файл — начинаем с чистых настроек */ } return new AppSettings(); } public static void Save() { try { Directory.CreateDirectory(Dir); System.IO.File.WriteAllText(File, JsonSerializer.Serialize(Current, new JsonSerializerOptions { WriteIndented = true })); } catch { /* нет прав/диска — молча пропускаем */ } } }