Esempio n. 1
0
        private ICollection <ErrorViewModel> ValidateRegistrationModel(RegistrationWriteModel registrationModel)
        {
            var errors = new List <ErrorViewModel>();

            ValidateUsername(registrationModel.Username, errors);
            ValidatePassword(registrationModel.Password, errors);
            ValidateMailAddress(registrationModel.MailAddress, errors);

            return(errors);
        }
Esempio n. 2
0
        public async Task <ICollection <ErrorViewModel> > CheckSignUpDataBeforeRegisteringAsync(
            RegistrationWriteModel signUpModel)
        {
            var errors = ValidateRegistrationModel(signUpModel);

            if (!errors.Any())
            {
                await CheckUsernameBeforeSignUpAsync(signUpModel.Username, errors);
                await CheckMailAddressBeforeSignUpAsync(signUpModel.MailAddress, errors);
            }

            return(errors);
        }
Esempio n. 3
0
        public async Task <ActionResult <UserViewModel> > SignUpAsync([FromBody] RegistrationWriteModel signUpData)
        {
            try
            {
                var response = await _userService.SignUpAsync(signUpData);

                return(response.StatusCode == StatusCodes.Status200OK
                    ? Ok(response.Result)
                    : StatusCode(response.StatusCode, response.Errors));
            }
            catch (Exception e)
            {
                _logger.LogError(e, string.Empty);

                return(StatusCode(StatusCodes.Status500InternalServerError,
                                  ErrorViewModel.Factory.NewErrorFromException(e)));
            }
        }
Esempio n. 4
0
        public async Task <RequestResponseModel <UserViewModel> > SignUpAsync(RegistrationWriteModel signUpData)
        {
            var errors = await _userValidator.CheckSignUpDataBeforeRegisteringAsync(signUpData);

            if (errors.Any())
            {
                return(new RequestResponseModel <UserViewModel>(StatusCodes.Status400BadRequest,
                                                                errors,
                                                                null));
            }

            var passwordHash = _passwordHasher.EncodePassword(signUpData.Password);
            var role         = await _userValidator.GetUserRoleBeforeRegisterAsync();

            var registeredUser = await _userRepository.SignUpAsync(new UserEntity
            {
                MailAddress  = signUpData.MailAddress,
                Username     = signUpData.Username,
                PasswordHash = passwordHash,
                Role         = role
            });

            if (registeredUser == null)
            {
                return(new RequestResponseModel <UserViewModel>(StatusCodes.Status400BadRequest,
                                                                new List <ErrorViewModel>
                {
                    ErrorViewModel.Factory.NewErrorFromMessage(_localizer["UserCreationErrorMessage"]
                                                               .Value)
                },
                                                                null));
            }

            await _userRepository.SaveChangesAsync();

            var result = (UserViewModel)registeredUser;

            return(new RequestResponseModel <UserViewModel>(StatusCodes.Status200OK,
                                                            Enumerable.Empty <ErrorViewModel>(),
                                                            result));
        }