Initial project snapshot

This commit is contained in:
2026-04-28 22:29:50 +03:00
commit 8ba0561f4f
365 changed files with 91832 additions and 0 deletions
@@ -0,0 +1,32 @@
using System.Text.Json;
using RemoteAccessPlatform.Windows.Contracts;
using RemoteAccessPlatform.Windows.Models;
namespace RemoteAccessPlatform.Windows.Settings;
public sealed class JsonLocalSettingsStore : ILocalSettingsStore
{
private static readonly JsonSerializerOptions SerializerOptions = new(JsonSerializerDefaults.Web)
{
WriteIndented = true
};
public async Task<LocalClientSettings> LoadAsync(CancellationToken cancellationToken)
{
if (!File.Exists(StoragePathResolver.SettingsFilePath))
{
return new LocalClientSettings();
}
await using FileStream stream = File.OpenRead(StoragePathResolver.SettingsFilePath);
LocalClientSettings? settings = await JsonSerializer.DeserializeAsync<LocalClientSettings>(stream, SerializerOptions, cancellationToken);
return settings ?? new LocalClientSettings();
}
public async Task SaveAsync(LocalClientSettings settings, CancellationToken cancellationToken)
{
StoragePathResolver.EnsureRoot();
await using FileStream stream = File.Create(StoragePathResolver.SettingsFilePath);
await JsonSerializer.SerializeAsync(stream, settings, SerializerOptions, cancellationToken);
}
}