public async Task <IActionResult> Register(RegisterUserRequestDTO registerUserRequestDTO) { RegisterUserValidator validator = new RegisterUserValidator(); var validationResult = validator.Validate(registerUserRequestDTO); if (!validationResult.IsValid) { _logger.LogInformation("Not valid input."); ValidatorError validatorError = new ValidatorError(); return(BadRequest(new { message = validatorError.GetErrorMessagesAsString(validationResult.Errors) })); } var user = await _userRepo.CreateUser(registerUserRequestDTO.User, registerUserRequestDTO.Password); if (user == null) { return(BadRequest(new { message = "User with given email already exists." })); } return(Ok(user)); }
public async Task <ActionResult <ReadUserDTO> > Register(RegisterUserRequestDTO model) { try { await _userService.Register(model, Request.Headers["origin"]); return(Ok(new { message = "Registration successful, please check your email for verification instructions" })); } catch (AppException ex) { return(BadRequest(new { message = ex.Message })); } }
public async Task Register(RegisterUserRequestDTO model, string origin) { var user = _userData.GetByEmail(model.Email); if (user != null) { await SendAlreadyRegisteredEmail(user.Email, origin); return; } var userWithSameUsername = _userData.GetByUsername(model.Username); if (userWithSameUsername != null) { throw new AppException("Username already taken, please use different username."); } var newUser = _mapper.Map <User>(model); //first registered user is an admin bool isFirstAccount = _userData.GetCount() == 0; if (isFirstAccount) { newUser.Roles.Add(new Role { RoleKey = RoleKey.admin }); } else { newUser.Roles.Add(new Role { RoleKey = RoleKey.superuser }); } newUser.CreatedAt = DateTime.UtcNow; newUser.VerificationToken = JwtToken.randomTokenString(); newUser.Password = BC.HashPassword(model.Password); _userData.Add(newUser); await SendVerificationEmail(newUser, origin); }
public async Task <IActionResult> Register([FromBody] RegisterUserRequestDTO request) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var user = new User { Email = request.Email, UserName = request.Email }; var result = await _userManager.CreateAsync(user, request.Password); if (result.Succeeded) { return(Ok()); } return(BadRequest(String.Join('\n', result.Errors.Select(item => item.Description)))); }