/// <summary> /// Handle Add New User request /// </summary> /// <param name="userRegistrationInput"></param> /// <returns></returns> public async Task <UserRegistrationOutputDTO> AddUser(UserRegistrationInputDTO userRegistrationInput) { string password = userRegistrationInput.Password; //Check if user already exist bool isAlreadyExist = await this.accountRepository.UserExist(userRegistrationInput.EmailAddress); if (isAlreadyExist) { throw new ApplicationException("Email " + userRegistrationInput.EmailAddress + " already exist"); } byte[] passwordHash, passwordSalt; this.authService.CreatePasswordHash(password, out passwordHash, out passwordSalt); UserEntity user = this.mapper.Map <UserEntity>(userRegistrationInput); user.passwordSalt = passwordSalt; user.passwordHash = passwordHash; user.PasswordChanged = true; //Saved User with an ID UserEntity savedUser = await this.accountRepository.AddUser(user); return(this.mapper.Map <UserRegistrationOutputDTO>(savedUser)); }
public async Task <ActionResult <UserRegistrationOutputDTO> > AddNewUser([FromBody] UserRegistrationInputDTO userRegistrationInput) { if (!ModelState.IsValid) { return(StatusCode(400, Helper.FormatErrorResponse(ModelState))); } try { return(await accountService.AddUser(userRegistrationInput)); } catch (Exception ex) { return(BadRequest(new { message = new List <string> { ex.Message } })); } }