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); }
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); }
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.")); }
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); }