ChronoFlow/ChronoFlow.View/MainWindow.axaml.cs

64 lines
2.2 KiB
C#

using System;
using Avalonia.Controls;
using Avalonia.Interactivity;
using ChronoFlow.Model;
using ChronoFlow.View.Admin;
namespace ChronoFlow.View
{
public partial class MainWindow : Window
{
private readonly ViewManager _viewManager;
private readonly User _loggedInUser;
public MainWindow(User user)
{
InitializeComponent();
_loggedInUser = user;
Console.WriteLine($"[DEBUG] MainWindow gestartet für Benutzer: {_loggedInUser.Username} ({_loggedInUser.Role})");
_viewManager = new ViewManager(ContentArea);
_viewManager.Register("ProjektErstellen", () => new ProjektErstellenView(_viewManager));
_viewManager.Register("MitarbeiterHinzufuegen", () => new MitarbeiterHinzufuegenView());
_viewManager.Register("AdminMain", () => new AdminMainView(_viewManager));
_viewManager.Register("AlleProjekte", () => new AlleProjekteView(_viewManager));
_viewManager.Register("MitarbeiterListe", () => new MitarbeiterListeView(_viewManager));
_viewManager.Register("AbgeschlosseneProjekte", () => new AbgeschlosseneProjekteView(_viewManager));
// ⏳ später: _viewManager.Register("MitarbeiterMain", () => new MitarbeiterMainView(_viewManager));
if (_loggedInUser.Role == "Admin")
{
_viewManager.Show("AdminMain");
}
else if (_loggedInUser.Role == "Mitarbeiter")
{
_viewManager.Show("Zeiterfassung"); // ⏳ später: MitarbeiterMain
}
this.Title = $"ChronoFlow - Willkommen {_loggedInUser.Username} ({_loggedInUser.Role})";
}
private void Zeiterfassung_Click(object? sender, RoutedEventArgs e)
{
_viewManager.Show("Zeiterfassung");
}
private void MitarbeiterHinzufuegen_Click(object? sender, RoutedEventArgs e)
{
_viewManager.Show("MitarbeiterHinzufuegen");
}
private void AdminDashboard_Click(object? sender, RoutedEventArgs e)
{
_viewManager.Show("AdminMain");
}
public void ShowAdminDashboard()
{
_viewManager.Show("AdminMain");
}
}
}