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; }
public ProgramRunner( ISolutionsBase solutionsBase, IDockerClient dockerClient, RunningSettings runningSettings, ILogger <ProgramRunner> logger) { this.solutionsBase = solutionsBase; this.dockerClient = dockerClient; this.runningSettings = runningSettings; this.logger = logger; }
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; }