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

ImageLoadFileMetadataBuilder

using kCura.WinEDDS.Exporters; using Relativity.DataExchange.Export.VolumeManagerV2.Metadata.Writers; using Relativity.Logging; using System; using System.Threading; namespace Relativity.DataExchange.Export.VolumeManagerV2.Metadata.Images { public class ImageLoadFileMetadataBuilder : IImageLoadFileMetadataBuilder { private readonly IImageLoadFileMetadataForArtifactBuilder _forArtifactBuilder; private readonly IImageLoadFileMetadataForArtifactBuilder _unsuccessfulRollupForArtifactBuilder; private readonly IRetryableStreamWriter _writer; private readonly ILog _logger; public ImageLoadFileMetadataBuilder(IImageLoadFileMetadataForArtifactBuilder forArtifactBuilder, IImageLoadFileMetadataForArtifactBuilder unsuccessfulRollupForArtifactBuilder, IRetryableStreamWriter writer, ILog logger) { _forArtifactBuilder = forArtifactBuilder; _unsuccessfulRollupForArtifactBuilder = unsuccessfulRollupForArtifactBuilder; _logger = logger; _writer = writer; } public void CreateLoadFileEntries(ObjectExportInfo[] artifacts, CancellationToken cancellationToken) { _logger.LogVerbose("Creating metadata for image load file for current batch.", Array.Empty<object>()); _writer.InitializeFile(cancellationToken); foreach (ObjectExportInfo objectExportInfo in artifacts) { if (cancellationToken.IsCancellationRequested) return; _logger.LogVerbose("Creating image load file entry for artifact {artifactId}.", new object[1] { objectExportInfo.ArtifactID }); if (objectExportInfo.Images.Count > 0) { ImageExportInfo imageExportInfo = (ImageExportInfo)objectExportInfo.Images[0]; if (imageExportInfo.SuccessfulRollup) { _logger.LogVerbose("Rollup successful for image {batesNumber}. Continuing with default metadata builder.", new object[1] { imageExportInfo.BatesNumber }); _forArtifactBuilder.WriteLoadFileEntry(objectExportInfo, _writer, cancellationToken); } else { _logger.LogVerbose("Rollup unsuccessful for image {batesNumber}. Continuing with metadata builder for unsuccessful rollup.", new object[1] { imageExportInfo.BatesNumber }); _unsuccessfulRollupForArtifactBuilder.WriteLoadFileEntry(objectExportInfo, _writer, cancellationToken); } } else _logger.LogVerbose("No images for artifact {artifactId}.", new object[1] { objectExportInfo.ArtifactID }); } _logger.LogVerbose("Successfully create metadata for images.", Array.Empty<object>()); } } }