Beispiel #1
0
        protected async override void OnStepCommand()
        {
            if (ValidateForm())
            {
                if (_collectedInputsArgs != null)
                {
                    ResetCancellationTokenSource(ref _checkUserNameCancellationTokenSource);
                    CancellationTokenSource cancellationTokenSource = _checkUserNameCancellationTokenSource;

                    Guid busyKey = Guid.NewGuid();
                    SetBusy(busyKey, true);

                    try {
                        UserNameAvailability userNameAvailability = await _identityService.CheckUserNameAvailabiltyAsync(MainInput.Value, cancellationTokenSource.Token);

                        if (userNameAvailability != null)
                        {
                            if (userNameAvailability.IsRequestSuccess)
                            {
                                _collectedInputsArgs.Name = MainInput.Value;
                                await NavigationService.NavigateToAsync <PasswordRegisterStepViewModel>(_collectedInputsArgs);
                            }
                            else
                            {
                                ServerError = userNameAvailability.Message;
                            }
                        }
                    }
                    catch (Exception ex) {
                        var error = JsonConvert.DeserializeObject <HttpRequestExceptionResult>(ex.Message);
                        ServerError = error.Message;

                        Debug.WriteLine($"ERROR:{ex.Message}");
                        Debugger.Break();
                    }
                    SetBusy(busyKey, false);
                }
                else
                {
                    Debugger.Break();
                    await NavigationService.GoBackAsync();
                }
            }
        }
Beispiel #2
0
        public async Task <UserNameAvailability> CheckUserNameAvailabiltyAsync(string userNmae, CancellationToken cancellationToken = default(CancellationToken)) =>
        await Task.Run(async() => {
            UserNameAvailability userNameAvailability = null;

            string url = string.Format(BaseSingleton <GlobalSetting> .Instance.RestEndpoints.IdentityEndpoints.CheckUserNameEndpoint, userNmae);

            try {
                userNameAvailability = await _requestProvider.GetAsync <UserNameAvailability>(url);
            }
            catch (ConnectivityException ex) {
                throw ex;
            }
            catch (HttpRequestExceptionEx ex) {
                throw ex;
            }
            catch (Exception ex) {
                Debug.WriteLine($"ERROR:{ex.Message}");
                Debugger.Break();
            }
            return(userNameAvailability);
        }, cancellationToken);
Beispiel #3
0
        public MediatorResponse <RegisterViewModel> Register(RegisterViewModel registerViewModel)
        {
            var emailAddress = string.IsNullOrWhiteSpace(registerViewModel.EmailAddress)
                ? string.Empty
                : registerViewModel.EmailAddress.Trim();

            UserNameAvailability userNameAvailable;

            if (string.IsNullOrWhiteSpace(emailAddress))
            {
                userNameAvailable = new UserNameAvailability
                {
                    HasError            = false,
                    IsUserNameAvailable = false
                };
            }
            else
            {
                userNameAvailable = _candidateServiceProvider.IsUsernameAvailable(emailAddress);
            }

            if (!userNameAvailable.HasError)
            {
                registerViewModel.IsUsernameAvailable = userNameAvailable.IsUserNameAvailable;
                var validationResult = _registerViewModelServerValidator.Validate(registerViewModel);

                if (!validationResult.IsValid)
                {
                    return(GetMediatorResponse(RegisterMediatorCodes.Register.ValidationFailed, registerViewModel, validationResult));
                }

                var registered = _candidateServiceProvider.Register(registerViewModel);
                if (registered)
                {
                    return(GetMediatorResponse(RegisterMediatorCodes.Register.SuccessfullyRegistered, registerViewModel));
                }
            }

            return(GetMediatorResponse(RegisterMediatorCodes.Register.RegistrationFailed, registerViewModel, RegisterPageMessages.RegistrationFailed, UserMessageLevel.Warning));
        }
        public UserNameAvailability IsUsernameAvailable(string username)
        {
            _logger.Debug("Calling CandidateServiceProvider to if the username {0} is available.", username);

            var userNameAvailability = new UserNameAvailability();

            try
            {
                userNameAvailability.IsUserNameAvailable = _userAccountService.IsUsernameAvailable(username);
            }
            catch (Exception ex)
            {
                const string errorMessage = "Error checking user name availability for {0}";
                var          message      = string.Format(errorMessage, username);
                _logger.Error(message, ex);

                userNameAvailability.HasError     = true;
                userNameAvailability.ErrorMessage = errorMessage;
            }

            return(userNameAvailability);
        }