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