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

DownloadTapiBridgeForFiles

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 DownloadTapiBridgeForFiles : DownloadTapiBridgeAdapter { private readonly ITransferClientHandler _transferClientHandler; private bool _isEmpty; public DownloadTapiBridgeForFiles(ITapiBridge bridge, IProgressHandler progressHandler, IMessagesHandler messagesHandler, ITransferStatistics transferStatistics, ITransferClientHandler transferClientHandler, ILog logger) : base(bridge, progressHandler, messagesHandler, transferStatistics, logger) { _transferClientHandler = transferClientHandler.ThrowIfNull("transferClientHandler"); _transferClientHandler.Subscribe(bridge); _isEmpty = true; } public override string QueueDownload(TransferPath transferPath) { _isEmpty = false; return base.TapiBridge.AddPath(transferPath); } public override void WaitForTransfers() { if (_isEmpty) _logger.LogVerbose("Files transfer bridge is empty, so skipping waiting.", Array.Empty<object>()); else base.TapiBridge.WaitForTransfers("Waiting for all native files to download...", "Native file downloads completed.", "Failed to wait for all pending native file downloads.", true); } public override void Dispose() { _transferClientHandler.Unsubscribe(base.TapiBridge); base.Dispose(); } } }