using System; using System.Collections.Generic; using Avalonia.Controls; using Avalonia.Interactivity; using Avalonia.Media; using ChronoFlow.Model; using ChronoFlow.Persistence; namespace ChronoFlow.View.Admin { public partial class ProjektErstellenView : UserControl { private readonly ViewManager _viewManager; public ProjektErstellenView(ViewManager viewManager) { InitializeComponent(); _viewManager = viewManager; var dbService = new SqliteZeiterfassungsService(); List mitarbeiter = dbService.LadeAlleMitarbeiterNamen(); // ✅ Nur ItemsSource verwenden, nicht Items MitarbeiterDropdown.ItemsSource = mitarbeiter; } private void SpeichernButton_Click(object? sender, RoutedEventArgs e) { string projektname = ProjektnameBox.Text ?? ""; DateTime startdatum = StartdatumPicker.SelectedDate?.Date ?? DateTime.Today; DateTime enddatum = EnddatumPicker.SelectedDate?.Date ?? DateTime.Today; string startzeitText = StartzeitBox.Text ?? "00:00"; string endzeitText = EndzeitBox.Text ?? "00:00"; string mitarbeiter = MitarbeiterDropdown.SelectedItem?.ToString() ?? ""; string kommentar = KommentarBox.Text ?? ""; if (string.IsNullOrWhiteSpace(projektname) || string.IsNullOrWhiteSpace(mitarbeiter)) { FeedbackText.Text = "⚠ Bitte Projektname und Mitarbeiter ausfüllen!"; FeedbackText.Foreground = Brushes.Red; FeedbackText.IsVisible = true; return; } if (!TimeSpan.TryParse(startzeitText, out var startzeit)) { FeedbackText.Text = "⚠ Ungültige Startzeit (Format HH:mm)!"; FeedbackText.Foreground = Brushes.Red; FeedbackText.IsVisible = true; return; } if (!TimeSpan.TryParse(endzeitText, out var endzeit)) { FeedbackText.Text = "⚠ Ungültige Endzeit (Format HH:mm)!"; FeedbackText.Foreground = Brushes.Red; FeedbackText.IsVisible = true; return; } DateTime startDateTime = startdatum + startzeit; DateTime endDateTime = enddatum + endzeit; var dbService = new SqliteZeiterfassungsService(); // 💡 Achtung: Aktuell speichern wir als Zeiteintrag (kein eigenes Projektmodell!) dbService.SpeichereEintrag(new Zeiteintrag { Mitarbeiter = mitarbeiter, Projekt = projektname, Startzeit = startDateTime, Endzeit = endDateTime, Kommentar = kommentar, Erledigt = false }); FeedbackText.Text = "✅ Projekt erfolgreich gespeichert."; FeedbackText.Foreground = Brushes.Green; FeedbackText.IsVisible = true; // Felder zurücksetzen ProjektnameBox.Text = ""; KommentarBox.Text = ""; StartdatumPicker.SelectedDate = DateTime.Today; EnddatumPicker.SelectedDate = DateTime.Today; StartzeitBox.Text = "09:00"; EndzeitBox.Text = "17:00"; MitarbeiterDropdown.SelectedItem = null; // 🔄 Dashboard aktualisieren, wenn zurück if (_viewManager.TryGetView("AdminMain", out var adminView) && adminView != null) { adminView.AktualisiereLetzteProjekte(); } } private void ZurueckButton_Click(object? sender, RoutedEventArgs e) { _viewManager.Show("AdminMain"); } } }