Пример #1
0
        public GenericAjaxResponse <bool> ResetPassword(string username, List <UserSecurityOption> securityQuestionAnswers)
        {
            GenericAjaxResponse <bool> response       = new GenericAjaxResponse <bool>();
            RestRequest restRequest                   = new RestRequest("api/Userinfo/ValidateQuestions", Method.POST);
            UpdateSecurityQuestionsRequest apiRequest = new UpdateSecurityQuestionsRequest()
            {
                Username          = username,
                SecurityQuestions = securityQuestionAnswers
            };

            restRequest.AddJsonBody(apiRequest);
            IRestResponse <GenericResponse <bool> > restResponse = _restClient.Execute <GenericResponse <bool> >(restRequest);

            if (restResponse.StatusCode == System.Net.HttpStatusCode.OK)
            {
                if (restResponse.Data != null)
                {
                    response.Success = restResponse.Data.Success;
                    response.Data    = restResponse.Data.Data;
                    response.Errors  = restResponse.Data.Errors;
                }
                else
                {
                    response.Success = false;
                    response.Errors.Add("Could not reset password. Please try again.");
                }
            }
            return(response);
        }
Пример #2
0
        public UpdateSecurityQuestionsResponse UpdateSecurityQuestions(UpdateSecurityQuestionsRequest request)
        {
            UpdateSecurityQuestionsResponse response = new UpdateSecurityQuestionsResponse();

            User user = _userRepository.Get(request.Id);

            if (user == null)
            {
                response.HasError = true;
                return(response);
            }

            // checking dublicates
            var securityQuestions = request.UsersUpdateSecurityQuestionsModel.SecurityQuestions.ToArray();

            for (var i = 0; i < securityQuestions.Length - 1; i++)
            {
                for (var j = i + 1; j < securityQuestions.Length; j++)
                {
                    if (securityQuestions[i].Question == securityQuestions[j].Question)
                    {
                        throw new ArgumentException("The question '{0}' already exists.".FormatWith(securityQuestions[j].Question));
                    }
                }
            }

            foreach (var question in request.UsersUpdateSecurityQuestionsModel.SecurityQuestions.Where(q => q.Answer.IsNotNullOrEmpty()))
            {
                user.UpdateQuestion(question.Id, question.Question, question.Answer);
            }

            _unitOfWork.Commit();

            return(response);
        }
Пример #3
0
        public ActionResult ChangeSecurityQuestions(UsersUpdateSecurityQuestionsModel model)
        {
            var request = new UpdateSecurityQuestionsRequest
            {
                Id = User.Id,
                UsersUpdateSecurityQuestionsModel = model,
                CustomerId = Customer.CustomerId
            };

            UpdateSecurityQuestionsResponse response = _userService.UpdateSecurityQuestions(request);

            if (response.HasError)
            {
                return(HttpNotFound());
            }

            return(RedirectToAction("ChangeSecurityQuestions").AndAlert(AlertType.Success, "Success.", "Your security questions were updated successfully."));
        }
Пример #4
0
        public GenericAjaxResponse <bool> SetSecurityQuestionsForUser(string userName, List <UserSecurityOption> selectedQuestions)
        {
            GenericAjaxResponse <bool> response       = new GenericAjaxResponse <bool>();
            RestRequest restRequest                   = new RestRequest("api/Userinfo/UpdateSecurityQuestions", Method.POST);
            UpdateSecurityQuestionsRequest apiRequest = new UpdateSecurityQuestionsRequest()
            {
                Username          = userName,
                SecurityQuestions = selectedQuestions
            };

            restRequest.AddJsonBody(apiRequest);
            IRestResponse <GenericResponse <bool> > restResponse = _restClient.Execute <GenericResponse <bool> >(restRequest);

            if (restResponse.StatusCode == System.Net.HttpStatusCode.OK)
            {
                response.Success = restResponse.Data.Success;
                response.Data    = restResponse.Data.Data;
                response.Errors  = restResponse.Data.Errors;
            }
            return(response);
        }