PathValidationResult
using Relativity.Transfer.Resources;
namespace Relativity.Transfer
{
public class PathValidationResult
{
public string ErrorMessage { get; }
public TransferPath ValidatedPath { get; }
public PathValidationStatus Status { get; }
public bool IsOk => Status.Equals(PathValidationStatus.Ok);
private PathValidationResult(PathValidationStatus status, TransferPath validatedPath, string errorMessage = "")
{
Status = status;
ErrorMessage = errorMessage;
ValidatedPath = validatedPath;
}
public static PathValidationResult Ok(TransferPath transferPath)
{
return new PathValidationResult(PathValidationStatus.Ok, transferPath, "");
}
public static PathValidationResult Error(TransferPath validatedPath, PathValidationStatus status, string errorMessage)
{
return new PathValidationResult(status, validatedPath, errorMessage);
}
public ErrorPath CreatesErrorPath()
{
switch (Status) {
case PathValidationStatus.SourcePathTooLong:
return new ErrorPath(ValidatedPath.SourcePath, ErrorMessage);
case PathValidationStatus.TargetPathToLong:
return new ErrorPath(ValidatedPath.TargetPath, ErrorMessage);
case PathValidationStatus.WrongFileType:
return new ErrorPath(ValidatedPath.SourcePath, ErrorMessage);
default:
return new ErrorPath(ValidatedPath.ToString(), CoreStrings.UnsupportedValidationResult);
}
}
}
}