Exemplo n.º 1
0
        private double CalculateScore(List <AnswerDbo> answersDbo, TestDbo testDbo)
        {
            var rightAnswersCount = answersDbo.Count(a =>
                                                     AnswersHelper.CheckAnswer(a.UserAnswer, a.RightAnswer));

            return((double)rightAnswersCount / testDbo.Questions.Count);
        }
Exemplo n.º 2
0
        public async Task <ActionResult> GetScorePerQuestionsAsync(Guid testId)
        {
            var answers = await ModelsContext.Results
                          .Include(r => r.Answers)
                          .ThenInclude(a => a.Question)
                          .Where(r => r.Test.Id == testId)
                          .SelectMany(r => r.Answers)
                          .ToListAsync();

            var questionScores = answers.GroupBy(a => a.Question.Question)
                                 .Select(g => new
            {
                Question = g.Key,
                Score    = (double)g.Count(a =>
                                           AnswersHelper.CheckAnswer(a.UserAnswer, a.RightAnswer)) / g.Count()
            })
                                 .ToList();

            return(Ok(questionScores));
        }