示例#1
0
        /// <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));
        }
示例#2
0
 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
                                 } }));
     }
 }