public static SubmissionResult FromSolution(ExerciseSolutionByGrader solution, ExerciseSlide slide) { var automaticChecking = solution.Submission?.AutomaticChecking; if (automaticChecking == null || automaticChecking.Status != AutomaticExerciseCheckingStatus.Done) { return new SubmissionResult { Status = "IN_PROCESS" } } ; var score = (double)automaticChecking.Score / slide.Scoring.PassedTestsScore; if (score > 1) { score = 1; } return(new SubmissionResult { Status = "READY", Result = score, CompilationLog = automaticChecking.CompilationError?.Text ?? "", ExecutionLog = automaticChecking.Output?.Text ?? "", }); }
public async Task <ExerciseSolutionByGrader> AddSolutionFromGraderClient(Guid clientId, int submissionId, string clientUserId) { var exerciseSolutionByGrader = new ExerciseSolutionByGrader { ClientId = clientId, SubmissionId = submissionId, ClientUserId = clientUserId, }; db.ExerciseSolutionsByGrader.Add(exerciseSolutionByGrader); await db.SaveChangesAsync(); return(exerciseSolutionByGrader); }
public async Task <ExerciseSolutionByGrader> AddSolutionFromGraderClient(Guid clientId, int submissionId, string clientUserId) { var exerciseSolutionByGrader = new ExerciseSolutionByGrader { ClientId = clientId, SubmissionId = submissionId, ClientUserId = clientUserId, }; db.ExerciseSolutionsByGrader.Add(exerciseSolutionByGrader); try { await db.SaveChangesAsync(); } catch (DbEntityValidationException e) { var errors = string.Join(", ", e.EntityValidationErrors.SelectMany(err => err.ValidationErrors.Select(error => error.ErrorMessage))); throw new Exception(errors); } return(exerciseSolutionByGrader); }
public static SubmissionResult FromSolution(ExerciseSolutionByGrader solution) { var automaticChecking = solution.Submission?.AutomaticChecking; if (automaticChecking == null || automaticChecking.Status != AutomaticExerciseCheckingStatus.Done) { return new SubmissionResult { Status = "IN_PROCESS" } } ; var score = automaticChecking.IsRightAnswer ? 1 : 0; return(new SubmissionResult { Status = "READY", Result = score, CompilationLog = automaticChecking.CompilationError?.Text ?? "", ExecutionLog = automaticChecking.Output?.Text ?? "", }); }