using ModVersionChecker.data.model; using ModVersionChecker.managers.interfaces; using System.Collections.Generic; using System.IO; using System.Text.Json; namespace ModVersionChecker.managers.filesystem { public class SourcesDefManager { private readonly string _filePath = Path.Combine(AppContext.BaseDirectory, "data", "sourcesDef.json"); private List _sourcesDef = new List(); public SourcesDefManager() { _sourcesDef = Load(); } private List Load() { if (!File.Exists(_filePath)) return new List(); var json = File.ReadAllText(_filePath); return JsonSerializer.Deserialize>(json) ?? new(); } public List GetSourcesDef() { return _sourcesDef; } public void AddSourceDef(SourceDef sourceDef) { _sourcesDef.Add(sourceDef); Save(_sourcesDef); } public void RemoveSourceDef(string id) { _sourcesDef.RemoveAll(s => s.Id == id); Save(_sourcesDef); } public void Save(List sourcesDef) { var options = new JsonSerializerOptions { WriteIndented = true }; var json = JsonSerializer.Serialize(sourcesDef, options); File.WriteAllText(_filePath, json); } } }