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

FilesharePathStatusResolver

using Relativity.Transfer.Exceptions; using Relativity.Transfer.Paths; using System; using System.IO; namespace Relativity.Transfer.FileShare.Paths { internal class FilesharePathStatusResolver : IFilesharePathStatusResolver { private readonly IPathStatusResolver pathStatusResolver; public FilesharePathStatusResolver(IPathStatusResolver pathStatusResolver) { this.pathStatusResolver = pathStatusResolver; } public TransferPathStatus Resolve(Exception exception) { TransferPathStatus pathStatus = ResolveBasedOnException(exception); return pathStatusResolver.Resolve(pathStatus); } private static TransferPathStatus ResolveBasedOnException(Exception exception) { if (exception is DirectoryNotFoundException) return TransferPathStatus.Failed; if (exception is FileNotFoundException) return TransferPathStatus.FileNotFound; if (exception is PathTooLongException) return TransferPathStatus.Fatal; if (exception is IOException) { if (FileshareErrorHelper.IsDiskFull(exception)) return TransferPathStatus.Fatal; return TransferPathStatus.Failed; } if (ExceptionHelper.IsFatalException(exception)) return TransferPathStatus.Fatal; if (exception is ArgumentException) return TransferPathStatus.Fatal; if (exception is NotSupportedException) return TransferPathStatus.Fatal; if (exception is PotentialMalwareException) return TransferPathStatus.FileBlocked; return TransferPathStatus.Fatal; } } }