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

TapiModeHelper

static class TapiModeHelper
Defines transfer mode related static helper methods.
using Relativity.DataExchange.Logger; using Relativity.DataExchange.Resources; using Relativity.Transfer; using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Relativity.DataExchange.Transfer { internal static class TapiModeHelper { private static IDictionary<TapiClient, int> TapiClientOrderMap => new Dictionary<TapiClient, int> { { TapiClient.Direct, 0 }, { TapiClient.Aspera, 1 }, { TapiClient.Web, 2 } }; public static string BuildDocText() { StringBuilder stringBuilder = new StringBuilder(); stringBuilder.AppendLine("FILE TRANSFER MODES:"); using (RelativityTransferLog relativityTransferLog = new RelativityTransferLog(RelativityLogger.Instance)) { foreach (ITransferClientMetadata item in from x in TransferClientHelper.SearchAvailableClients((ITransferLog)relativityTransferLog) orderby x.DisplayName select x) { if (stringBuilder.Length > 0) { stringBuilder.AppendLine(); stringBuilder.AppendLine(); } stringBuilder.AppendFormat(" • {0} • ", item.DisplayName); stringBuilder.AppendLine(); stringBuilder.Append(item.Description); } } stringBuilder.AppendLine(); stringBuilder.AppendLine(); return stringBuilder.ToString(); } public static string BuildImportStatusText(bool nativeFilesCopied, TapiClient? native, TapiClient? metadata) { StringBuilder stringBuilder = new StringBuilder(); string fileTransferModeText = GetFileTransferModeText((!native.HasValue) ? new TapiClient[0] : new TapiClient[1] { native.Value }); stringBuilder.AppendFormat(Strings.FileTransferStatusTextModePrefix, nativeFilesCopied ? fileTransferModeText : Strings.FileTransferModeDisabled); stringBuilder.Append(", "); string fileTransferModeText2 = GetFileTransferModeText((!metadata.HasValue) ? new TapiClient[0] : new TapiClient[1] { metadata.Value }); stringBuilder.AppendFormat(Strings.FileTransferStatusTextMetadataPrefix, fileTransferModeText2); return stringBuilder.ToString(); } public static string BuildExportStatusText(bool nativeFilesCopied, IEnumerable<TapiClient> natives) { StringBuilder stringBuilder = new StringBuilder(); string fileTransferModeText = GetFileTransferModeText(natives); stringBuilder.AppendFormat(Strings.FileTransferStatusTextModePrefix, nativeFilesCopied ? fileTransferModeText : Strings.FileTransferModeDisabled); return stringBuilder.ToString(); } public static TapiClient GetTapiClient(IEnumerable<TapiClient> clients) { List<TapiClient> source = (from x in clients.Distinct().Except(new TapiClient[1]) orderby TapiClientOrderMap[x] select x).ToList(); if (!source.Any()) return TapiClient.None; return source.Last(); } private static Guid GetClientId(TapiClient client) { switch (client) { case TapiClient.Aspera: return new Guid("812A70A5-7311-46CC-BE53-07BB8C5F9A7D"); case TapiClient.Direct: return new Guid("0315D6C7-FF07-41E2-9C25-16573FC6B9DE"); case TapiClient.Web: return new Guid("18F9E382-288C-4B6D-8AE8-FBA4D88CD841"); default: return Guid.Empty; } } private static string GetFileTransferModeText(IEnumerable<TapiClient> clients) { StringBuilder stringBuilder = new StringBuilder(); foreach (TapiClient item in from x in clients.Distinct().Except(new TapiClient[1]) orderby TapiClientOrderMap[x] select x) { if (stringBuilder.Length > 0) stringBuilder.Append("/"); stringBuilder.Append(TapiObjectService.GetClientDisplayName(GetClientId(item))); } if (stringBuilder.Length == 0) stringBuilder.Append(Strings.FileTransferModePending); return stringBuilder.ToString(); } } }