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