Пример #1
0
        public async Task <IActionResult> ActuallyReview(string runningQuizID)
        {
            AnswerKeyVM viewModel;

            try
            {
                viewModel = await AgonManager.GetAnswerKeyVMAsync(runningQuizID);
            }
            catch (MongoException mex)
            {
                HttpContext.Session.SetString("error", mex.Message);
                return(RedirectToAction("Error", "Home"));
            }
            var submittedAnswers = viewModel.Songs
                                   .SelectMany(o => o.Questions.SelectMany(q => q.SubmittedAnswers))
                                   .ToList();

            var correctAnswerIndices = new List <int>();

            foreach (var key in Request.Form.Keys)
            {
                if (key.StartsWith("answer_"))
                {
                    var index = int.Parse(key.Split('_')[1]);
                    correctAnswerIndices.Add(index);
                }
            }

            var namesAnsAnswers = submittedAnswers.GroupBy(o => o.SubmitterName);
            var results         = new Dictionary <string, int>();

            foreach (var group in namesAnsAnswers)
            {
                var name = group.Key;
                results.Add(name, 0);
                foreach (var item in group)
                {
                    var index = submittedAnswers.IndexOf(item);
                    if (correctAnswerIndices.Contains(index))
                    {
                        results[name] = results[name] + 1;
                    }
                }
            }
            //Remove stuff from DB - maybe store highscore typ
            return(View(results.OrderByDescending(x => x.Value).ToDictionary(x => x.Key, x => x.Value)));
        }
Пример #2
0
        public async Task <IActionResult> Review(string quizID)
        {
            AnswerKeyVM viewModel = await AgonManager.GetAnswerKeyVMAsync(quizID);

            return(View(viewModel));
        }