using AquaCare.Controller; using Avalonia.Controls; using Avalonia.Interactivity; using Avalonia.Markup.Xaml; using AquaCare.Persistence; using AquaCare.Model; using System; namespace AquaCare.View { // Fenster zur Eingabe und Speicherung von Pflegemaßnahmen und Messwerten public partial class PflegeWindow : Window { // Controller für die Logik und Datenzugriffe private readonly PflegeController _controller; // Konstruktor: Initialisiert das Fenster und den Controller public PflegeWindow() { InitializeComponent(); // Initialisiert die UI-Komponenten _controller = new PflegeController(new Datenbank()); // Erstellt Controller mit Datenbank } // Initialisiert die XAML-Komponenten private void InitializeComponent() { AvaloniaXamlLoader.Load(this); } // Event-Handler für den Speichern-Button private void SaveClick(object? sender, RoutedEventArgs e) { try { // Prüft, ob alle Felder korrekt ausgefüllt sind und Werte gültig sind if (DatumPicker.SelectedDate.HasValue && double.TryParse(TemperaturBox.Text, out double temperatur) && double.TryParse(PhBox.Text, out double phWert) && double.TryParse(NitratBox.Text, out double nitrat) && double.TryParse(AmmoniakBox.Text, out double ammoniak)) { if (temperatur < 0 || phWert < 0 || nitrat < 0 || ammoniak < 0) { Console.WriteLine("Fehler: Werte dürfen nicht negativ sein."); return; } // Speichert die Werte über den Controller var success = _controller.SavePflegeTask( DatumPicker.SelectedDate.Value.DateTime, GefuettertCheckBox.IsChecked ?? false, FilterReinigenCheckBox.IsChecked ?? false, WasserWechselnCheckBox.IsChecked ?? false, temperatur, phWert, nitrat, ammoniak ); if (success) { Console.WriteLine("Erfolg: Werte erfolgreich gespeichert."); // Setzt die Eingabefelder zurück DatumPicker.SelectedDate = null; GefuettertCheckBox.IsChecked = false; FilterReinigenCheckBox.IsChecked = false; WasserWechselnCheckBox.IsChecked = false; TemperaturBox.Text = string.Empty; PhBox.Text = string.Empty; NitratBox.Text = string.Empty; AmmoniakBox.Text = string.Empty; } else { Console.WriteLine("Fehler: Werte konnten nicht gespeichert werden."); } } else { Console.WriteLine("Fehler: Bitte alle Felder korrekt ausfüllen."); } } catch (Exception ex) { Console.WriteLine($"Fehler beim Speichern der Werte: {ex.Message}"); } } // Event-Handler für den Abbrechen-Button private void CancelClick(object? sender, RoutedEventArgs e) { Close(); // Schließt das Fenster } } }