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

ImageRepositoryBuilder

using kCura.WinEDDS.Exporters; 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 ImageRepositoryBuilder : IRepositoryBuilder { private readonly IExportRequestBuilder _imageExportRequestBuilder; private readonly ImageRepository _imageRepository; private readonly ILog _logger; public ImageRepositoryBuilder(ImageRepository imageRepository, IExportRequestBuilder imageExportRequestBuilder, ILog logger) { _imageExportRequestBuilder = imageExportRequestBuilder; _logger = logger; _imageRepository = imageRepository; } public void AddToRepository(ObjectExportInfo artifact, CancellationToken cancellationToken) { _logger.LogVerbose("Adding {count} images to repository for artifact {artifactId}.", new object[2] { artifact.Images.Count, artifact.ArtifactID }); IList<ExportRequest> list = _imageExportRequestBuilder.Create(artifact, cancellationToken); _logger.LogVerbose("{count} export request for images found.", new object[1] { list.Count }); IList<ImageRequest> list2 = new List<ImageRequest>(); foreach (ImageExportInfo item2 in artifact.Images.Cast<ImageExportInfo>()) { ExportRequest exportRequest = list.FirstOrDefault((ExportRequest x) => x.DestinationLocation == item2.TempLocation); _logger.LogVerbose("For image {batesNumber} export request has been found: {result}.", new object[2] { item2.BatesNumber, exportRequest != null }); ImageRequest item = new ImageRequest(item2) { ExportRequest = exportRequest, TransferCompleted = (exportRequest == null) }; list2.Add(item); } _imageRepository.Add(list2); } } }