コード例 #1
0
        private SubmitRunResult Run(Task task, string input, string runString)
        {
            var runService    = new RunService(_runnerPath, _workingDirectory);
            var configuration = new Configuration(runString, _workingDirectory, task.TimeLimitMilliseconds, task.MemoryLimitBytes);

            configuration.InputFile  = input;
            configuration.OutputFile = "output.txt"; //TODO

            var runResult = runService.Run(configuration);

            var result = new SubmitRunResult
            {
                Description              = runResult.Description,
                Output                   = runResult.Output,
                PeakMemoryBytes          = runResult.PeakMemoryBytes,
                RunStatus                = runResult.RunStatus,
                TextStatus               = runResult.TextStatus,
                TimeConsumedMilliseconds = runResult.TimeConsumedMilliseconds,
                TimePassedMilliseconds   = runResult.TimePassedMilliseconds
            };

            if (runResult.RunStatus == RunStatus.Success)
            {
                var checkAnswerResult = CheckAnswer(configuration);
                result.CheckMessage = checkAnswerResult.Message;
                result.CheckStatus  = checkAnswerResult.CheckStatus;
            }

            return(result);
        }
コード例 #2
0
        private CheckResult CheckAnswer(Configuration configuration)
        {
            var    checker        = new Checker.Checker();
            string answerFileName = configuration.InputFile + ".a";

            return(checker.Check(_workingDirectory, configuration.InputFile, configuration.OutputFile, answerFileName));
        }
コード例 #3
0
        private CheckResult CheckAnswer(Configuration configuration)
        {
            var checker        = new Checker.Checker();
            var answerFileName = configuration.InputFile + ".a";
            var checkResult    = checker.Check(_workingDirectory, configuration.InputFile, configuration.OutputFile,
                                               answerFileName);

            this.logger.Info(
                $"Check result: {configuration.InputFile}, {checkResult.CheckStatus}, {checkResult.Message}");

            return(checkResult);
        }