ChronoFlow/ChronoFlow.View/Mitarbeiter/EmployeeTasksViewModel.axaml.cs
2025-06-12 13:41:27 +02:00

54 lines
2.0 KiB
C#
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System.Collections.ObjectModel;
using System.Threading.Tasks;
using CommunityToolkit.Mvvm.ComponentModel;
using CommunityToolkit.Mvvm.Input;
using ChronoFlow.Model;
using ChronoFlow.Persistence;
namespace ChronoFlow.ViewModels.Mitarbeiter
{
public partial class EmployeeTasksViewModel : ObservableObject
{
// Liste aller Zeiteinträge für den aktuell eingeloggten Mitarbeiter
[ObservableProperty]
private ObservableCollection<Zeiteintrag> eintraege = new();
// Ausgabe für Erfolg/Nachricht
[ObservableProperty]
private string? statusText;
private readonly IZeiterfassungsRepository repository;
private readonly string aktuellerBenutzername;
// Konstruktor erhält Repository (z.B. SqliteZeiterfassungsService) + aktuellen Benutzernamen
public EmployeeTasksViewModel(IZeiterfassungsRepository repository, string aktuellerBenutzername)
{
this.repository = repository;
this.aktuellerBenutzername = aktuellerBenutzername;
// Direkt beim Start laden
_ = LadeEintraegeAsync();
}
// Lädt alle Einträge für den Benutzer aus der Datenbank
[RelayCommand]
public async Task LadeEintraegeAsync()
{
var eintraegeAusDb = await repository.GetEintraegeFuerMitarbeiterAsync(aktuellerBenutzername);
Eintraege = new ObservableCollection<Zeiteintrag>(eintraegeAusDb);
StatusText = $"🔄 {Eintraege.Count} Einträge geladen.";
}
// Speichert Änderungen (Status + Kommentar) für alle sichtbaren Einträge
[RelayCommand]
public async Task SpeichereEintraegeAsync()
{
foreach (var eintrag in Eintraege)
{
await repository.UpdateStatusUndKommentarAsync(eintrag.Id, eintrag.Erledigt, eintrag.MitarbeiterKommentar);
}
StatusText = "✅ Änderungen gespeichert.";
}
}
}