LongTextDownloadTapiBridgeFactory
using Relativity.DataExchange.Export.VolumeManagerV2.Statistics;
using Relativity.Logging;
using System;
using System.Threading;
namespace Relativity.DataExchange.Export.VolumeManagerV2.Download.TapiHelpers
{
public class LongTextDownloadTapiBridgeFactory : ILongTextDownloadTapiBridgeFactory
{
private readonly TapiBridgeParametersFactory _tapiBridgeParametersFactory;
private readonly DownloadProgressManager _downloadProgressManager;
private readonly IMessagesHandler _messageHandler;
private readonly MetadataStatistics _metadataStatistics;
private readonly ILog _logger;
private Func<string> _getCorrelationId;
public LongTextDownloadTapiBridgeFactory(TapiBridgeParametersFactory tapiBridgeParametersFactory, DownloadProgressManager downloadProgressManager, IMessagesHandler messageHandler, MetadataStatistics metadataStatistics, ILog logger, Func<string> getCorrelationId)
{
_tapiBridgeParametersFactory = tapiBridgeParametersFactory.ThrowIfNull("tapiBridgeParametersFactory");
_downloadProgressManager = downloadProgressManager.ThrowIfNull("downloadProgressManager");
_messageHandler = messageHandler.ThrowIfNull("messageHandler");
_metadataStatistics = metadataStatistics.ThrowIfNull("metadataStatistics");
_logger = logger.ThrowIfNull<ILog>("logger");
_getCorrelationId = getCorrelationId;
}
public IDownloadTapiBridge Create(CancellationToken token)
{
return new DownloadTapiBridgeWithEncodingConversion(((ITapiBridgeFactory)new LongTextTapiBridgeFactory(_tapiBridgeParametersFactory, _logger, token, _getCorrelationId)).Create(), new LongTextProgressHandler(_downloadProgressManager, _logger), _messageHandler, _metadataStatistics, _logger);
}
}
}