<PackageReference Include="Relativity.Transfer.Client" Version="7.1.40" />

JobOrder

public class JobOrder
using System; using System.Collections.Generic; namespace Aspera.Transfer { public class JobOrder { private FileLocation source; private FileLocation destination; private XferParams xferParams; public JobOrder(FileLocation source, FileLocation destination, XferParams xferParams) { this.source = source; this.destination = destination; this.xferParams = xferParams; validate(); } public FileLocation getSource() { return source; } public FileLocation getDestination() { return destination; } public XferParams getXferParams() { return xferParams; } protected internal List<string> buildCommand(Guid xferId, int xferRetry = 0) { List<string> list = new List<string>(); list.Add("--mode"); RemoteFileLocation remoteFileLocation; if (source is RemoteFileLocation) { remoteFileLocation = (RemoteFileLocation)source; list.Add("recv"); } else { remoteFileLocation = (RemoteFileLocation)destination; list.Add("send"); } if (remoteFileLocation.IsHostIPv6()) list.Add("-6"); list.Add("-q"); list.AddRange(xferParams.buildCommand(isUpload(), xferId, xferRetry)); if (remoteFileLocation.IsPartialFileTransfer()) list.Add(remoteFileLocation.getRangeCmdString()); if (remoteFileLocation.getIdentity() != null) { list.Add("-i"); list.Add(remoteFileLocation.getIdentity()); } list.Add("--user"); list.Add(remoteFileLocation.getUser()); list.Add("--host"); list.Add(remoteFileLocation.getHost()); if (xferParams.persist) list.Add("--keepalive"); string text = source.buildCommand(); if (text.Length > 0) list.Add(text); string text2 = xferParams.getDestinationRoot(); if (string.IsNullOrEmpty(text2) || text2.Trim().Length == 0) text2 = XferParams.DEFAULT_DESTINATION_ROOT; if (text2.Length == 0 && !string.IsNullOrEmpty(destination.getFirstPath()) && destination.getFirstPath().Trim().Length > 0) text2 = destination.getFirstPath(); list.Add(text2); return list; } public bool isUpload() { if (source is RemoteFileLocation && destination is LocalFileLocation) return false; return true; } private void validate() { string text = ""; if (xferParams == null) { text = "XferParams must be non null"; throw new FaspManagerException("JobOrder validation failed: " + text); } xferParams.validate(); if (source == null || destination == null) { text = "The source and destination must be non null"; throw new FaspManagerException("JobOrder validation failed: " + text); } if ((source is RemoteFileLocation && destination is RemoteFileLocation) || (source is LocalFileLocation && destination is LocalFileLocation)) { text = "One of the source and destination must be local and the other remote"; throw new FaspManagerException("JobOrder validation failed: " + text); } if (xferParams.persist && (source.getFirstPath().Length > 0 || destination.getPaths().Count > 0)) throw new FaspManagerException("When starting a persistent transfer do not specify any paths on the source/destination object"); if (!xferParams.persist && source.getFirstPath().Length <= 0) throw new FaspManagerException("There must be at least one source path or source/destination pair."); } } }