コード例 #1
0
        public BaseResponse <GetPasswordResetResponse> GetPasswordReset(GetPasswordResetRequest request)
        {
            BaseResponse <GetPasswordResetResponse> response = new BaseResponse <GetPasswordResetResponse>();

            var passwordReset = this.PasswordResetRepository.GetPasswordReset(request.Token);

            if (this.IsPasswordResetEligibleForUse(passwordReset))
            {
                var user = this.UserRepository.GetUser(passwordReset.UserKey);

                if (this.IsUserEligibleForRequestPasswordReset(user))
                {
                    response.StatusCode  = HttpStatusCode.OK;
                    response.SuccessBody = PasswordResetMapper.Map(passwordReset, user);
                    response.IsSuccess   = true;
                    return(response);
                }
            }

            response.StatusCode = HttpStatusCode.NotFound;

            return(response);
        }
コード例 #2
0
        public BaseResponse <GetPasswordResetResponse> CreatePasswordReset(CreatePasswordResetRequest request)
        {
            BaseResponse <GetPasswordResetResponse> response = new BaseResponse <GetPasswordResetResponse>();

            var user = this.UserRepository.GetUser(request.Email);

            if (this.IsUserEligibleForRequestPasswordReset(user))
            {
                this.PasswordResetRepository.CancelActivesPasswordResets(user.UserKey);

                var passwordReset = PasswordReset.New(user.UserKey, this.ConfigurationUtility.PasswordResetExpiresInHours);
                this.PasswordResetRepository.CreatePasswordReset(passwordReset);

                response.StatusCode  = HttpStatusCode.Created;
                response.SuccessBody = PasswordResetMapper.Map(passwordReset, user);
                response.IsSuccess   = true;
            }
            else
            {
                response.StatusCode = HttpStatusCode.NotFound;
            }

            return(response);
        }