using Avalonia.Controls; using Avalonia.Interactivity; using System.IO; using System.Text.Json; namespace HAcontrol; public partial class SettingsWindow : Window { private const string SettingsFile = "settings.json"; public SettingsWindow() { InitializeComponent(); LoadSettings(); } private void LoadSettings() { if (File.Exists(SettingsFile)) { var json = File.ReadAllText(SettingsFile); var settings = JsonSerializer.Deserialize(json); if (settings != null) { UrlBox.Text = settings.HomeAssistantUrl; TokenBox.Text = settings.AccessToken; WebhookBox.Text = settings.WebhookId; } } } private void Save_Click(object? sender, RoutedEventArgs e) { var settings = new Settings { HomeAssistantUrl = UrlBox.Text ?? string.Empty, AccessToken = TokenBox.Text ?? string.Empty, WebhookId = WebhookBox.Text ?? string.Empty }; var json = JsonSerializer.Serialize(settings, new JsonSerializerOptions { WriteIndented = true }); File.WriteAllText(SettingsFile, json); this.Close(); } } public class Settings { public string HomeAssistantUrl { get; set; } = string.Empty; public string AccessToken { get; set; } = string.Empty; public string WebhookId { get; set; } = string.Empty; public string Entity { get; set; } = string.Empty; }