50 lines
No EOL
1.5 KiB
C#
50 lines
No EOL
1.5 KiB
C#
using System.IO;
|
|
using System.Text.Json;
|
|
|
|
namespace MossyUpdater.Services
|
|
{
|
|
public class SettingsService : ISettingsService
|
|
{
|
|
private readonly string _settingsPath;
|
|
|
|
public SettingsService()
|
|
{
|
|
var appDataPath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
|
|
var appFolder = Path.Combine(appDataPath, "MossyUpdater");
|
|
Directory.CreateDirectory(appFolder);
|
|
_settingsPath = Path.Combine(appFolder, "settings.json");
|
|
}
|
|
|
|
public async Task<AppSettings> LoadSettingsAsync()
|
|
{
|
|
try
|
|
{
|
|
if (!File.Exists(_settingsPath))
|
|
return new AppSettings();
|
|
|
|
var json = await File.ReadAllTextAsync(_settingsPath);
|
|
var settings = JsonSerializer.Deserialize<AppSettings>(json);
|
|
return settings ?? new AppSettings();
|
|
}
|
|
catch
|
|
{
|
|
return new AppSettings();
|
|
}
|
|
}
|
|
|
|
public async Task SaveSettingsAsync(AppSettings settings)
|
|
{
|
|
try
|
|
{
|
|
var json = JsonSerializer.Serialize(settings, new JsonSerializerOptions
|
|
{
|
|
WriteIndented = true
|
|
});
|
|
await File.WriteAllTextAsync(_settingsPath, json);
|
|
}
|
|
catch
|
|
{
|
|
}
|
|
}
|
|
}
|
|
} |