<PackageReference Include="Relativity.Server.Import.SDK" Version="2.9.2" />

BatchInitialization

using kCura.WinEDDS.Exporters; using Relativity.DataExchange.Export.VolumeManagerV2.Directories; using Relativity.DataExchange.Export.VolumeManagerV2.Repository; using Relativity.Logging; using System; using System.Collections.Generic; using System.Threading; namespace Relativity.DataExchange.Export.VolumeManagerV2.Batches { public class BatchInitialization : IBatchInitialization { private readonly IList<IRepositoryBuilder> _repositoryBuilders; private readonly IDirectoryManager _directoryManager; private readonly ILog _logger; public BatchInitialization(IList<IRepositoryBuilder> repositoryBuilders, IDirectoryManager directoryManager, ILog logger) { _repositoryBuilders = repositoryBuilders; _directoryManager = directoryManager; _logger = logger; } public void PrepareBatch(ObjectExportInfo[] artifacts, VolumePredictions[] volumePredictions, CancellationToken cancellationToken) { _logger.LogDebug("Preparing batch sequentially", Array.Empty<object>()); for (int i = 0; i < artifacts.Length; i++) { if (cancellationToken.IsCancellationRequested) break; _directoryManager.MoveNext(volumePredictions[i]); _logger.LogVerbose("Adding artifact {artifactId} to repositories.", new object[1] { artifacts[i].ArtifactID }); PrepareArtifact(artifacts[i], cancellationToken); } } private void PrepareArtifact(ObjectExportInfo artifact, CancellationToken cancellationToken) { foreach (IRepositoryBuilder repositoryBuilder in _repositoryBuilders) { _logger.LogVerbose("Adding artifact {artifactId} to repository {type}.", new object[2] { artifact.ArtifactID, repositoryBuilder.GetType().ToString() }); repositoryBuilder.AddToRepository(artifact, cancellationToken); } } } }