diff --git a/Wallet.Avalonia/OpenWalletView.axaml b/Wallet.Avalonia/OpenWalletView.axaml
index ba6b593..e246c30 100644
--- a/Wallet.Avalonia/OpenWalletView.axaml
+++ b/Wallet.Avalonia/OpenWalletView.axaml
@@ -23,14 +23,17 @@
PasswordChar="●"
Text="{Binding Password}">
-
+
-
+
+
+
+
diff --git a/Wallet/CreateWalletViewModel.cs b/Wallet/CreateWalletViewModel.cs
index 4a8babe..ff843ad 100644
--- a/Wallet/CreateWalletViewModel.cs
+++ b/Wallet/CreateWalletViewModel.cs
@@ -61,7 +61,7 @@ public partial class CreateWalletViewModel :
{
if (args.PropertyName is string name)
{
- Validation.Validate(name);
+ _ = Validation.Validate(name);
}
base.OnPropertyChanged(args);
diff --git a/Wallet/OpenWalletViewModel.cs b/Wallet/OpenWalletViewModel.cs
index 1a3b04a..abe05a7 100644
--- a/Wallet/OpenWalletViewModel.cs
+++ b/Wallet/OpenWalletViewModel.cs
@@ -1,21 +1,21 @@
using CommunityToolkit.Mvvm.ComponentModel;
using CommunityToolkit.Mvvm.Input;
+using System.Diagnostics.CodeAnalysis;
using Toolkit.Foundation;
namespace Wallet;
public partial class OpenWalletViewModel : Observable
{
- private readonly IValidation validation;
+ [ObservableProperty]
+ private IValidation validation;
[ObservableProperty]
private string? name;
+ [MaybeNull]
[ObservableProperty]
- private string? password;
-
- [ObservableProperty]
- private string? repeatedPassword;
+ private string password;
public OpenWalletViewModel(IValidation validation,
IServiceProvider provider,
@@ -35,12 +35,10 @@ public partial class OpenWalletViewModel : Observable
{
using (await new ActivityLock(this))
{
- if (Password is { Length: > 0 })
+ if (await validation.Validate(() => Password, [new ValidationRule(async () =>
+ await Mediator.Handle>, bool>(Activate.As(new Wallet(Password))), "The password is incorrect, please try again.")]))
{
- if (await Mediator.Handle>, bool>(Activate.As(new Wallet(Password))))
- {
- Publisher.Publish(Opened.As());
- }
+ Publisher.Publish(Opened.As());
}
}
}