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

UploadTapiBridge2

public sealed class UploadTapiBridge2 : TapiBridgeBase2
Represents a class object to provide a upload bridge from the Transfer API to existing import/export components. This class cannot be inherited, backwards compatibility isn't guaranteed, and should never be consumed by API users.
using Relativity.DataExchange.Io; using Relativity.DataExchange.Resources; using Relativity.DataExchange.Service; using Relativity.Logging; using Relativity.Transfer; using Relativity.Transfer.Aspera; using System; using System.Threading; namespace Relativity.DataExchange.Transfer { public sealed class UploadTapiBridge2 : TapiBridgeBase2 { private readonly FileSharePathManager pathManager; private readonly UploadTapiBridgeParameters2 parameters; public string TargetFolderName => pathManager.CurrentTargetFolderName; public UploadTapiBridge2(UploadTapiBridgeParameters2 parameters, ILog logger, IAuthenticationTokenProvider authTokenProvider, CancellationToken token, bool useLegacyWebApi, IRelativityManagerServiceFactory relativityManagerServiceFactory) : this(new TapiObjectService(authTokenProvider, relativityManagerServiceFactory, useLegacyWebApi), parameters, logger, useLegacyWebApi, token) { } public UploadTapiBridge2(ITapiObjectService factory, UploadTapiBridgeParameters2 parameters, ILog logger, bool useLegacyWebApi, CancellationToken token) : this(factory, parameters, null, logger, useLegacyWebApi, token) { } public UploadTapiBridge2(ITapiObjectService factory, UploadTapiBridgeParameters2 parameters, TransferContext context, ILog logger, bool useLegacyWebApi, CancellationToken token) : base(factory, parameters, 1, context, logger, useLegacyWebApi, token) { if (parameters == null) throw new ArgumentNullException("parameters"); this.parameters = parameters; pathManager = new FileSharePathManager(parameters.MaxFilesPerFolder); } public string AddPath(string sourceFile, string targetFileName, int order) { if (string.IsNullOrEmpty(sourceFile)) throw new ArgumentNullException("sourceFile"); TransferPath val = new TransferPath(); val.set_SourcePath(sourceFile); val.set_TargetPath(parameters.SortIntoVolumes ? pathManager.GetNextTargetPath(base.TargetPath) : base.TargetPath); val.set_TargetFileName(targetFileName); val.set_Order(order); TransferPath path = val; return AddPath(path); } public override void LogTransferParameters() { base.LogTransferParameters(); base.Logger.LogInformation("BCP file transfer: {BcpFileTransfer}", new object[1] { parameters.BcpFileTransfer }); base.Logger.LogInformation("Aspera BCP root folder: {AsperaBcpRootFolder}", new object[1] { parameters.AsperaBcpRootFolder }); base.Logger.LogInformation("Sort into volume: {SortIntoVolumes}", new object[1] { parameters.SortIntoVolumes }); base.Logger.LogInformation("Max file per folder: {MaxFilesPerFolder}", new object[1] { parameters.MaxFilesPerFolder }); } protected override string TransferFileFatalMessage() { return Strings.TransferFileUploadFatalMessage; } protected override TransferRequest CreateTransferRequestForJob(TransferContext context) { return TransferRequest.ForUploadJob(base.TargetPath, context); } protected override void SetupRemotePathResolvers(ITransferRequest request) { if (request == null) throw new ArgumentNullException("request"); if (base.ClientId.ToString().ToUpperInvariant() == "812A70A5-7311-46CC-BE53-07BB8C5F9A7D") { IRemotePathResolver val = (!parameters.BcpFileTransfer) ? ((object)new AsperaUncPathResolver(parameters.FileShare, parameters.AsperaDocRootLevels, base.TransferLog)) : ((object)new AsperaUncBcpPathResolver(parameters.FileShare, parameters.AsperaBcpRootFolder, base.TransferLog)); request.set_TargetPathResolver(val); } } protected override ClientConfiguration CreateClientConfiguration() { ClientConfiguration obj = base.CreateClientConfiguration(); obj.set_FileTransferHint(parameters.BcpFileTransfer ? 1 : 0); return obj; } } }