Upgrade Sitzplan - Jetzt mit Bewertungsfeature

This commit is contained in:
2026-08-19 16:46:08 +02:00
parent f514d1d58c
commit 0faa3f54de
14 changed files with 370 additions and 14 deletions
@@ -1,11 +1,17 @@
using Avalonia.Controls;
using Avalonia.Input;
using LehrerApp.Desktop.ViewModels;
using LehrerApp.Sync;
namespace LehrerApp.Desktop.Views;
public partial class MainWindow : Window
{
private static readonly TimeSpan FinalSyncDelay = TimeSpan.FromMilliseconds(350);
private SyncEngine? _syncEngine;
private bool _finalSyncStarted;
private bool _closeAfterFinalSync;
public MainWindow()
{
InitializeComponent();
@@ -14,6 +20,24 @@ public partial class MainWindow : Window
KeyDown += (_, _) => NotifyActivity();
}
public void EnableFinalSync(SyncEngine syncEngine)
{
_syncEngine = syncEngine;
Closing += OnClosing;
}
private async void OnClosing(object? sender, WindowClosingEventArgs e)
{
if (_closeAfterFinalSync || _finalSyncStarted || _syncEngine is null)
return;
e.Cancel = true;
_finalSyncStarted = true;
await _syncEngine.SyncBeforeShutdownAsync(FinalSyncDelay);
_closeAfterFinalSync = true;
Close();
}
private void NotifyActivity()
{
if (DataContext is MainWindowViewModel vm) vm.AppLock.NotifyActivity();