private BaseNode DoSPList(Microsoft.SharePoint.Client.List list, BaseNode parentNode, BaseNode rootNode) { list.EnsureProperties(l => l.RootFolder, l => l.BaseType, l => l.ContentTypes, l => l.Fields); ListNode listNode = parentNode as ListNode; // Add Content Type Container node BaseNode listContentTypeContainerNode = new ContentTypeContainerNode(list.ContentTypes); listNode.Children.Add(listContentTypeContainerNode); listContentTypeContainerNode.ParentNode = listNode; listContentTypeContainerNode.RootNode = rootNode; listContentTypeContainerNode.NodeConnector = this; // Add Field Container node BaseNode fieldContainerNode = new FieldContainerNode(list.Fields); listNode.Children.Add(fieldContainerNode); fieldContainerNode.ParentNode = listNode; fieldContainerNode.RootNode = rootNode; fieldContainerNode.NodeConnector = this; // Add immediate children of the root folder BaseNode rootFolder = this.DoSPFolder(list.RootFolder, listNode, rootNode, true); foreach (var subFolder in rootFolder.Children) { listNode.Children.Add(subFolder); } return(listNode); }
private BaseNode DoSPWeb(Web web, BaseNode parentNode, BaseNode rootNode) { BaseNode myNode = null; try { myNode = new WebNode(web); parentNode.Children.Add(myNode); myNode.ParentNode = parentNode; myNode.RootNode = rootNode; myNode.NodeConnector = this; myNode.LoadedData = true; web.Context.Load(web.Webs); web.Context.Load(web.Lists); web.Context.ExecuteQuery(); try { foreach (Web childWeb in web.Webs) { //doSPWeb(childWeb, myNode, rootNode); //Draw the nodes - user will expand them later if necessary BaseNode childNode = new WebNode(childWeb); myNode.Children.Add(childNode); childNode.ParentNode = parentNode; childNode.RootNode = rootNode; childNode.NodeConnector = this; } } catch (Exception ex) { SPCoderLogging.Logger.Error($"Error expanding Web: {ex.Message}"); return(myNode); } // Add Content Type Container node BaseNode contentTypeContainerNode = new ContentTypeContainerNode(web.ContentTypes); myNode.Children.Add(contentTypeContainerNode); contentTypeContainerNode.ParentNode = myNode; contentTypeContainerNode.RootNode = rootNode; contentTypeContainerNode.NodeConnector = this; // Add Field Container node BaseNode fieldContainerNode = new FieldContainerNode(web.Fields); myNode.Children.Add(fieldContainerNode); fieldContainerNode.ParentNode = myNode; fieldContainerNode.RootNode = rootNode; fieldContainerNode.NodeConnector = this; foreach (Microsoft.SharePoint.Client.List list in web.Lists) { BaseNode myListNode = new ListNode(list); myNode.Children.Add(myListNode); myListNode.ParentNode = myNode; myListNode.RootNode = rootNode; myListNode.NodeConnector = this; } return(myNode); } catch (Exception ex) { SPCoderLogging.Logger.Error($"Error expanding Web: {ex.Message}"); return(myNode); } }