using System; using System.IO; using System.Text.Json; using PhotoboothUploader.Models; namespace PhotoboothUploader.Services; public sealed class SettingsStore { private readonly JsonSerializerOptions _options = new() { PropertyNameCaseInsensitive = true, WriteIndented = true, }; public string SettingsPath { get; } public string LogPath { get; } public SettingsStore() { var basePath = Path.Combine( Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "AIStylegallery", "PhotoboothUploader"); Directory.CreateDirectory(basePath); SettingsPath = Path.Combine(basePath, "settings.json"); LogPath = Path.Combine(basePath, "uploader.log"); } public PhotoboothSettings Load() { if (!File.Exists(SettingsPath)) { return new PhotoboothSettings(); } var json = File.ReadAllText(SettingsPath); return JsonSerializer.Deserialize(json, _options) ?? new PhotoboothSettings(); } public void Save(PhotoboothSettings settings) { var json = JsonSerializer.Serialize(settings, _options); File.WriteAllText(SettingsPath, json); } }