DownloadTapiBridgeWithEncodingConversion
using Relativity.DataExchange.Export.VolumeManagerV2.Statistics;
using Relativity.DataExchange.Transfer;
using Relativity.Logging;
using Relativity.Transfer;
using System;
namespace Relativity.DataExchange.Export.VolumeManagerV2.Download.TapiHelpers
{
public class DownloadTapiBridgeWithEncodingConversion : DownloadTapiBridgeAdapter
{
private bool _initialized;
public DownloadTapiBridgeWithEncodingConversion(ITapiBridge downloadTapiBridge, IProgressHandler progressHandler, IMessagesHandler messagesHandler, ITransferStatistics transferStatistics, ILog logger)
: base(downloadTapiBridge, progressHandler, messagesHandler, transferStatistics, logger)
{
_initialized = false;
}
public override string QueueDownload(TransferPath transferPath)
{
_initialized = true;
return base.TapiBridge.AddPath(transferPath);
}
public override void WaitForTransfers()
{
if (_initialized)
try {
base.TapiBridge.WaitForTransfers("Waiting for all long files to download...", "Long file downloads completed.", "Failed to wait for all pending long file downloads.", false);
} catch (Exception ex) {
_logger.LogError(ex, "Error occurred when trying to stop LongText encoding conversion after TAPI client failure.", Array.Empty<object>());
throw;
}
else
_logger.LogVerbose("Long text transfer bridge hasn't been initialized or there is no request for long text download in the batch, so skipping waiting.", Array.Empty<object>());
}
}
}