97 lines
2.9 KiB
C#
97 lines
2.9 KiB
C#
using System;
|
|
using System.Collections.ObjectModel;
|
|
using Avalonia.Controls;
|
|
using Avalonia.Interactivity;
|
|
using ChronoFlow.Model;
|
|
using ChronoFlow.Persistence;
|
|
|
|
namespace ChronoFlow.View.Admin
|
|
{
|
|
public partial class AdminMainView : UserControl
|
|
{
|
|
private readonly ViewManager _viewManager;
|
|
private readonly ObservableCollection<Zeiteintrag> _letzteProjekte = new();
|
|
|
|
public AdminMainView() : this(new ViewManager(new ContentControl()))
|
|
{
|
|
Console.WriteLine("⚠ Achtung: Parameterloser Konstruktor genutzt (nur Standard-ViewManager).");
|
|
}
|
|
|
|
public AdminMainView(ViewManager viewManager)
|
|
{
|
|
InitializeComponent();
|
|
_viewManager = viewManager;
|
|
|
|
Console.WriteLine("✅ AdminMainView wird initialisiert.");
|
|
LadeLetzteProjekte();
|
|
}
|
|
|
|
private void LadeLetzteProjekte()
|
|
{
|
|
Console.WriteLine("🔄 Lade letzte Projekte...");
|
|
|
|
try
|
|
{
|
|
var dbService = new SqliteZeiterfassungsService();
|
|
var letzteAusDb = dbService.LadeLetzteProjekte(3);
|
|
|
|
_letzteProjekte.Clear();
|
|
foreach (var eintrag in letzteAusDb)
|
|
{
|
|
Console.WriteLine($"✅ Projekt geladen: {eintrag.Projekt} ({eintrag.Id})");
|
|
_letzteProjekte.Add(eintrag);
|
|
}
|
|
|
|
if (LetzteProjekteListe != null)
|
|
{
|
|
LetzteProjekteListe.ItemsSource = _letzteProjekte;
|
|
Console.WriteLine("✅ LetzteProjekteListe erfolgreich gebunden.");
|
|
}
|
|
else
|
|
{
|
|
Console.WriteLine("⚠ Warnung: LetzteProjekteListe ist null. Prüfe XAML-Bindung!");
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
Console.WriteLine($"[ERROR] Fehler beim Laden der letzten Projekte: {ex.Message}");
|
|
}
|
|
}
|
|
|
|
private void MitarbeiterHinzufuegen_Click(object sender, RoutedEventArgs e)
|
|
{
|
|
_viewManager.Show("MitarbeiterHinzufuegen");
|
|
}
|
|
|
|
private void ProjektErstellen_Click(object sender, RoutedEventArgs e)
|
|
{
|
|
_viewManager.Show("ProjektErstellen");
|
|
}
|
|
private void AlleProjekte_Click(object sender, RoutedEventArgs e)
|
|
{
|
|
_viewManager.Show("AlleProjekte");
|
|
}
|
|
|
|
private void MitarbeiterListe_Click(object sender, RoutedEventArgs e)
|
|
{
|
|
_viewManager.Show("MitarbeiterListe");
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public void AktualisiereLetzteProjekte()
|
|
{
|
|
LadeLetzteProjekte();
|
|
}
|
|
|
|
private void AbgeschlosseneProjekte_Click(object? sender, RoutedEventArgs e)
|
|
{
|
|
_viewManager.Show("AbgeschlosseneProjekte");
|
|
}
|
|
|
|
|
|
}
|
|
}
|