public BaseResponse <GetPasswordResetResponse> GetPasswordReset(GetPasswordResetRequest request)
        {
            BaseResponse <GetPasswordResetResponse> response = new BaseResponse <GetPasswordResetResponse>();

            IRestRequest restRequest = new RestRequest("password-resets/{token}", Method.GET);

            restRequest.AddUrlSegment("token", request.Token);
            restRequest.RequestFormat = DataFormat.Json;

            IRestResponse restResponse = this.RestClient.Execute(restRequest);

            return(this.HandleResponse <GetPasswordResetResponse>(restResponse));
        }
        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);
        }