Exemplo n.º 1
0
 public ProjectExerciseValidator(BaseValidator baseValidator, CsSandboxRunnerSettings settings, ExerciseSlide slide, CsProjectExerciseBlock exercise)
     : base(baseValidator)
 {
     this.settings = settings;
     this.slide    = slide;
     ex            = exercise;
 }
Exemplo n.º 2
0
        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();
                }
            }
        }