<PackageReference Include="Relativity.Server.Transfer.SDK" Version="24000.0.1" />

TransferClientStrategy

using System; using System.Collections.Generic; using System.Linq; namespace Relativity.Transfer { public class TransferClientStrategy : ITransferClientStrategy { private static readonly List<WellKnownTransferClient> DefaultClientOrder = new List<WellKnownTransferClient>(new WellKnownTransferClient[3] { WellKnownTransferClient.FileShare, WellKnownTransferClient.Aspera, WellKnownTransferClient.Http }); private readonly List<WellKnownTransferClient> clients = new List<WellKnownTransferClient>(); public TransferClientStrategy() { clients.AddRange(DefaultClientOrder); } public TransferClientStrategy(IEnumerable<WellKnownTransferClient> candidates) { if (candidates == null) throw new ArgumentNullException("candidates"); clients.AddRange(candidates); } public TransferClientStrategy(IEnumerable<string> candidates) { if (candidates == null) throw new ArgumentNullException("candidates"); clients.AddRange(from x in candidates select (WellKnownTransferClient)Enum.Parse(typeof(WellKnownTransferClient), x)); } public TransferClientStrategy(string delimitedCandidates) { if (string.IsNullOrEmpty(delimitedCandidates)) throw new ArgumentNullException("delimitedCandidates"); string[] source = delimitedCandidates.Split(new string[1] { ";" }, StringSplitOptions.RemoveEmptyEntries); clients.AddRange(from x in source select (WellKnownTransferClient)Enum.Parse(typeof(WellKnownTransferClient), x)); } public IEnumerable<ITransferClientMetadata> GetSortedCandidates(RelativityConnectionInfo connectionInfo, IEnumerable<ITransferClientMetadata> availableClients) { List<ITransferClientMetadata> availableList = availableClients.ToList(); return (from client in clients select availableList.FirstOrDefault((ITransferClientMetadata x) => x.Client == client) into result where result != null select result).ToList(); } } }