public virtual ActionResult WHOQOL(WHOQOLViewModel model) { if (model.Questions.All(x => x.AnswerId > 0)) { var results = (List <Result>)Session[_resultsSessionKey]; if (results == null) { return(RedirectToAction(MVC.Application.Survey.IntervieweeInfo())); } results.RemoveAll(x => x.QuestionnaireId == model.QuestionnaireId); foreach (var question in model.Questions) { results.Add(new Result() { QuestionnaireId = model.QuestionnaireId, QuestionId = question.QuestionId, AnswerId = question.AnswerId }); } var interviewee = (Interviewee)Session[_intervieweeSessionKey]; _intervieweesRepository.Create(interviewee); _resultsRepository.CreateMany(results, interviewee.IntervieweeId); _scoresRepository.Create(interviewee.IntervieweeId); return(RedirectToAction(MVC.Application.Survey.ThankYou())); } else { if (model.Questions.Any(x => x.AnswerId == 0)) { ViewBag.WHOQOLModelError = true; } var selectedAnswers = model.Questions.Where(x => x.AnswerId > 0).Select(x => x.AnswerId).ToList(); var unselectedQuestions = model.Questions.Where(x => x.AnswerId == 0).Select(x => x.QuestionId).ToList(); model.SetQuestionnaire(_questionnairesRepository.GetByType(KeyType.WHOQOL)); model.SelectedValues = selectedAnswers; model.UnselectedQuestions = unselectedQuestions; return(View(model)); } }
public IActionResult AddScore(ScoresVM model) { if (ModelState.IsValid) { var testOrExam = _testsAndExamsRepository.FindById(model.TestOrExamId); if (model.Score > testOrExam.Total) { ModelState.AddModelError("", "The value of the trainee's score cannot be higher than the total score"); return(View(model)); } var score = _mapper.Map <Scores>(model); var isSuccess = _scoresRepository.Create(score); if (!isSuccess) { return(View("Error", "Home")); } return(RedirectToAction("ListTraineesForTest", new { testOrExamId = score.TestOrExamId })); } ModelState.AddModelError("", "FIll all the fields properly"); return(View(model)); }