using System.Linq; using Avalonia.Controls; using Avalonia.Interactivity; using Avalonia.Metadata; using ChronoFlow.Controller; using ChronoFlow.Persistence; namespace ChronoFlow.View { /// /// Das Fenster für den Benutzer-Login. /// public partial class LoginWindow : Window { private LoginController _loginController; public LoginWindow() { InitializeComponent(); // Verbindet XAML mit diesem Code _loginController = new LoginController(); // Unsere "Logik-Klasse" var service = new SqliteZeiterfassungsService(); service.ErstelleStandardAdmin(); } /// /// Wird ausgeführt, wenn der Benutzer auf "Anmelden" klickt. /// private void LoginButton_Click(object? sender, RoutedEventArgs e) { var username = UsernameBox.Text?.Trim(); var password = PasswordBox.Text?.Trim(); if (string.IsNullOrWhiteSpace(username) || string.IsNullOrWhiteSpace(password)) { ErrorText.Text = "Bitte Benutzername und Passwort eingeben"; ErrorText.IsVisible = true; return; } var service = new SqliteZeiterfassungsService(); var benutzerListe = service.LadeAlleBenutzer(); var user = benutzerListe.FirstOrDefault(u => u.Username == username && u.Password == password); if (user != null) { // Wenn erfolgreich: öffne das MainWindow var main = new MainWindow(user); main.Show(); this.Close(); // Schließe das Login-Fenster } else { // Wenn fehlgeschlagen: Fehlermeldung anzeigen ErrorText.Text = "Login fehlgeschlagen. Bitte prüfen Sie Ihre Eingaben."; ErrorText.IsVisible = true; } } } }