DirectoryNode
using System;
using System.Linq;
namespace Relativity.DataTransfer.Nodes
{
public class DirectoryNode : Node, IDirectory, INode
{
public DateTime Modified { get; }
public long? TotalSize { get; set; }
public long? TotalFiles { get; set; }
public long? TotalFolders { get; set; }
public DirectoryNode(string name, INode parentNode, DateTime modified)
: base(name, parentNode)
{
ValidateName(name);
Modified = modified;
}
public void SetTotalSize(long totalSize)
{
TotalSize = totalSize;
}
public void SetTotalFiles(long totalFiles)
{
TotalFiles = totalFiles;
}
public void SetTotalFolders(long totalFolders)
{
TotalFolders = totalFolders;
}
private static void ValidateName(string name)
{
if (Enumerable.Contains(name, PathConstants.DirectorySeparatorAsChar))
throw new ArgumentException("name cannot contain directory separator character");
}
}
}