private async Task HandleCreateAccountAsync()

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