private static void Judger_OnGradeStatusChanged(object sender, JudgeGradingEvent args) { switch (args.Event) { case JudgeGradingEventType.EndRunTest: SendData(string.Format("{0}.{1}.{2} => [{3}, {4}, {5}ms]", args.UserName, args.ProblemName, args.TestCaseName, args.Status, args.Points, args.TimeExecuted)); break; case JudgeGradingEventType.Complete: SendData("Graded completely"); //CloseFrm(); break; case JudgeGradingEventType.CompileError: SendData("Compile error"); break; case JudgeGradingEventType.Compiling: SendData(string.Format("Compiling... using {0}", args.Status)); break; case JudgeGradingEventType.CompileSuccessfully: SendData("Compiled successfully"); break; case JudgeGradingEventType.SubmissionNotFound: SendData("Submission not found"); break; case JudgeGradingEventType.BeginGradingSubmission: SendData(string.Format("------> Grading... [user: '******', problem: '{1}']", args.UserName, args.ProblemName)); break; case JudgeGradingEventType.CompilerNotFound: SendData(string.Format("Compiler not found for {0}", args.Status)); break; } }
private void Judger_OnGradeStatusChanged(object sender, JudgeGradingEvent args) { switch (args.Event) { case JudgeGradingEventType.EndRunTest: string status = ""; switch (args.Status) { case "AC": status = "Đúng"; break; case "WA": status = "Sai"; break; case "TLE": status = "Chạy quá thời gian"; break; case "MLE": status = "Chạy quá bộ nhớ cho phép"; break; case "RTE": status = "Chạy sinh lỗi"; break; default: status = "Lỗi không xác định"; break; } SendData(string.Format("[{7}]\n{0}.{1}.{2} \u25BA [{3}, {4}, {5}ms, {6}KB]", args.UserName, args.ProblemName, args.TestCaseName, status, args.Points, args.TimeExecuted, args.MemoryUsed, currentCompiler), Brushes.Black); break; case JudgeGradingEventType.Complete: SendData("Chấm xong!", Brushes.Red, true); AllowClose = true; Dispatcher.Invoke(() => { judger.OnGradeStatusChanged -= Judger_OnGradeStatusChanged; btnStopGrading.Click -= btnStopGrading_Click; btnStopGrading.Click += btnCloseGrading_Click; DispatcherTimer.IsEnabled = false; tbTimeLeft.Text = "--:--:--"; gradingProcess.Value = 100; btnStopGrading.Content = "Đóng"; tbCurrentTime.Text = tbCurrentTime.Text.Replace("Đang chấm", "Chấm xong"); if (!IsButtonStopClicked) { this.Close(); } }); break; case JudgeGradingEventType.CompileError: SendData(string.Format("{0}.{1} \u25BA Dịch lỗi", args.UserName, args.ProblemName), Brushes.DarkRed); break; case JudgeGradingEventType.Compiling: SendData(string.Format("{0}.{1} \u25BA Đang biên dịch...", args.UserName, args.ProblemName, args.Status), Brushes.DarkOrange); break; case JudgeGradingEventType.CompileSuccessfully: SendData(string.Format("{0}.{1} \u25BA Biên dịch thành công", args.UserName, args.ProblemName), Brushes.Green); currentCompiler = args.Status; break; case JudgeGradingEventType.SubmissionNotFound: SendData(string.Format("{0}.{1} \u25BA Không tìm thấy bài nộp", args.UserName, args.ProblemName), Brushes.Brown); break; case JudgeGradingEventType.BeginGradingSubmission: SendData(string.Format("{0}.{1}", args.UserName, args.ProblemName), Brushes.DarkBlue, true); SendData(string.Format("{0}.{1} \u25BA Bắt đầu chấm...", args.UserName, args.ProblemName), Brushes.DarkBlue); break; case JudgeGradingEventType.NotFoundExecute: SendData(string.Format("{0}.{1} \u25BA Không tìm thấy file thực thi", args.UserName, args.ProblemName), Brushes.Brown); break; case JudgeGradingEventType.CompilerNotFound: //SendData(string.Format("Compiler not found for {0}", args.Status), Brushes.IndianRed); break; } }