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

BatchValidatorFactory

public class BatchValidatorFactory
using Castle.Windsor; using kCura.WinEDDS; using Relativity.Logging; using System; using System.Collections.Generic; namespace Relativity.DataExchange.Export.VolumeManagerV2.Batches { public class BatchValidatorFactory { private readonly ILog _logger; public BatchValidatorFactory(ILog logger) { _logger = logger; } public IBatchValidator Create(ExportFile exportSettings, IExportConfig exportConfig, IWindsorContainer container) { _logger.LogVerbose("Creating BatchValidator.", Array.Empty<object>()); List<IBatchValidator> list = new List<IBatchValidator>(); if (exportSettings.ExportFullTextAsFile) AddValidator<LongTextBatchValidator>(list, container); if (exportSettings.ExportNative && exportSettings.VolumeInfo.CopyNativeFilesFromRepository) AddValidator<NativeFileBatchValidator>(list, container); if (exportSettings.ExportPdf && exportSettings.VolumeInfo.CopyPdfFilesFromRepository) AddValidator<PdfFileBatchValidator>(list, container); if (exportSettings.ExportImages && exportSettings.VolumeInfo.CopyImageFilesFromRepository) AddValidator<ImageFileBatchValidator>(list, container); if (exportSettings.ExportImages) AddValidator<ImageLoadFileBatchValidator>(list, container); if (exportSettings.ExportNative || exportSettings.ExportPdf) AddValidator<LoadFileBatchValidator>(list, container); return new BatchValidator(list, _logger); } private void AddValidator<T>(List<IBatchValidator> batchValidators, IWindsorContainer container) where T : IBatchValidator { _logger.LogVerbose("Adding {validator}.", new object[1] { "T" }); batchValidators.Add((IBatchValidator)(object)container.Resolve<T>()); } } }