Ejemplo n.º 1
0
        public async Task <ActionResult <UserReadDTO> > CreateUser(UserCreateDTO userCreateDTO)
        {
            try
            {
                var hashedPassword = BCrypt.Net.BCrypt.HashPassword(userCreateDTO.password, 10);
                userCreateDTO.password = hashedPassword;
                var userModel = _mapper.Map <User>(userCreateDTO);
                try
                {
                    await _repository.CreateUser(userModel);
                }
                catch (Exception e)
                {
                    if ("Email alredy exists!".Equals(e.Message))
                    {
                        return(BadRequest(new { error = "Email alredy exists!" }));
                    }
                    throw e;
                }
                await _repository.SaveChanges();

                var userReadDTO = _mapper.Map <UserReadDTO>(userModel);
                return(CreatedAtRoute(nameof(CreateUser), userReadDTO));
            }
            catch (Exception)
            {
                return(new StatusCodeResult(StatusCodes.Status500InternalServerError));
            }
        }