66 lines
1.4 KiB
C#
66 lines
1.4 KiB
C#
using CommunityToolkit.Mvvm.ComponentModel;
|
|
using CommunityToolkit.Mvvm.Input;
|
|
using MauiApp.Core.Business.Contracts;
|
|
|
|
namespace MauiApp.ViewModels;
|
|
|
|
public partial class LoginPageViewModel(IAccountService accountService) : BasePageViewModel
|
|
{
|
|
[ObservableProperty] private string _username;
|
|
[ObservableProperty] private string _password;
|
|
|
|
[ObservableProperty] private string _loginErrorMessage;
|
|
|
|
|
|
private readonly IAccountService _accountService = accountService;
|
|
|
|
|
|
public override async Task Initialize()
|
|
{
|
|
await base.Initialize();
|
|
}
|
|
|
|
|
|
[RelayCommand]
|
|
private async Task Login()
|
|
{
|
|
if (!Validate())
|
|
return;
|
|
|
|
IsBusy = true;
|
|
|
|
try
|
|
{
|
|
await accountService.Login(Username, Password);
|
|
await NavigationService.NavigateAsync<MainPage>(clearStack: true);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
LoginErrorMessage = ex.Message;
|
|
}
|
|
|
|
IsBusy = false;
|
|
}
|
|
|
|
|
|
private bool Validate()
|
|
{
|
|
var hasEmailError = string.IsNullOrWhiteSpace(Username);
|
|
var hasPasswordError = string.IsNullOrWhiteSpace(Password);
|
|
|
|
if (hasEmailError)
|
|
{
|
|
LoginErrorMessage = "Username non valido";
|
|
return false;
|
|
}
|
|
|
|
if (hasPasswordError)
|
|
{
|
|
LoginErrorMessage = "Password non valida";
|
|
return false;
|
|
}
|
|
|
|
|
|
return true;
|
|
}
|
|
} |