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);
}
}
}