DriveNodeResolverHelper
class DriveNodeResolverHelper
using Relativity.DataTransfer.Nodes.Internal.Helpers;
using System;
using System.Text;
namespace Relativity.DataTransfer.Nodes.Internal.Utilities
{
internal class DriveNodeResolverHelper
{
public static IDrive Resolve(string path, INodeContext context, StringBuilder stringBuilder)
{
if (context.Equals(NullNodeContext.Instance)) {
string rootName = GetRootName(stringBuilder);
if (!IsUncPath(path))
return new LocalDrive($"{rootName}{PathConstants.DirectorySeparatorAsChar}");
return new UncDrive(PathConstants.UncPathShortPrefix + rootName);
}
return new RemoteDrive(context);
}
private static string GetRootName(StringBuilder stringBuilder)
{
return stringBuilder.CutOffBy(PathConstants.DirectorySeparatorAsChar);
}
private static bool IsUncPath(string path)
{
return path.StartsWith(PathConstants.UncPathShortPrefix, StringComparison.Ordinal);
}
}
}