in src/Covi/Features/CreateProfile/CreateProfileViewModel.cs [186:224]
private async Task HandleCreateAccountAsync()
{
if (UsernameHasAnError.HasValue && UsernameHasAnError.Value == false
&& PasswordHasAnError.HasValue && PasswordHasAnError.Value == false
&& ConfirmPasswordHasAnError.HasValue && ConfirmPasswordHasAnError.Value == false)
{
try
{
IsBusy = true;
await _signUpService.CreateProfileAsync(
new UserSignUpInfo(UsernameValue, PasswordValue));
await _onBoardingRoute.ExecuteAsync(_navigationService);
}
catch (CreateProfileCredentialsValidationException ex)
{
if (ex.UsernameErrors.Any())
{
var usernameErrors = string.Join(";", ex.UsernameErrors);
UsernameHasAnError = !string.IsNullOrWhiteSpace(usernameErrors);
UsernameErrorText = usernameErrors;
}
if (ex.PasswordErrors.Any())
{
var passwordErrors = string.Join(";", ex.PasswordErrors);
PasswordHasAnError = !string.IsNullOrWhiteSpace(passwordErrors);
ErrorText = passwordErrors;
}
}
catch (Exception e)
{
await _errorHandler.HandleAsync(e);
}
finally
{
IsBusy = false;
}
}
}