ChronoFlow/ChronoFlow.View/MitarbeiterHinzufuegenView.axaml.cs
2025-04-27 21:28:33 +02:00

70 lines
2.6 KiB
C#

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());
}
}
}
}