FileNode
using System;
using System.Linq;
namespace Relativity.DataTransfer.Nodes
{
public class FileNode : Node, IFile, INode
{
public DateTime Modified { get; }
public string Extension { get; }
public long Size { get; }
public FileNode(string name, INode parentNode, DateTime modified, long size)
: base(name, parentNode)
{
ValidateName(name);
Modified = modified;
Size = size;
Extension = CalculateFileExtension();
}
private static void ValidateName(string name)
{
if (Enumerable.Contains(name, PathConstants.DirectorySeparatorAsChar))
throw new ArgumentException("name cannot contain directory separator character");
}
private string CalculateFileExtension()
{
string[] array = base.Name.Split(new char[1] {
'.'
});
if (array.Length > 1)
return "." + array.LastOrDefault();
return string.Empty;
}
}
}