public static List <TreeViewItemModel> ToKendoTreeViewItemModelList_todo(this DocumentTreeModels documents) { List <Kendo.Mvc.UI.TreeViewItemModel> result = null; if (documents?.Documents == null || !documents.Documents.Any()) { return(null); } var topMenuItems = DocumentTreeModelsExtensions.GetChildItems(documents, 0); result = new List <TreeViewItemModel>(); foreach (var topMenuItem in topMenuItems) { TreeViewItemModel topMenuTreeItem = DocumentTreeModelsExtensions.CreateKendoTreeViewModel(topMenuItem); result.Add(topMenuTreeItem); if (!topMenuItem.IsDocument) { var children = DocumentTreeModelsExtensions.GetChildItems(documents, topMenuItem.Id); if (children != null && children.Any()) { DocumentTreeModelsExtensions.ProcessSubDocuments(documents, children, ref topMenuTreeItem); } } } return(result); }
private static void ProcessSubDocuments(DocumentTreeModels documents, List <DocumentTreeModel> children, ref TreeViewItemModel parent) { foreach (var child in children) { var item = DocumentTreeModelsExtensions.CreateKendoTreeViewModel(child); parent.Items.Add(DocumentTreeModelsExtensions.CreateKendoTreeViewModel(child)); if (!child.IsDocument) { var subchildren = DocumentTreeModelsExtensions.GetChildItems(documents, child.Id); if (subchildren == null || !subchildren.Any()) { continue; } DocumentTreeModelsExtensions.ProcessSubDocuments(documents, subchildren, ref item); } } }