Added Validation logics
This commit is contained in:
@@ -1,17 +1,11 @@
|
||||
using CommunityToolkit.Mvvm.ComponentModel;
|
||||
using System.ComponentModel;
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using System.Reactive.Disposables;
|
||||
using Toolkit.Foundation;
|
||||
|
||||
namespace Wallet;
|
||||
|
||||
public partial class CreateWalletViewModel(IServiceProvider provider,
|
||||
IServiceFactory factory,
|
||||
IPublisher publisher,
|
||||
IMediator mediator,
|
||||
ISubscriber subscriber,
|
||||
IDisposer disposer) :
|
||||
Observable(provider, factory, mediator, publisher, subscriber, disposer),
|
||||
public partial class CreateWalletViewModel : Observable,
|
||||
IPrimaryConfirmation
|
||||
{
|
||||
[MaybeNull]
|
||||
@@ -22,6 +16,32 @@ public partial class CreateWalletViewModel(IServiceProvider provider,
|
||||
[ObservableProperty]
|
||||
private string password;
|
||||
|
||||
[MaybeNull]
|
||||
[ObservableProperty]
|
||||
private string? repeatedPassword;
|
||||
|
||||
[ObservableProperty]
|
||||
private IValidation validation;
|
||||
|
||||
public CreateWalletViewModel(IValidation validation,
|
||||
IServiceProvider provider,
|
||||
IServiceFactory factory,
|
||||
IMediator mediator,
|
||||
IPublisher publisher,
|
||||
ISubscriber subscriber,
|
||||
IDisposer disposer) : base(provider, factory, mediator, publisher, subscriber, disposer)
|
||||
{
|
||||
Validation = validation;
|
||||
|
||||
Validation.Add(() => Name, [new ValidationRule(() => Name is { Length: > 0 })],
|
||||
ValidationTrigger.Immediate);
|
||||
|
||||
Validation.Add(() => Password, [new ValidationRule(() => Password is { Length: > 0 })],
|
||||
ValidationTrigger.Immediate);
|
||||
|
||||
Name = name;
|
||||
}
|
||||
|
||||
public async Task<bool> ConfirmPrimary()
|
||||
{
|
||||
using (await new ActivityLock(this))
|
||||
@@ -30,4 +50,14 @@ public partial class CreateWalletViewModel(IServiceProvider provider,
|
||||
bool>(Create.As(new Wallet<(string, string)>((Name, Password))));
|
||||
}
|
||||
}
|
||||
|
||||
protected override void OnPropertyChanged(PropertyChangedEventArgs args)
|
||||
{
|
||||
if (args.PropertyName is string name)
|
||||
{
|
||||
Validation.Validate(name);
|
||||
}
|
||||
|
||||
base.OnPropertyChanged(args);
|
||||
}
|
||||
}
|
||||
@@ -1,25 +1,37 @@
|
||||
using CommunityToolkit.Mvvm.ComponentModel;
|
||||
using CommunityToolkit.Mvvm.Input;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using Toolkit.Foundation;
|
||||
|
||||
namespace Wallet;
|
||||
|
||||
public partial class OpenWalletViewModel(IServiceProvider provider,
|
||||
IServiceFactory factory,
|
||||
IMediator mediator,
|
||||
IPublisher publisher,
|
||||
ISubscriber subscriber,
|
||||
IDisposer disposer,
|
||||
string name) :
|
||||
Observable(provider, factory, mediator, publisher, subscriber, disposer)
|
||||
public partial class OpenWalletViewModel : Observable
|
||||
{
|
||||
private readonly IValidation validation;
|
||||
|
||||
[ObservableProperty]
|
||||
private string? name = name;
|
||||
private string? name;
|
||||
|
||||
[ObservableProperty]
|
||||
private string? password;
|
||||
|
||||
|
||||
[ObservableProperty]
|
||||
private string? repeatedPassword;
|
||||
|
||||
public OpenWalletViewModel(IValidation validation,
|
||||
IServiceProvider provider,
|
||||
IServiceFactory factory,
|
||||
IMediator mediator,
|
||||
IPublisher publisher,
|
||||
ISubscriber subscriber,
|
||||
IDisposer disposer,
|
||||
string name) : base(provider, factory, mediator, publisher, subscriber, disposer)
|
||||
{
|
||||
this.validation = validation;
|
||||
|
||||
Name = name;
|
||||
}
|
||||
|
||||
[RelayCommand]
|
||||
private async Task Invoke()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user