private static bool IsCorrectSolution(Solution solution, SubmissionResult runResult) { if (runResult == null) return false; if (runResult.IsInternalError) return false; var localValidationPrefixes = new[] { "Решение", "Строка", "Не нужно писать" }; if (localValidationPrefixes.Any(s => solution.CompilationError.StartsWith(s))) return true; const string sphereEngineErrorMessage = "Ой-ой, Sphere Engine, проверяющий задачи, не работает. Попробуйте отправить решение позже."; if (solution.IsCompilationError && solution.CompilationError == sphereEngineErrorMessage) return true; const string oldCompilationError = "CompilationError"; var isCompilationError = solution.IsCompilationError || solution.ActualOutput == oldCompilationError; var pseudoCompilationError = runResult.IsCompilationError || !string.IsNullOrEmpty(runResult.CompilationErrorMessage); if (isCompilationError != pseudoCompilationError && isCompilationError != runResult.IsCompilationError) return false; if (isCompilationError) return true; var output = runResult.GetOutput(); var isRightAnswer = runResult.IsSuccess && solution.ExpectedOutput.Equals(output); return solution.IsRightAnswer == isRightAnswer; }
public void Write(Solution source, Object runResult) { var file = String.Format("{0:D10}.json", source.Id); var path = Path.Combine(directory, file); File.AppendAllText(path, JsonConvert.SerializeObject(new {source, runResult}, jsonSettings)); }