public ProjectExerciseValidator(BaseValidator baseValidator, CsSandboxRunnerSettings settings, ExerciseSlide slide, CsProjectExerciseBlock exercise) : base(baseValidator) { this.settings = settings; this.slide = slide; ex = exercise; }
public void ValidateExercises() // todo логирование log4net в файл (ошибки отдельно) и на консоль { foreach (var slide in slides.OfType <ExerciseSlide>()) { LogSlideProcessing("Validate exercise", slide); if (slide.Exercise is CsProjectExerciseBlock exercise) { var settings = new CsSandboxRunnerSettings(); new ProjectExerciseValidator(this, settings, slide, exercise).ValidateExercises(); } else if (slide.Exercise is SingleFileExerciseBlock) { ReportIfEthalonSolutionHasErrorsOrIssues(slide); } else if (slide.Exercise is UniversalExerciseBlock universalExercise) { var settings = new DockerSandboxRunnerSettings(universalExercise.DockerImageName, universalExercise.RunCommand); new UniversalExerciseValidator(this, settings, slide, universalExercise).ValidateExercises(); } } }