using System; using Avalonia.Controls; using Avalonia.Interactivity; using Avalonia.Media; using ChronoFlow.Model; using Microsoft.Data.Sqlite; using ChronoFlow.Persistence; 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 ?? ""; string password = PasswordBox.Text ?? ""; string rolle = (RoleBox.SelectedItem as ComboBoxItem)?.Content?.ToString() ?? ""; string mitarbeiternummer = MitarbeiternummerBox.Text ?? ""; string abteilung = AbteilungBox.Text ?? ""; 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; } using var connection = new SqliteConnection("Data Source=chrono_data.sb"); connection.Open(); var cmd = connection.CreateCommand(); cmd.CommandText = @" INSERT INTO Benutzer (Username, Password, Role, Mitarbeiternummer, Abteilung) VALUES ($Username, $Password, $Role, $Mitarbeiternummer, $Abteilung);"; cmd.Parameters.AddWithValue("$Username", username); cmd.Parameters.AddWithValue("$Password", password); cmd.Parameters.AddWithValue("$Role", rolle); cmd.Parameters.AddWithValue("$Mitarbeiternummer", mitarbeiternummer); cmd.Parameters.AddWithValue("$Abteilung", abteilung); cmd.ExecuteNonQuery(); FeedbackText.Text = "✅ Mitarbeiter erfolgreich gespeichert."; FeedbackText.Foreground = Brushes.Green; FeedbackText.IsVisible = true; } catch (Exception ex) { FeedbackText.Text = $"❌ Fehler: {ex.Message}"; FeedbackText.Foreground = Brushes.Red; FeedbackText.IsVisible = true; Console.WriteLine("❌ Ausnahme beim Speichern:"); Console.WriteLine(ex.ToString()); } } } }