using ModVersionChecker.managers.interfaces; using ModVersionChecker.model; using System; using System.IO; using System.Text.Json; namespace ModVersionChecker.managers.filesystem { public class ConfigManager : IConfigRepository { private static readonly string _filePath = Path.Combine(AppContext.BaseDirectory, "data", "config.json"); private Config _config; public ConfigManager() { _config = Load(); } public Config Load() { if (!File.Exists(_filePath)) return new Config(); var json = File.ReadAllText(_filePath); return JsonSerializer.Deserialize(json) ?? new Config(); } public Config GetConfig() { return _config; } public void Save(Config config) { var options = new JsonSerializerOptions { WriteIndented = true }; var json = JsonSerializer.Serialize(config, options); File.WriteAllText(_filePath, json); } } }