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

RetryablePathStatusChecker

using System; namespace Relativity.Transfer.Paths { internal class RetryablePathStatusChecker : IPathStatusChecker { private readonly ClientConfiguration configuration; public RetryablePathStatusChecker(ClientConfiguration configuration) { if (configuration == null) throw new ArgumentNullException("configuration"); this.configuration = configuration; } public bool IsCompleted(TransferPathStatus status) { switch (status) { case TransferPathStatus.BadPathError: if (!configuration.BadPathErrorsRetry) break; goto default; default: if (status != TransferPathStatus.FileNotFound || configuration.FileNotFoundErrorsRetry) { if (status == TransferPathStatus.PermissionsError) return !configuration.PermissionErrorsRetry; return false; } break; case TransferPathStatus.Skipped: case TransferPathStatus.Successful: break; } return true; } public bool IsRetrayable(TransferPathStatus status) { switch (status) { case TransferPathStatus.BadPathError: if (configuration.BadPathErrorsRetry) break; goto default; default: if (status != TransferPathStatus.FileNotFound || !configuration.FileNotFoundErrorsRetry) { if (status == TransferPathStatus.PermissionsError) return configuration.PermissionErrorsRetry; return false; } break; case TransferPathStatus.None: case TransferPathStatus.Failed: case TransferPathStatus.Started: break; } return true; } } }