public ActionResult Statistics(StatisticDetailsViewModel details) { var exam = _db.Exams.Find(details.ExamId); var responses = exam.Responses.ToList(); foreach (var response in responses) { foreach (var answer in response.Answers.ToArray()) { var multipleAnswer = answer as MultipleSelectionAnswer; if (multipleAnswer != null) { response.Answers.Remove(answer); response.Answers.Add(_db.MultipleSelectionAnswers .Include(a => a.Selections) .SingleOrDefault(e => e.QuestionId == answer.QuestionId && e.ResponseId == answer.ResponseId)); } } } exam.Responses = responses; var statistics = new StatisticsViewModel { ExamAnalyzer = new ExamAnalyzer(exam, details.StartDate, details.EndDate) }; return(View(statistics)); }
public ActionResult GlobalStatistics(StatisticDetailsViewModel details) { var exams = _db.Exams.Where(e => e.Active).ToList(); foreach (var exam in exams) { var responses = exam.Responses.ToList(); foreach (var response in responses) { foreach (var answer in response.Answers.ToArray()) { var multipleAnswer = answer as MultipleSelectionAnswer; if (multipleAnswer != null) { response.Answers.Remove(answer); response.Answers.Add(_db.MultipleSelectionAnswers .Include(a => a.Selections) .SingleOrDefault(e => e.QuestionId == answer.QuestionId && e.ResponseId == answer.ResponseId)); } } } exam.Responses = responses; } var model = new GlobalStatisticsViewModel(exams, details.StartDate, details.EndDate); return(View(model)); }
public ActionResult StatisticDetails([Bind(Include = "ExamID,StartDate,EndDate")] StatisticDetailsViewModel details) { if (details.EndDate == null && details.StartDate != null) { details.EndDate = DateTime.Today; if (details.EndDate >= details.StartDate) { ModelState["EndDate"].Errors.Clear(); } } if (ModelState.IsValid) { if (!details.ExamId.HasValue) { return(RedirectToAction("GlobalStatistics", "Statistics", details)); } return(RedirectToAction("Statistics", "Statistics", details)); } ViewBag.ExamID = new SelectList(_db.Exams, "ID", "Name", string.Empty); return(View(details)); }