Example #1
0
        public ActionResult <UserReadDto> CreateUser(UserCreateDto userCreateDto)
        {
            try
            {
                var userModel = _mapper.Map <User>(userCreateDto);
                var user      = _userService.GetUserByEmail(userCreateDto.Email);

                if (user != null)
                {
                    return(Conflict());
                }

                _authService.CreateUser(userModel);
                var tmpUser = _userService.GetUserByEmail(userCreateDto.Email);
                var vModel  = _authService.AddVerificationInfo(tmpUser, Request.Headers["origin"]);

                var userReadDto = _mapper.Map <UserReadDto>(tmpUser);

                _emailService.SendVerificationEmail(vModel, tmpUser, Request.Headers["origin"]);

                return(CreatedAtRoute(nameof(UsersController.GetUserById), new { Id = userReadDto.Id }, userReadDto));
            }
            catch (Exception e)
            {
                return(StatusCode(500, e.Message));
            }
        }