using System; using System.Windows.Forms; using PolyTraderSharp.Models; using PolyTraderSharp.Services; namespace PolyTraderSharp.Ui.Views { /// /// Core-Settings-Ansicht: bearbeitet die ServerSettings über ein PropertyGrid. /// Designbar (siehe SettingsView.Designer.cs); Laufzeit-Abhängigkeiten via Initialize. /// Verhalten entspricht dem bisherigen Settings-Tab (Speichern -> XML + Services neu laden). /// public partial class SettingsView : Form { private const string SettingsPath = "server_settings.xml"; private ServerSettings _settings = new(); private ThreemaService? _threema; private MullvadVpnService? _vpn; private TerminalLogger? _logger; public SettingsView() { InitializeComponent(); btnSave.Click += (_, _) => Save(); btnReload.Click += (_, _) => Reload(); } public void Initialize(ThreemaService threema, MullvadVpnService vpn, TerminalLogger logger) { _threema = threema; _vpn = vpn; _logger = logger; Reload(); } private void Reload() { _settings = ServerSettings.Load(SettingsPath); propertyGrid.SelectedObject = _settings; } private void Save() { try { _settings.Save(SettingsPath); _threema?.ReloadSettings(); _vpn?.ReloadSettings(); _logger?.Info("Server-Einstellungen gespeichert und Services neu geladen."); MessageBox.Show("Server-Einstellungen gespeichert.", "Erfolg", MessageBoxButtons.OK, MessageBoxIcon.Information); } catch (Exception ex) { MessageBox.Show($"Fehler beim Speichern: {ex.Message}", "Fehler", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } }