49 lines
1.5 KiB
C#
49 lines
1.5 KiB
C#
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<Zeiteintrag> _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();
|
|
}
|
|
|
|
} |