public void EventLoop() { while (events.Count > 0) { LoadTests loader = new LoadTests(); List <Test> tests = new List <Test>(); List <Test> tests1 = new List <Test>(); tests = loader.Get("B:\\tests\\adunare", "adunare"); tests1 = loader.Get("B:\\tests\\ciurul", "ciurul"); GCC gcc = new GCC(@"C:\MinGW\bin\g++.exe"); CompilerFactory.RegisterCompiler("C++", gcc); CompilerFactory.RegisterCompiler("C++11", gcc); CompilerFactory.RegisterCompiler("C+11", gcc); CompilerFactory.RegisterCompiler("C++14", gcc); CompilerFactory.RegisterCompiler("C", gcc); tests.AddRange(tests1); Repository repository = new Repository(); repository.Tests = tests; Judge judge = new Judge("B:\\evaluare", "C++", repository); SubmissionJson submission = events.Dequeue().Submission; submission.Code = submission.Code.Replace("@", System.Environment.NewLine); SaveSolution saveSolution = new SaveSolution(submission.Code, @"B:\solutions", submission.ProblemName + submission.SubmissionAccountId, "cpp"); saveSolution.SaveFile(); Dictionary <int, string> submissionsPaths = new Dictionary <int, string>(); submissionsPaths[submission.Id] = saveSolution.GetCodePath(); judge.SetSubmissionPath(submissionsPaths); judge.Evaluate(submission); } }
public void Evaluate(SubmissionJson submission) { Console.WriteLine("Evaluation Started"); ICompiler compiler = CompilerFactory.GetCompiler(submission.Language); string executablePath = String.Empty; string testsFolder = String.Empty; if (compiler != null) { if (compiler.Compile(submissionsPaths[submission.Id], out executablePath)) { testsFolder = TestsDirectory.FullName + "\\" + submission.SubmissionProblemId + "\\"; File.Copy(executablePath, WorkAreaDirectory.FullName + "\\" + submission.SubmissionProblemId + Constants.exe, true); foreach (var test in repository.Tests) { } } } }