using System.IO; using System.Text; using System.Threading.Tasks; using Flawless.Client.Models; using Newtonsoft.Json; using Path = System.IO.Path; namespace Flawless.Client.Service; public class SettingService : BaseService { private readonly JsonSerializer _serializer = JsonSerializer.Create(); public static string SettingFilePath { get; } = Path.Combine(AppDefaultValues.ProgramDataDirectory, "settings.json"); public AppSettingModel AppSetting { get; } = new AppSettingModel(); public async ValueTask WriteToDiskAsync() { var stream = File.Exists(SettingFilePath) ? File.OpenWrite(SettingFilePath) : File.Create(SettingFilePath); await using var fs = new StreamWriter(stream, Encoding.UTF8); _serializer.Serialize(fs, AppSetting); } public async ValueTask ReadFromDiskAsync() { if (!File.Exists(SettingFilePath)) return; using var fs = new StreamReader(File.OpenRead(SettingFilePath), Encoding.UTF8); _serializer.Populate(fs, AppSetting); } }