fix: Geräte-Pairing - Fehlschlag beim Einlösen war unsichtbar
RedeemPairingCode() rief nach einem Fehlschlag sofort RestartApplication() auf, direkt nach dem Setzen von PairingStatus - die Fehlermeldung konnte nie gerendert werden, und wurde auch nirgends geloggt. Ein Fehlschlag (falscher/abgelaufener Code, Server nicht erreichbar) wirkte dadurch wie ein kommentarloser Absturz ohne jede Spur. - SettingsViewModel loggt den Fehler jetzt über AppLogger und zeigt vor dem Neustart einen Bestätigungsdialog mit der echten Fehlermeldung an. - AppBootstrapper.RestartApplication() gibt unter dotnet run/IDE-Debug (wo ProcessPath auf den dotnet-Host statt die App zeigt) die ursprünglichen Kommandozeilenargumente beim Neustart mit, statt nur die dotnet-CLI-Hilfe zu öffnen. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -21,6 +21,7 @@ public partial class SettingsView : UserControl
|
||||
vm.OnAppLockChanged = () => App.Services.GetRequiredService<AppLockViewModel>().ApplyConfig();
|
||||
vm.OnConfirmHardDelete = ShowHardDeleteConfirmDialog;
|
||||
vm.OnConfirmPairingRestore = ShowPairingRestoreConfirmDialog;
|
||||
vm.OnShowPairingError = ShowPairingErrorDialog;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -66,6 +67,19 @@ public partial class SettingsView : UserControl
|
||||
return owner is not null && await dialog.ShowDialog<bool>(owner);
|
||||
}
|
||||
|
||||
private async Task ShowPairingErrorDialog(string message)
|
||||
{
|
||||
var info = new ConfirmDialogInfo
|
||||
{
|
||||
Title = "Kopplung fehlgeschlagen",
|
||||
Message = $"{message}\n\nDie App wird jetzt neu gestartet (unveränderte Datenbank).",
|
||||
ConfirmText = "OK",
|
||||
};
|
||||
var dialog = new ConfirmDialog { DataContext = info };
|
||||
var owner = TopLevel.GetTopLevel(this) as Window;
|
||||
if (owner is not null) await dialog.ShowDialog<bool>(owner);
|
||||
}
|
||||
|
||||
private async void OnImportClick(object? sender, RoutedEventArgs e)
|
||||
{
|
||||
var topLevel = TopLevel.GetTopLevel(this);
|
||||
|
||||
Reference in New Issue
Block a user