/// <summary> /// Creates a new class of the LegacyJobOrchestrator. /// </summary> /// <param name="publishedNodesJobConverter">The converter to read the job from the specified file.</param> /// <param name="legacyCliModelProvider">The provider that provides the legacy command line arguments.</param> /// <param name="jobSerializer">The serializer to (de)serialize job information.</param> /// <param name="logger">Logger to write log messages.</param> /// <param name="identity">Module's identity provider.</param> public LegacyJobOrchestrator(PublishedNodesJobConverter publishedNodesJobConverter, ILegacyCliModelProvider legacyCliModelProvider, IJobSerializer jobSerializer, ILogger logger, IIdentity identity) { _publishedNodesJobConverter = publishedNodesJobConverter ?? throw new ArgumentNullException(nameof(publishedNodesJobConverter)); _legacyCliModel = legacyCliModelProvider.LegacyCliModel ?? throw new ArgumentNullException(nameof(legacyCliModelProvider)); _jobSerializer = jobSerializer ?? throw new ArgumentNullException(nameof(jobSerializer)); _logger = logger ?? throw new ArgumentNullException(nameof(logger)); _identity = identity ?? throw new ArgumentNullException(nameof(identity)); var directory = Path.GetDirectoryName(_legacyCliModel.PublishedNodesFile); if (string.IsNullOrWhiteSpace(directory)) { directory = Environment.CurrentDirectory; } var file = Path.GetFileName(_legacyCliModel.PublishedNodesFile); _fileSystemWatcher = new FileSystemWatcher(directory, file); _fileSystemWatcher.Changed += _fileSystemWatcher_Changed; _fileSystemWatcher.EnableRaisingEvents = true; RefreshJobFromFile(); }
/// <summary> /// Creates a new class of the LegacyJobOrchestrator. /// </summary> /// <param name="publishedNodesJobConverter">The converter to read the job from the specified file.</param> /// <param name="legacyCliModelProvider">The provider that provides the legacy command line arguments.</param> /// <param name="agentConfigPriovider">The provider that provides the agent configuration.</param> /// <param name="jobSerializer">The serializer to (de)serialize job information.</param> /// <param name="logger">Logger to write log messages.</param> /// <param name="identity">Module's identity provider.</param> public LegacyJobOrchestrator(PublishedNodesJobConverter publishedNodesJobConverter, ILegacyCliModelProvider legacyCliModelProvider, IAgentConfigProvider agentConfigPriovider, IJobSerializer jobSerializer, ILogger logger, IIdentity identity) { _publishedNodesJobConverter = publishedNodesJobConverter ?? throw new ArgumentNullException(nameof(publishedNodesJobConverter)); _legacyCliModel = legacyCliModelProvider.LegacyCliModel ?? throw new ArgumentNullException(nameof(legacyCliModelProvider)); _agentConfig = agentConfigPriovider.Config ?? throw new ArgumentNullException(nameof(agentConfigPriovider)); _jobSerializer = jobSerializer ?? throw new ArgumentNullException(nameof(jobSerializer)); _logger = logger ?? throw new ArgumentNullException(nameof(logger)); _identity = identity ?? throw new ArgumentNullException(nameof(identity)); var directory = Path.GetDirectoryName(_legacyCliModel.PublishedNodesFile); if (string.IsNullOrWhiteSpace(directory)) { directory = Environment.CurrentDirectory; } _availableJobs = new Queue <JobProcessingInstructionModel>(); _assignedJobs = new ConcurrentDictionary <string, JobProcessingInstructionModel>(); var file = Path.GetFileName(_legacyCliModel.PublishedNodesFile); _fileSystemWatcher = new FileSystemWatcher(directory, file); _fileSystemWatcher.Changed += _fileSystemWatcher_Changed; _fileSystemWatcher.EnableRaisingEvents = true; RefreshJobFromFile(); }