using System.Collections.ObjectModel; using System.Linq; using Avalonia.Controls; using Avalonia.Input; using Avalonia.Interactivity; using ChronoFlow.Model; using ChronoFlow.Persistence; namespace ChronoFlow.View.Admin; public partial class AbgeschlosseneProjekteView : UserControl { private readonly ViewManager _viewManager; private readonly ObservableCollection _abgeschlosseneProjekte = new(); private readonly SqliteZeiterfassungsService _dbService = new(); public AbgeschlosseneProjekteView(ViewManager viewManager) { InitializeComponent(); _viewManager = viewManager; LadeAbgeschlosseneProjekte(); } private void LadeAbgeschlosseneProjekte() { _abgeschlosseneProjekte.Clear(); var ausDb = _dbService.LadeAbgeschlosseneProjekte(); foreach (var eintrag in ausDb) _abgeschlosseneProjekte.Add(eintrag); AbgeschlosseneListe.ItemsSource = _abgeschlosseneProjekte; } private void ZurueckButton_Click(object? sender, RoutedEventArgs e) { _viewManager.Show("AdminMain"); } private void Suchfeld_KeyUp(object? sender, KeyEventArgs e) { var text = Suchfeld?.Text?.ToLower() ?? ""; AbgeschlosseneListe.ItemsSource = _abgeschlosseneProjekte .Where(p => (p.Projekt?.ToLower().Contains(text) ?? false) || (p.Mitarbeiter?.ToLower().Contains(text) ?? false)) .ToList(); } }