Пример #1
0
        public async Task <ActionResult <IResponseObject> > PostUser(UserRequestDTO userDTO)
        {
            if (await _userRepository.GetByEmail(userDTO.Email) != null)
            {
                return(UserCreationConflict(EmailInUseErrorDetail));
            }
            if (await _userRepository.GetByUsername(userDTO.Username) != null)
            {
                return(UserCreationConflict(UsernameTakenErrorDetail));
            }
            User user = _mapper.Map <User>(userDTO);

            user.Email        = user.Email;
            user.Username     = user.Username;
            user.PasswordHash = _passwordHasher.HashPassword(userDTO.Password);
            user.Role         = UserRole.User;
            user.Verified     = false;
            await _userRepository.Create(user);

            string siteUrl = string.IsNullOrEmpty(userDTO.SiteUrlOverride) ?
                             $"{HttpContext.Request.Scheme}{Uri.SchemeDelimiter}{HttpContext.Request.Host}" : userDTO.SiteUrlOverride;
            await _verificationTokenRepository.CreateDefaultAndEmail(user.Email, user.Username, siteUrl);

            return(CreatedAtAction("GetUser", new { id = user.Id }, _mapper.Map <UserResponseDTO>(user)));
        }
Пример #2
0
        public async Task <ActionResult <IResponseObject> > PostVerificationToken(VerificationTokenRequestDTO requestDTO)
        {
            bool useEmail = !string.IsNullOrEmpty(requestDTO.Email);
            User user     = useEmail ? await _userRepository.GetByEmail(requestDTO.Email.ToLower()) :
                            await _userRepository.GetByUsername(requestDTO.Username.ToLower());

            if (user == null)
            {
                string          errorDetail   = useEmail ? BadRequestEmailErrorDetail : BadRequestUsernameErrorDetail;
                IResponseObject errorResponse = _responseObjectFactory
                                                .CreateErrorResponseObject(HttpStatusCode.BadRequest, BadRequestErrorTitle, errorDetail);
                return(BadRequest(errorResponse));
            }
            string siteUrl = string.IsNullOrEmpty(requestDTO.SiteUrlOverride) ?
                             $"{HttpContext.Request.Scheme}{Uri.SchemeDelimiter}{HttpContext.Request.Host}" : requestDTO.SiteUrlOverride;
            await _verificationTokenRepository.CreateDefaultAndEmail(user.Email, user.Username, siteUrl);

            return(NoContent());
        }