Added Login validation
This commit is contained in:
@@ -23,14 +23,17 @@
|
|||||||
PasswordChar="●"
|
PasswordChar="●"
|
||||||
Text="{Binding Password}">
|
Text="{Binding Password}">
|
||||||
<Interaction.Behaviors>
|
<Interaction.Behaviors>
|
||||||
<KeyBindingTriggerBehaviour Gesture="Enter">
|
<KeyBindingTriggerBehaviour Gesture="Enter" IsEnabled="{Binding Password, Converter={x:Static StringConverters.IsNotNullOrEmpty}}">
|
||||||
<InvokeCommandAction Command="{Binding InvokeCommand}" />
|
<InvokeCommandAction Command="{Binding InvokeCommand}" />
|
||||||
</KeyBindingTriggerBehaviour>
|
</KeyBindingTriggerBehaviour>
|
||||||
</Interaction.Behaviors>
|
</Interaction.Behaviors>
|
||||||
</TextBox>
|
</TextBox>
|
||||||
<ProgressRing
|
<Grid>
|
||||||
HorizontalAlignment="Center"
|
<TextBlock HorizontalAlignment="Center" Text="{ReflectionBinding Validation.Errors[Password]}" />
|
||||||
VerticalAlignment="Center"
|
<ProgressRing
|
||||||
IsActive="{Binding IsActive}" />
|
HorizontalAlignment="Center"
|
||||||
|
VerticalAlignment="Center"
|
||||||
|
IsActive="{Binding IsActive}" />
|
||||||
|
</Grid>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
</UserControl>
|
</UserControl>
|
||||||
|
|||||||
@@ -61,7 +61,7 @@ public partial class CreateWalletViewModel :
|
|||||||
{
|
{
|
||||||
if (args.PropertyName is string name)
|
if (args.PropertyName is string name)
|
||||||
{
|
{
|
||||||
Validation.Validate(name);
|
_ = Validation.Validate(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
base.OnPropertyChanged(args);
|
base.OnPropertyChanged(args);
|
||||||
|
|||||||
@@ -1,21 +1,21 @@
|
|||||||
using CommunityToolkit.Mvvm.ComponentModel;
|
using CommunityToolkit.Mvvm.ComponentModel;
|
||||||
using CommunityToolkit.Mvvm.Input;
|
using CommunityToolkit.Mvvm.Input;
|
||||||
|
using System.Diagnostics.CodeAnalysis;
|
||||||
using Toolkit.Foundation;
|
using Toolkit.Foundation;
|
||||||
|
|
||||||
namespace Wallet;
|
namespace Wallet;
|
||||||
|
|
||||||
public partial class OpenWalletViewModel : Observable
|
public partial class OpenWalletViewModel : Observable
|
||||||
{
|
{
|
||||||
private readonly IValidation validation;
|
[ObservableProperty]
|
||||||
|
private IValidation validation;
|
||||||
|
|
||||||
[ObservableProperty]
|
[ObservableProperty]
|
||||||
private string? name;
|
private string? name;
|
||||||
|
|
||||||
|
[MaybeNull]
|
||||||
[ObservableProperty]
|
[ObservableProperty]
|
||||||
private string? password;
|
private string password;
|
||||||
|
|
||||||
[ObservableProperty]
|
|
||||||
private string? repeatedPassword;
|
|
||||||
|
|
||||||
public OpenWalletViewModel(IValidation validation,
|
public OpenWalletViewModel(IValidation validation,
|
||||||
IServiceProvider provider,
|
IServiceProvider provider,
|
||||||
@@ -35,12 +35,10 @@ public partial class OpenWalletViewModel : Observable
|
|||||||
{
|
{
|
||||||
using (await new ActivityLock(this))
|
using (await new ActivityLock(this))
|
||||||
{
|
{
|
||||||
if (Password is { Length: > 0 })
|
if (await validation.Validate(() => Password, [new ValidationRule(async () =>
|
||||||
|
await Mediator.Handle<ActivateEventArgs<Wallet<string>>, bool>(Activate.As(new Wallet<string>(Password))), "The password is incorrect, please try again.")]))
|
||||||
{
|
{
|
||||||
if (await Mediator.Handle<ActivateEventArgs<Wallet<string>>, bool>(Activate.As(new Wallet<string>(Password))))
|
Publisher.Publish(Opened.As<Wallet>());
|
||||||
{
|
|
||||||
Publisher.Publish(Opened.As<Wallet>());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user