AquaCare/AquaCare.View/PflegeWindow.axaml.cs
2025-06-27 23:52:00 +02:00

96 lines
3.6 KiB
C#

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
}
}
}