Files
EmptyMauiApp/MauiApp/ViewModels/LoginPageViewModel.cs
2023-10-18 19:02:51 +02:00

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;
}
}