Exemplo n.º 1
0
        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;
            }
        }
Exemplo n.º 2
0
        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;
            }
        }