BatchInitializationFactory
using Castle.Windsor;
using kCura.WinEDDS;
using Relativity.DataExchange.Export.VolumeManagerV2.Container;
using Relativity.DataExchange.Export.VolumeManagerV2.Directories;
using Relativity.DataExchange.Export.VolumeManagerV2.Download;
using Relativity.DataExchange.Export.VolumeManagerV2.Repository;
using Relativity.Logging;
using System.Collections.Generic;
namespace Relativity.DataExchange.Export.VolumeManagerV2.Batches
{
public class BatchInitializationFactory
{
private readonly ILog _logger;
public BatchInitializationFactory(ILog logger)
{
_logger = logger;
}
public IBatchInitialization Create(ExportFile exportSettings, IExportConfig exportConfig, IWindsorContainer container)
{
List<IRepositoryBuilder> repositoryBuilders = new List<IRepositoryBuilder> {
(IRepositoryBuilder)container.Resolve<LongTextRepositoryBuilderFactory>().Create(exportSettings, container),
container.Resolve<NativeRepositoryBuilderFactory>().Create(exportSettings, container),
(IRepositoryBuilder)container.Resolve<ImageRepositoryBuilderFactory>().Create(exportSettings, container),
(IRepositoryBuilder)new FileRepositoryBuilder(container.Resolve<FileRequestRepository>(ExportInstaller.GetServiceNameByExportType(typeof(FileRequestRepository), "Pdf")), container.Resolve<ILabelManagerForArtifact>(), container.Resolve<IExportRequestBuilder>(ExportInstaller.GetServiceNameByExportType(typeof(IExportRequestBuilder), "Pdf")), _logger)
};
IDirectoryManager directoryManager = container.Resolve<IDirectoryManager>();
return new BatchInitialization(repositoryBuilders, directoryManager, _logger);
}
}
}