From 680a87f4b7a55005ed3ef51894525bee7bf6f6ba Mon Sep 17 00:00:00 2001 From: Jan Zubrycki Date: Fri, 19 Jun 2020 16:33:54 +0200 Subject: [PATCH] Counting points --- WebApplication5/Templates/CheckTemplate.cs | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/WebApplication5/Templates/CheckTemplate.cs b/WebApplication5/Templates/CheckTemplate.cs index 509267c..541d999 100644 --- a/WebApplication5/Templates/CheckTemplate.cs +++ b/WebApplication5/Templates/CheckTemplate.cs @@ -26,22 +26,26 @@ namespace WebApplication5.Templates foreach (string fileName in fileEntries.Where(f => f.EndsWith(".pdf"))) { var answers = ProcessFile(fileName); - var questions = _db.Questions.Include("Answers").Where(q => answers.Select(a => a.QuestionId).Contains(q.Id)).ToList(); + var questionsIds = answers.Select(a => a.QuestionId).ToList(); + var questions = _db.Questions.Include("Answers").Where(q => questionsIds.Contains(q.Id)).ToList(); var points = 0; var maxPoints = questions.Sum(q => q.DefaultScore); foreach (var q in questions) { - var ta = answers.First(a => a.QuestionId == q.Id).Answers.Where(a => a.Checked).Select(a => a.AnswerNumber); - var minId = q.Answers.Min(a => a.Id); - var correctRelativeAnswers = q.Answers.Where(a => a.IsCorrect).Select(a => a.Id - minId + 1); - - points += q.DefaultScore; + var ta = answers.First(a => a.QuestionId == q.Id).Answers.Where(a => a.Checked).Select(a => a.AnswerNumber).ToList(); + var correctRelativeAnswers = new List(); + for (int i = 0; i < q.Answers.Count; i++) + { + if (q.Answers.ElementAt(i).IsCorrect) + correctRelativeAnswers.Add(i); + } + if (ta.SequenceEqual(correctRelativeAnswers)) + points += q.DefaultScore; } } } - private List ProcessFile(string fileName) { fileName = PDFtoIMG(fileName); @@ -147,7 +151,7 @@ namespace WebApplication5.Templates if ((pixels - nonZero) / pixels > 0.5) a.Checked = true; - image.Save(@"C:\Users\Janek\Desktop\Tests\scans\" + rightcolumn + i + j + ".jpg"); + qA.Answers.Add(a); } result.Add(qA);