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

ImageLoadFileMetadataForArtifactBuilderFactory

using kCura.WinEDDS; using Relativity.DataExchange.Export.VolumeManagerV2.Directories; using Relativity.DataExchange.Export.VolumeManagerV2.Metadata.Images.Lines; using Relativity.Logging; using System; namespace Relativity.DataExchange.Export.VolumeManagerV2.Metadata.Images { public class ImageLoadFileMetadataForArtifactBuilderFactory { private readonly IFilePathTransformer _filePathTransformer; private readonly IImageLoadFileEntry _imageLoadFileEntry; private readonly IFullTextLoadFileEntry _fullTextLoadFileEntry; private readonly ILog _logger; public ImageLoadFileMetadataForArtifactBuilderFactory(IFilePathTransformer filePathTransformer, IImageLoadFileEntry imageLoadFileEntry, IFullTextLoadFileEntry fullTextLoadFileEntry, ILog logger) { _filePathTransformer = filePathTransformer; _imageLoadFileEntry = imageLoadFileEntry; _fullTextLoadFileEntry = fullTextLoadFileEntry; _logger = logger; } public IImageLoadFileMetadataForArtifactBuilder Create(ExportFile exportSettings) { ExportFile.ImageType? typeOfImage = exportSettings.TypeOfImage; ExportFile.ImageType imageType = ExportFile.ImageType.SinglePage; if ((typeOfImage.GetValueOrDefault() == imageType) & typeOfImage.HasValue) return new SinglePageMetadataForArtifactBuilder(exportSettings, _filePathTransformer, _imageLoadFileEntry, _fullTextLoadFileEntry, _logger); LoadFileType.FileFormat? logFileFormat = exportSettings.LogFileFormat; LoadFileType.FileFormat fileFormat = LoadFileType.FileFormat.Opticon; if ((logFileFormat.GetValueOrDefault() == fileFormat) & logFileFormat.HasValue) return new MultiPageOpticonMetadataForArtifactBuilder(exportSettings, _filePathTransformer, _imageLoadFileEntry, _fullTextLoadFileEntry, _logger); typeOfImage = exportSettings.TypeOfImage; imageType = ExportFile.ImageType.MultiPageTiff; if (!((typeOfImage.GetValueOrDefault() == imageType) & typeOfImage.HasValue)) { typeOfImage = exportSettings.TypeOfImage; imageType = ExportFile.ImageType.Pdf; if (!((typeOfImage.GetValueOrDefault() == imageType) & typeOfImage.HasValue)) goto IL_011d; } logFileFormat = exportSettings.LogFileFormat; fileFormat = LoadFileType.FileFormat.IPRO; if (!((logFileFormat.GetValueOrDefault() == fileFormat) & logFileFormat.HasValue)) { logFileFormat = exportSettings.LogFileFormat; fileFormat = LoadFileType.FileFormat.IPRO_FullText; if (!((logFileFormat.GetValueOrDefault() == fileFormat) & logFileFormat.HasValue)) goto IL_011d; } return new MultiPageNotOpticonMetadataForArtifactBuilder(exportSettings, _filePathTransformer, _imageLoadFileEntry, _fullTextLoadFileEntry, _logger); IL_011d: _logger.LogError("Invalid configuration for images. Image load file type {loadFileType}. Images format {imageFormat}.", new object[2] { exportSettings.LogFileFormat, exportSettings.TypeOfImage }); throw new ArgumentException($"""{exportSettings.LogFileFormat}""{exportSettings.TypeOfImage}"""); } public IImageLoadFileMetadataForArtifactBuilder CreateForUnsuccessfulRollup(ExportFile exportSettings) { return new SinglePageMetadataForArtifactBuilder(exportSettings, _filePathTransformer, _imageLoadFileEntry, _fullTextLoadFileEntry, _logger); } } }