Example #1
0
        public virtual ActionResult WHOQOL()
        {
            var model = new WHOQOLViewModel();

            model.SetQuestionnaire(_questionnairesRepository.GetByType(KeyType.WHOQOL));
            model.SelectedValues      = new List <int>();
            model.UnselectedQuestions = new List <int>();

            return(View(model));
        }
Example #2
0
        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));
            }
        }