using CommunityToolkit.Mvvm.ComponentModel; using CommunityToolkit.Mvvm.Input; using LehrerApp.Data; namespace LehrerApp.Desktop.ViewModels; /// /// Passwort-Abfrage beim Programmstart, wenn die Datenbank verschlüsselt ist (13.3.4). /// Läuft vor , deshalb ohne DI. /// public partial class DbPasswordPromptViewModel : ObservableObject { private readonly DatabaseEncryptionService _dbEncryption; private readonly string _dbPath; [ObservableProperty] private string _password = ""; [ObservableProperty] private string _error = ""; public Action? OnUnlocked { get; set; } public DbPasswordPromptViewModel(DatabaseEncryptionService dbEncryption, string dbPath) { _dbEncryption = dbEncryption; _dbPath = dbPath; } [RelayCommand] private void Unlock() { if (string.IsNullOrEmpty(Password)) { Error = "Bitte Passwort eingeben."; return; } if (!_dbEncryption.VerifyPassword(_dbPath, Password)) { Error = "Falsches Passwort."; Password = ""; return; } OnUnlocked?.Invoke(Password); } }