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

FileRepositoryBuilder

using kCura.WinEDDS.Exporters; using Relativity.DataExchange.Export.VolumeManagerV2.Directories; using Relativity.DataExchange.Export.VolumeManagerV2.Download; using Relativity.Logging; using System.Collections.Generic; using System.Linq; using System.Threading; namespace Relativity.DataExchange.Export.VolumeManagerV2.Repository { public class FileRepositoryBuilder : IRepositoryBuilder { private readonly FileRequestRepository _fileRepository; private readonly ILabelManagerForArtifact _labelManagerForArtifact; private readonly IExportRequestBuilder _fileExportRequestBuilder; private readonly ILog _logger; public FileRepositoryBuilder(FileRequestRepository fileRepository, ILabelManagerForArtifact labelManagerForArtifact, IExportRequestBuilder fileExportRequestBuilder, ILog logger) { _fileRepository = fileRepository; _labelManagerForArtifact = labelManagerForArtifact; _fileExportRequestBuilder = fileExportRequestBuilder; _logger = logger; } public void AddToRepository(ObjectExportInfo artifact, CancellationToken cancellationToken) { _logger.LogVerbose("Adding artifact {artifactId} to repository.", new object[1] { artifact.ArtifactID }); artifact.DestinationVolume = _labelManagerForArtifact.GetVolumeLabel(artifact.ArtifactID); _logger.LogVerbose("Current volume set to {volume}.", new object[1] { artifact.DestinationVolume }); IList<ExportRequest> list = _fileExportRequestBuilder.Create(artifact, cancellationToken); _logger.LogVerbose("{count} export request for the file found.", new object[1] { list.Count }); FileRequest<ObjectExportInfo> file = new FileRequest<ObjectExportInfo>(artifact) { ExportRequest = list.FirstOrDefault(), TransferCompleted = (list.Count == 0) }; _fileRepository.Add(file); } } }