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>(); } }