HAcontrol/SettingsWindow.axaml.cs
audioprog fb4730effe Init
2025-08-15 23:40:39 +02:00

53 lines
1.5 KiB
C#

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<Settings>(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;
}