public void Add(TreeDimensionDto treeDimension)
 {
     if (treeDimension.ParentId == null)
     {
         RootDimensions.Add(treeDimension);
     }
     else
     {
         var parentDimension = GetDimensionDto(treeDimension.ParentId.Value);
         if (parentDimension.Children == null)
         {
             parentDimension.Children = new List <TreeDimensionDto>();
         }
         parentDimension.Children.Add(treeDimension);
     }
 }
 public bool IsRoot(int id)
 {
     return(RootDimensions.Select(d => d.Id).Contains(id));
 }
 public TreeDimensionDto GetDimensionDto(int id)
 {
     return(RootDimensions
            .Select(rootDimension => rootDimension.GetDimensionDto(id))
            .SingleOrDefault(childDimensionDto => childDimensionDto != null));
 }