46 lines
1.2 KiB
C#
46 lines
1.2 KiB
C#
using System;
|
|
using System.IO;
|
|
using System.Text.Json;
|
|
using PhotoboothUploader.Models;
|
|
|
|
namespace PhotoboothUploader.Services;
|
|
|
|
public sealed class SettingsStore
|
|
{
|
|
private readonly JsonSerializerOptions _options = new()
|
|
{
|
|
PropertyNameCaseInsensitive = true,
|
|
WriteIndented = true,
|
|
};
|
|
|
|
public string SettingsPath { get; }
|
|
|
|
public SettingsStore()
|
|
{
|
|
var basePath = Path.Combine(
|
|
Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData),
|
|
"Fotospiel",
|
|
"PhotoboothUploader");
|
|
|
|
Directory.CreateDirectory(basePath);
|
|
SettingsPath = Path.Combine(basePath, "settings.json");
|
|
}
|
|
|
|
public PhotoboothSettings Load()
|
|
{
|
|
if (!File.Exists(SettingsPath))
|
|
{
|
|
return new PhotoboothSettings();
|
|
}
|
|
|
|
var json = File.ReadAllText(SettingsPath);
|
|
return JsonSerializer.Deserialize<PhotoboothSettings>(json, _options) ?? new PhotoboothSettings();
|
|
}
|
|
|
|
public void Save(PhotoboothSettings settings)
|
|
{
|
|
var json = JsonSerializer.Serialize(settings, _options);
|
|
File.WriteAllText(SettingsPath, json);
|
|
}
|
|
}
|