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); }
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)); }