ChronoFlow/ChronoFlow.View/LoginWindow.axaml.cs
2025-04-28 16:52:18 +02:00

60 lines
1.9 KiB
C#

using System.Linq;
using Avalonia.Controls;
using Avalonia.Interactivity;
using ChronoFlow.Controller;
using ChronoFlow.Persistence;
namespace ChronoFlow.View
{
/// <summary>
/// Das Fenster für den Benutzer-Login.
/// </summary>
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();
}
/// <summary>
/// Wird ausgeführt, wenn der Benutzer auf "Anmelden" klickt.
/// </summary>
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;
}
}
}
}