using System; using Avalonia.Controls; using Avalonia.Interactivity; using Avalonia.Media; using ChronoFlow.Model; using ChronoFlow.Persistence; using ChronoFlow.Security; namespace ChronoFlow.View { public partial class MitarbeiterHinzufuegenView : UserControl { public MitarbeiterHinzufuegenView() { InitializeComponent(); } private void SpeichernButton_Click(object? sender, RoutedEventArgs e) { try { var service = new SqliteZeiterfassungsService(); string username = UsernameBox.Text?.Trim() ?? ""; string password = PasswordBox.Text?.Trim() ?? ""; string rolle = (RoleBox.SelectedItem as ComboBoxItem)?.Content?.ToString() ?? ""; string mitarbeiternummer = MitarbeiternummerBox.Text?.Trim() ?? ""; string abteilung = AbteilungBox.Text?.Trim() ?? ""; if (string.IsNullOrWhiteSpace(username) || string.IsNullOrWhiteSpace(password) || string.IsNullOrWhiteSpace(rolle)) { FeedbackText.Text = "⚠ Bitte alle Pflichtfelder ausfüllen!"; FeedbackText.Foreground = Brushes.Red; FeedbackText.IsVisible = true; return; } var neuerBenutzer = new User { Username = username, Password = PasswordHasher.HashPassword(password), Role = rolle, Mitarbeiternummer = mitarbeiternummer, Abteilung = abteilung, MussPasswortAendern = true }; service.ErstelleNeuenBenutzer(neuerBenutzer); FeedbackText.Text = "✅ Mitarbeiter erfolgreich gespeichert."; FeedbackText.Foreground = Brushes.Green; FeedbackText.IsVisible = true; ClearFields(); } catch (Exception ex) { FeedbackText.Text = $"❌ Fehler: {ex.Message}"; FeedbackText.Foreground = Brushes.Red; FeedbackText.IsVisible = true; Console.WriteLine("❌ Ausnahme beim Speichern:"); Console.WriteLine(ex.ToString()); } } private void ClearFields() { UsernameBox.Text = ""; PasswordBox.Text = ""; MitarbeiternummerBox.Text = ""; AbteilungBox.Text = ""; RoleBox.SelectedIndex = -1; } private void ZurueckZumDashboard_Click(object? sender, RoutedEventArgs e) { var mainWindow = this.VisualRoot as MainWindow; if (mainWindow != null) { mainWindow.ShowAdminDashboard(); } else { Console.WriteLine("⚠️ MainWindow nicht gefunden!"); } } } }