Example #1
0
        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);
        }
Example #2
0
        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);
            }
        }