96 lines
3.6 KiB
C#
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
|
|
}
|
|
}
|
|
} |