public ActionResult <List <Evaluation> > GetUnevaluatedStudents(int cid, int eid) { var dao = new EvaluationsDao(); return(dao.GetUnevaluatedStudents(cid, eid)); }
public ActionResult <bool> EvaluateStudents([FromBody] List <Evaluation> evaluations) { var dao = new EvaluationsDao(); Directory.CreateDirectory(STUDENT_ANS_SHEET_UPLOAD_PATH); foreach (var e in evaluations) { Console.WriteLine("-------------------------------------------------------"); Console.WriteLine($"Student Id {e.Student.Id}"); Console.WriteLine($"DateTime {e.DateTime?.ToString("yyyy-MM-dd")}"); var date = e.DateTime?.ToString("yyyy_MM_dd"); var fileName = $"AnswerKey_Student_{e.Student.Id}_{e.Examination.Course.CourseCode}_{date}.pdf"; var filePath = Path.Combine(STUDENT_ANS_SHEET_UPLOAD_PATH, fileName); var bytes = Convert.FromBase64String(e.AnswerSheet); System.IO.File.WriteAllBytes(filePath, bytes); Console.WriteLine("File Written"); var refSheetName = e.Examination.ReferenceAnswerSheet.Substring( e.Examination.ReferenceAnswerSheet.LastIndexOf("/") + 1); var refSheetPath = Path.Combine(REFERENCE_ANS_SHEET_UPLOAD_PATH, refSheetName); Console.WriteLine($"Ref Sheet Path = {refSheetPath}"); var studentPdf = new PdfFocus(); Console.WriteLine($"Opening Student Pdf..."); studentPdf.OpenPdf(filePath); var studentAnsText = studentPdf.ToText(); Console.WriteLine("Student pdf read successfully!"); studentPdf.ClosePdf(); Console.WriteLine("Closing student pdf"); var refPdf = new PdfFocus(); Console.WriteLine("Opening reference pdf"); refPdf.OpenPdf(refSheetPath); var refAnsText = refPdf.ToText(); Console.WriteLine("Reference pdf read successfully!"); refPdf.ClosePdf(); Console.WriteLine("Closing reference pdf"); paralleldots pd = new paralleldots("AliC73YnPPScR8dJJEMD8qxinhFTTUjFPmJGs5yknY0"); Console.WriteLine("Calculating score"); var similarity = pd.similarity(studentAnsText, refAnsText); var json = JsonValue.Parse(similarity); var score = double.Parse(json["normalized_score"].ToString()); Console.WriteLine($"Score = {score}"); var percent = score / 5.0; Console.WriteLine($"Percentage = {percent}"); e.MarksObtained = (int?)(e.Examination.TotalMarks * percent); e.AnswerSheet = $"/api/examinations/student-ans-sheet/get/{fileName}"; Console.WriteLine("Writing result to database"); dao.CreateEvaluation(e); Console.WriteLine("Written Successfully!"); } return(true); }
public ActionResult <List <Evaluation> > GetClassEvaluationDetail(int cid, int eid) { var dao = new EvaluationsDao(); return(dao.GetClassEvaluationDetail(cid, eid)); }