Ejemplo n.º 1
0
        public void GradeExam(string studentName, string courseName, int nth)
        {
            var examAnswer = examAnswerManager.GetAnswer(studentName, courseName, nth);
            var testResult = testResultManager.AddTestResult(examAnswer);
            int correct    = 0;
            int total      = 0;

            foreach (var question in examAnswer.Exam.Questions)
            {
                var studentAnswer = examAnswer.ExamQuestionAnswers.FirstOrDefault(eqa =>
                                                                                  eqa.QuestionID == question.QuestionID);
                var isCorrect = studentAnswer.AnswerAlternativeID ==
                                question.AnswerAlternatives.FirstOrDefault(a => a.IsCorrect)?.AnswerAlternativeID;
                testResultManager.AddAnswer(testResult, studentAnswer.AnswerAlternative, isCorrect);
                if (isCorrect)
                {
                    correct++;
                }
                total++;
            }
            testResultManager.SetTotalScore(testResult, (decimal)correct / total);
        }