private static List <FolderDtoModel> AddToTree(List <FolderDtoModel> source, FolderDtoModel folderDtoModelForAdd)
        {
            folderDtoModelForAdd.Children = source.Where(x => x.ParentId == folderDtoModelForAdd.Id).ToList(); // find children folder
            foreach (var folderDtoModel in folderDtoModelForAdd.Children)                                      // if we have children, check if children also have children
            {
                folderDtoModel.Children = AddToTree(source, folderDtoModel);
            }

            return(folderDtoModelForAdd.Children);
        }
 private static void AddChildren(FolderDtoModel node, IDictionary <int, List <FolderDtoModel> > source)
 {
     if (source.ContainsKey(node.Id))
     {
         node.Children = source[node.Id];
         foreach (var t in node.Children.OrderBy(x => x.Name))
         {
             AddChildren(t, source);
         }
     }
     else
     {
         node.Children = new List <FolderDtoModel>();
     }
 }