1
0

33 lines
1.1 KiB
C#

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<SettingService>
{
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);
}
}