Пример #1
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));
            }
        }
Пример #2
0
 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));
 }