CI / build-and-test (push) Canceled after 0s
Zeigt die Fälligkeit der vier bestehenden, manuell ausgelösten WebUntis-Abgleiche (Fehlzeiten je Lerngruppe, offene Stunden, Klassenbuch-, Hausaufgabenabgleich) in einem neuen Hub-Fenster, ohne selbst WebUntis anzufragen - nur gespeicherte Zeitstempel werden ausgewertet. Konsolidiert die bisher verstreuten Einstiegspunkte (Sidebar-Button, Dashboard-Buttons) in ein neues WebUntis-Menü plus einen kompakten Gesundheits-Indikator auf dem Dashboard. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
59 lines
2.2 KiB
C#
59 lines
2.2 KiB
C#
using Avalonia.Controls;
|
|
using Avalonia.Interactivity;
|
|
using LehrerApp.Core.Interfaces;
|
|
using LehrerApp.Core.Models;
|
|
using LehrerApp.Core.Services;
|
|
using LehrerApp.Desktop.Services;
|
|
using LehrerApp.Desktop.ViewModels.UntisHub;
|
|
using Microsoft.Extensions.DependencyInjection;
|
|
|
|
namespace LehrerApp.Desktop.Views.UntisHub;
|
|
|
|
public partial class UntisHubDialog : Window
|
|
{
|
|
public UntisHubDialog()
|
|
{
|
|
InitializeComponent();
|
|
DataContext = new UntisHubViewModel(
|
|
App.Services.GetRequiredService<UntisHubService>(),
|
|
App.Services.GetRequiredService<IGroupRepository>(),
|
|
App.Services.GetRequiredService<WebUntisIntegrationService>());
|
|
}
|
|
|
|
private void OnRefreshClick(object? sender, RoutedEventArgs e)
|
|
{
|
|
if (DataContext is UntisHubViewModel vm) vm.Load();
|
|
}
|
|
|
|
private async void OnCheckClick(object? sender, RoutedEventArgs e)
|
|
{
|
|
if (DataContext is not UntisHubViewModel vm || sender is not Button { DataContext: UntisHubRowViewModel row })
|
|
return;
|
|
var hub = App.Services.GetRequiredService<UntisHubService>();
|
|
var today = DateOnly.FromDateTime(DateTime.Today);
|
|
|
|
switch (row.Kind)
|
|
{
|
|
case UntisHubJobKind.FehlzeitenKurz or UntisHubJobKind.FehlzeitenLang:
|
|
var group = row.GroupId is { } id ? vm.FindGroup(id) : null;
|
|
if (group is null) return;
|
|
var schoolYears = App.Services.GetRequiredService<SchoolYearService>();
|
|
var start = row.Kind == UntisHubJobKind.FehlzeitenKurz
|
|
? today.AddDays(-30)
|
|
: schoolYears.SchoolYearStart(schoolYears.CurrentSchoolYear());
|
|
await UntisHubActions.RunFehlzeitenAsync(this, group, row.Kind, start, today, hub);
|
|
break;
|
|
case UntisHubJobKind.OffenePeriods:
|
|
await UntisHubActions.RunOffenePeriodsAsync(this, hub);
|
|
break;
|
|
case UntisHubJobKind.Klassenbuchabgleich:
|
|
await UntisHubActions.RunKlassenbuchAsync(this, hub);
|
|
break;
|
|
case UntisHubJobKind.Hausaufgabenabgleich:
|
|
await UntisHubActions.RunHausaufgabenAsync(this, hub);
|
|
break;
|
|
}
|
|
vm.Load();
|
|
}
|
|
}
|