private static QuestionViewModel GoToTheNextQuestion(PromptAnswerViewModel promptAnswerViewModel, List <Question> questions, Questionnaire questionnaire) { var nextQuestionViewModel = new QuestionViewModel(questions, promptAnswerViewModel.CurrentIndex + 1); return(nextQuestionViewModel); }
private QuestionViewModel CreateGenericQuestionErrorPrompt(PromptAnswerViewModel promptAnswerViewModel, List <Question> questions, AmendmentOutcome outcome, Amendment amendment, Question thisQuestion) { var errorsPromptViewModel = new QuestionViewModel(questions, promptAnswerViewModel.CurrentIndex, outcome.ValidationErrors) { PupilDetails = new PupilViewModel(amendment.Pupil), ShowConditional = thisQuestion.Answer.IsConditional }; string actualMessage = string.Empty; foreach (var errorMessage in outcome.ValidationErrors) { foreach (var promptError in errorMessage.Value) { ViewData.ModelState.AddModelError(errorMessage.Key, promptError); actualMessage = promptError; } } if (!string.IsNullOrEmpty(actualMessage)) { ViewData["errorMessage"] = actualMessage; } return(errorsPromptViewModel); }
private QuestionViewModel CreateUploadMoreViewModel(PromptAnswerViewModel promptAnswerViewModel, List <Question> questions, Questionnaire questionnaire) { var uploadEvidenceViewModel = new QuestionViewModel(questions, promptAnswerViewModel.CurrentIndex); ViewBag.Upload = GetFiles(); ViewBag.HasAdded = !Request.Form.ContainsKey("skipValidation"); return(uploadEvidenceViewModel); }
private static QuestionViewModel GoToTheNextQuestion(PromptAnswerViewModel promptAnswerViewModel, List <Question> questions, Amendment amendment) { var nextQuestionViewModel = new QuestionViewModel(questions, promptAnswerViewModel.CurrentIndex + 1) { PupilDetails = new PupilViewModel(amendment.Pupil) }; return(nextQuestionViewModel); }
internal QuestionViewModel CreateValidationErrorUploadModel(PromptAnswerViewModel promptAnswerViewModel, FileValidationError error, List <Question> questions) { ViewData.ModelState.AddModelError(promptAnswerViewModel.QuestionId, error.Title); ViewData["errorMessage"] = error.Detail; var errorUploadViewModel = new QuestionViewModel(questions, promptAnswerViewModel.CurrentIndex); ViewBag.Upload = GetFiles(); return(errorUploadViewModel); }
private static QuestionViewModel CreateConditionalPrompt(PromptAnswerViewModel promptAnswerViewModel, List <Question> questions, Amendment amendment) { var conditionalViewModel = new QuestionViewModel(questions, promptAnswerViewModel.CurrentIndex) { PupilDetails = new PupilViewModel(amendment.Pupil), ShowConditional = true }; return(conditionalViewModel); }
private QuestionViewModel CreateErrorUploadViewModel(PromptAnswerViewModel promptAnswerViewModel, Question thisQuestion, List <Question> questions) { ViewData.ModelState.AddModelError(promptAnswerViewModel.QuestionId, thisQuestion.Validator.NullErrorMessage); ViewData["errorMessage"] = thisQuestion.Validator.NullErrorMessage; var errorUploadViewModel = new QuestionViewModel(questions, promptAnswerViewModel.CurrentIndex); ViewBag.Upload = GetFiles(); return(errorUploadViewModel); }
private QuestionViewModel CreateUploadMoreViewModel(PromptAnswerViewModel promptAnswerViewModel, List <Question> questions, Amendment amendment) { var uploadEvidenceViewModel = new QuestionViewModel(questions, promptAnswerViewModel.CurrentIndex) { PupilDetails = new PupilViewModel(amendment.Pupil), ShowConditional = true }; ViewBag.Upload = GetFiles(); ViewBag.HasAdded = !Request.Form.ContainsKey("skipValidation"); return(uploadEvidenceViewModel); }
internal QuestionViewModel CreateValidationErrorUploadModel(PromptAnswerViewModel promptAnswerViewModel, FileValidationError error, List <Question> questions, Amendment amendment) { ViewData.ModelState.AddModelError(promptAnswerViewModel.QuestionId, error.Title); ViewData["errorMessage"] = error.Detail; var errorUploadViewModel = new QuestionViewModel(questions, promptAnswerViewModel.CurrentIndex) { PupilDetails = new PupilViewModel(amendment.Pupil), ShowConditional = true }; ViewBag.Upload = GetFiles(); return(errorUploadViewModel); }
private QuestionViewModel CreateErrorUploadViewModel(PromptAnswerViewModel promptAnswerViewModel, Question thisQuestion, List <Question> questions, Amendment amendment) { ViewData.ModelState.AddModelError(promptAnswerViewModel.QuestionId, thisQuestion.Validator.NullErrorMessage); ViewData["errorMessage"] = thisQuestion.Validator.NullErrorMessage; var errorUploadViewModel = new QuestionViewModel(questions, promptAnswerViewModel.CurrentIndex) { PupilDetails = new PupilViewModel(amendment.Pupil), ShowConditional = true }; ViewBag.Upload = GetFiles(); return(errorUploadViewModel); }
private QuestionViewModel CreateNullableInvalidDateErrorPrompt(PromptAnswerViewModel promptAnswerViewModel, Question thisQuestion, List <Question> questions) { ViewData.ModelState.AddModelError(promptAnswerViewModel.QuestionId, thisQuestion.Validator.NullErrorMessage); ViewData["errorMessage"] = thisQuestion.Validator.NullErrorMessage; List <string> errorCollection = new List <string> { thisQuestion.Validator.NullErrorMessage }; var validationErrors = new Dictionary <string, ICollection <string> > { { promptAnswerViewModel.QuestionId, errorCollection } }; var errorsPromptViewModel = new QuestionViewModel(questions, promptAnswerViewModel.CurrentIndex, validationErrors) { ShowConditional = thisQuestion.Answer.IsConditional }; return(errorsPromptViewModel); }
private QuestionViewModel CreateNullableDateErrorPrompt(PromptAnswerViewModel promptAnswerViewModel, Question thisQuestion, List <Question> questions, Amendment amendment) { ViewData.ModelState.AddModelError(promptAnswerViewModel.QuestionId, thisQuestion.Answer.Label); ViewData["errorMessage1"] = thisQuestion.Answer.Label; ViewData["errorType"] = "NoneSelected"; List <string> errorCollection = new List <string> { thisQuestion.Answer.Label }; var validationErrors = new Dictionary <string, ICollection <string> > { { promptAnswerViewModel.QuestionId, errorCollection } }; var errorsPromptViewModel = new QuestionViewModel(questions, promptAnswerViewModel.CurrentIndex, validationErrors) { PupilDetails = new PupilViewModel(amendment.Pupil), ShowConditional = thisQuestion.Answer.IsConditional }; return(errorsPromptViewModel); }
public IActionResult Prompt(PromptAnswerViewModel promptAnswerViewModel, bool Continue) { var questions = GetQuestions(); var thisQuestion = FindQuestion(questions, promptAnswerViewModel.QuestionId); var promptAnswer = promptAnswerViewModel.GetAnswerAsString(Request.Form); SaveAnswer(new UserAnswer { QuestionId = promptAnswerViewModel.QuestionId, Value = promptAnswer }); var amendment = GetAmendment(); if (thisQuestion.QuestionType == QuestionType.Evidence) { if (Request.Form.Files.Count > 0) { var result = UploadEvidence(amendment); if (result != null) { var errorUploadViewModel = CreateValidationErrorUploadModel(promptAnswerViewModel, result, questions, amendment); return(View("Prompt", errorUploadViewModel)); } } else if (!Continue && Request.Form.ContainsKey("remove")) { var fileId = Request.Form["remove"]; var file = GetFiles().Files.Single(x => x.Id == fileId); _evidenceService.DeleteEvidenceFile(Guid.Parse(file.Id)); RemoveFile(fileId); var uploadEvidenceViewModel = CreateUploadMoreViewModel(promptAnswerViewModel, questions, amendment); ViewBag.HasAdded = !Request.Form.ContainsKey("skipValidation"); return(View("Prompt", uploadEvidenceViewModel)); } else if (!Continue && !Request.Form.ContainsKey("skipValidation")) { var errorUploadViewModel = CreateErrorUploadViewModel(promptAnswerViewModel, thisQuestion, questions, amendment); return(View("Prompt", errorUploadViewModel)); } if (!Continue) { var uploadEvidenceViewModel = CreateUploadMoreViewModel(promptAnswerViewModel, questions, amendment); ViewBag.HasAdded = !Request.Form.ContainsKey("skipValidation"); return(View("Prompt", uploadEvidenceViewModel)); } SaveAnswer(new UserAnswer { QuestionId = promptAnswerViewModel.QuestionId, Value = amendment.EvidenceFolderName }); } amendment = GetAmendment(); if (ConditionalQuestion(thisQuestion, promptAnswer)) { var conditionalViewModel = CreateConditionalPrompt(promptAnswerViewModel, questions, amendment); return(View("Prompt", conditionalViewModel)); } var outcome = _amendmentService.CreateAmendment(amendment); if (outcome.FurtherQuestions != null) { SaveQuestions(outcome.FurtherQuestions); questions = GetQuestions(); } if (NotNullableDateIsSelected(thisQuestion)) { var errorsPromptViewModel = CreateNullableDateErrorPrompt(promptAnswerViewModel, thisQuestion, questions, amendment); return(View("Prompt", errorsPromptViewModel)); } if (NullableDateQuestionHasErrors(thisQuestion)) { var errorsPromptViewModel = CreateNullableInvalidDateErrorPrompt(promptAnswerViewModel, thisQuestion, questions, amendment); return(View("Prompt", errorsPromptViewModel)); } if (GenericQuestionHasErrors(outcome)) { var errorsPromptViewModel = CreateGenericQuestionErrorPrompt(promptAnswerViewModel, questions, outcome, amendment, thisQuestion); return(View("Prompt", errorsPromptViewModel)); } var nextQuestionViewModel = GoToTheNextQuestion(promptAnswerViewModel, questions, amendment); if (nextQuestionViewModel.HasMoreQuestions) { return(View("Prompt", nextQuestionViewModel)); } return(RedirectToAction("Confirm", "Amendments")); }