Ejemplo n.º 1
0
 public Executor(
     ISolutionsBase solutionBase,
     IDockerClient dockerClient,
     ILoggerFactory loggerFactory,
     IOptions <RunningSettings> runningOptions,
     IOptions <RabbitMqQueueSettings> rabbitMQOptinos,
     IOptions <StartSettings> startOptions,
     ILogger <Executor> logger)
 {
     executeWorkers = Enumerable.Repeat(0, runningOptions.Value.WorkersCount)
                      .Select(n =>
                              new ExecuteWorker(
                                  solutionBase.SaveChanges,
                                  solutionBase.SaveBuildLog,
                                  solutionBase.GetExerciseData,
                                  solutionBase,
                                  dockerClient,
                                  runningOptions.Value,
                                  startOptions.Value,
                                  loggerFactory)
                              )
                      .ToList();
     this.solutionBase    = solutionBase;
     this.rabbitMQOptinos = rabbitMQOptinos;
     this.logger          = logger;
 }
Ejemplo n.º 2
0
 public ProgramRunner(
     ISolutionsBase solutionsBase,
     IDockerClient dockerClient,
     RunningSettings runningSettings,
     ILogger <ProgramRunner> logger)
 {
     this.solutionsBase   = solutionsBase;
     this.dockerClient    = dockerClient;
     this.runningSettings = runningSettings;
     this.logger          = logger;
 }
Ejemplo n.º 3
0
 public ExecuteWorker(
     Func <Guid, SolutionStatus, Task> processSolution,
     Func <Guid, BuildLogRequest, Task> saveBuildLogs,
     Func <Guid, Task <ExerciseData[]> > getTests,
     ISolutionsBase solutionsBase,
     IDockerClient dockerClient,
     RunningSettings runningSettings,
     StartSettings options,
     ILoggerFactory logger)
 {
     this.getTests = getTests;
     builder       = new ProgramBuilder(processSolution, saveBuildLogs, dockerClient, options, logger.CreateLogger <ProgramBuilder>());
     runner        = new ProgramRunner(solutionsBase, dockerClient, runningSettings, logger.CreateLogger <ProgramRunner>());
     this.logger   = logger.CreateLogger <ExecuteWorker>();
 }
 public ConsoleStatusReporter(ISolutionsBase solutionsBase, ILogger <ConsoleStatusReporter> logger)
 {
     this.solutionsBase = solutionsBase;
     this.logger        = logger;
 }