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

AsperaPathStatusResolver

using Aspera.Transfer; using Relativity.Transfer.Aspera.Resources; using Relativity.Transfer.Paths; namespace Relativity.Transfer.Aspera.Paths { internal class AsperaPathStatusResolver : IAsperaPathStatusResolver { private readonly IPathStatusResolver pathStatusResolver; public AsperaPathStatusResolver(IPathStatusResolver pathStatusResolver) { this.pathStatusResolver = pathStatusResolver; } public TransferPathStatus Resolve(FileStats statistics) { TransferPathStatus pathStatus = ResolveBasedOfStatistics(statistics); return pathStatusResolver.Resolve(pathStatus); } private static TransferPathStatus ResolveBasedOfStatistics(FileStats statistics) { switch (statistics.state) { case FileState.FINISHED: return TransferPathStatus.Successful; case FileState.TRANSFERRING: return TransferPathStatus.Started; case FileState.SKIPPED: return TransferPathStatus.Skipped; case FileState.FAILED: return ResolveBasedOnError(statistics); default: return TransferPathStatus.None; } } private static TransferPathStatus ResolveBasedOnError(FileStats statistics) { int errCode = statistics.errCode; if (errCode <= 19) { switch (errCode) { case 9: case 19: break; case 4: return TransferPathStatus.FileNotFound; case 5: goto IL_0052; default: goto IL_006b; } goto IL_004e; } if (errCode <= 30) { if (errCode == 28) return TransferPathStatus.Canceled; if ((uint)(errCode - 29) <= 1) goto IL_004e; } else { switch (errCode) { case 38: goto IL_004e; case 41: return TransferPathStatus.BadPathError; } if ((uint)(errCode - 55) <= 1) goto IL_004e; } goto IL_006b; IL_006b: return TransferPathStatus.Failed; IL_0052: if (statistics.errDescription.Equals(AsperaStrings.ThereIsNotEnoughtSpaceError)) return TransferPathStatus.Fatal; return TransferPathStatus.PermissionsError; IL_004e: return TransferPathStatus.Fatal; } } }