public static ContentPageConfiguration GetConfig()
        {
            ContentPageConfiguration contentPageConfig
                = new ContentPageConfiguration();

            //FileInfo contentConfig
            //    = new FileInfo(HttpContext.Current.Server.MapPath("~/Setup/initialcontent/content.config"));

            //XmlDocument contentConfigFile = new XmlDocument();
            //contentConfigFile.Load(contentConfig.FullName);

            //ContentPage.LoadPages(
            //    contentPageConfig,
            //    contentConfigFile.DocumentElement);


            String configFolderName = "~/Setup/initialcontent/pages/";

            string pathToConfigFolder
                = HttpContext.Current.Server.MapPath(configFolderName);

            if (!Directory.Exists(pathToConfigFolder))
            {
                return(contentPageConfig);
            }


            DirectoryInfo directoryInfo
                = new DirectoryInfo(pathToConfigFolder);

            FileInfo[] pageFiles = directoryInfo.GetFiles("*.config");

            foreach (FileInfo fileInfo in pageFiles)
            {
                XmlDocument contentConfigFile = new XmlDocument();
                contentConfigFile.Load(fileInfo.FullName);

                ContentPage.LoadPages(
                    contentPageConfig,
                    contentConfigFile.DocumentElement);
            }

            return(contentPageConfig);
        }
        public static void LoadPages(
            ContentPageConfiguration contentPageConfig,
            XmlNode documentElement)
        {
            if (HttpContext.Current == null)
            {
                return;
            }
            if (documentElement.Name != "siteContent")
            {
                return;
            }

            XmlNode pagesNode = null;

            foreach (XmlNode node in documentElement.ChildNodes)
            {
                if (node.Name == "pages")
                {
                    pagesNode = node;
                    break;
                }
            }

            if (pagesNode == null)
            {
                return;
            }

            foreach (XmlNode node in pagesNode.ChildNodes)
            {
                if (node.Name == "page")
                {
                    ContentPage contentPage = new ContentPage();

                    XmlAttributeCollection attributeCollection
                        = node.Attributes;

                    if (attributeCollection["pageGuid"] != null)
                    {
                        contentPage.pageGuid = new Guid(attributeCollection["pageGuid"].Value);
                    }

                    if (attributeCollection["parentGuid"] != null)
                    {
                        contentPage.parentGuid = new Guid(attributeCollection["parentGuid"].Value);
                    }


                    if (attributeCollection["resourceFile"] != null)
                    {
                        contentPage.resourceFile = attributeCollection["resourceFile"].Value;
                    }

                    if (attributeCollection["name"] != null)
                    {
                        contentPage.name = attributeCollection["name"].Value;
                    }


                    if (attributeCollection["title"] != null)
                    {
                        contentPage.title = attributeCollection["title"].Value;
                    }


                    if (attributeCollection["url"] != null)
                    {
                        contentPage.url = attributeCollection["url"].Value;
                    }

                    if (attributeCollection["menuImage"] != null)
                    {
                        contentPage.menuImage = attributeCollection["menuImage"].Value;
                    }

                    if (attributeCollection["pageOrder"] != null)
                    {
                        int sort = 1;
                        if (int.TryParse(attributeCollection["pageOrder"].Value,
                                         out sort))
                        {
                            contentPage.pageOrder = sort;
                        }
                    }

                    if (attributeCollection["visibleToRoles"] != null)
                    {
                        contentPage.visibleToRoles = attributeCollection["visibleToRoles"].Value;
                    }

                    if (attributeCollection["editRoles"] != null)
                    {
                        contentPage.editRoles = attributeCollection["editRoles"].Value;
                    }

                    if (attributeCollection["draftEditRoles"] != null)
                    {
                        contentPage.draftEditRoles = attributeCollection["draftEditRoles"].Value;
                    }

                    if (attributeCollection["createChildPageRoles"] != null)
                    {
                        contentPage.createChildPageRoles = attributeCollection["createChildPageRoles"].Value;
                    }

                    if (attributeCollection["pageMetaKeyWords"] != null)
                    {
                        contentPage.pageMetaKeyWords = attributeCollection["pageMetaKeyWords"].Value;
                    }

                    if (attributeCollection["pageMetaDescription"] != null)
                    {
                        contentPage.pageMetaDescription = attributeCollection["pageMetaDescription"].Value;
                    }

                    if (
                        (attributeCollection["requireSSL"] != null) &&
                        (attributeCollection["requireSSL"].ToString().ToLower() == "true")
                        )
                    {
                        contentPage.requireSSL = true;
                    }


                    foreach (XmlNode contentFeatureNode in node.ChildNodes)
                    {
                        if (contentFeatureNode.Name == "contentFeature")
                        {
                            ContentPageItem.LoadPageItem(
                                contentPage,
                                contentFeatureNode);
                        }
                    }

                    if (contentPage.pageGuid == Guid.Empty)
                    {
                        log.Error("could not install page " + contentPage.Name
                                  + ". Invalid PageGuid.");
                        return;
                    }


                    contentPageConfig.ContentPages.Add(contentPage);
                }
            }
        }