예제 #1
0
        public override List <Webpage> GetWebpageRevisions(Guid webpageID)
        {
            // refresh index
            if (_webpagesUrlDictionary == null)
            {
                GetWebpageUrls();
            }

            List <Webpage> revisions = new List <Webpage>();

            XmlDocument doc = LoadXml("" + webpageID.ToString() + ".xml");

            if (doc != null && _webpagesIDDictionary != null)
            {
                WebpageUrlInfo urlInfo = _webpagesIDDictionary[webpageID];

                XmlNodeList revisionNodes = doc.SelectNodes("//revision");

                foreach (XmlNode revisionNode in revisionNodes)
                {
                    Webpage webpage = new Webpage();
                    webpage.WebpageID  = webpageID;
                    webpage.IsSiteRoot = (webpageID == Guid.Empty);
                    webpage.ParentID   = urlInfo.ParentID;
                    webpage.Url        = urlInfo.Url;

                    ProcessRevisionXml(revisionNode, webpage);

                    revisions.Add(webpage);
                }
            }

            return(revisions);
        }
예제 #2
0
        public override List <WebpageUrlInfo> GetWebpageUrls()
        {
            List <WebpageUrlInfo> urls = new List <WebpageUrlInfo>();

            _webpagesUrlDictionary = new Dictionary <string, Guid>();
            _webpagesIDDictionary  = new Dictionary <Guid, WebpageUrlInfo>();

            // load in pages.xml
            XmlDocument doc   = LoadXml("pages.xml");
            XmlNodeList pages = doc.SelectNodes("//page");

            foreach (XmlNode node in pages)
            {
                WebpageUrlInfo url = new WebpageUrlInfo()
                {
                    WebpageID = GetAttributeGuid(node, "webpageid", Guid.Empty),
                    ParentID  = GetAttributeGuid(node, "parentid", Guid.Empty),
                    Url       = GetAttributeString(node, "url", ""),
                    Title     = GetAttributeString(node, "title", ""),
                    MenuTitle = GetAttributeString(node, "menutitle", "")
                };

                urls.Add(url);
                _webpagesUrlDictionary.Add(url.Url, url.WebpageID);
                _webpagesIDDictionary.Add(url.WebpageID, url);
            }

            return(urls);
        }
예제 #3
0
        public override Webpage GetPublishedWebpage(Guid webpageID)
        {
            Webpage webpage = null;

            // refresh index
            if (_webpagesUrlDictionary == null)
            {
                GetWebpageUrls();
            }

            XmlDocument doc = LoadXml("" + webpageID.ToString() + ".xml");

            if (doc != null && _webpagesIDDictionary != null)
            {
                WebpageUrlInfo urlInfo = _webpagesIDDictionary[webpageID];

                webpage            = new Webpage();
                webpage.WebpageID  = webpageID;
                webpage.IsSiteRoot = (webpageID == Guid.Empty);
                webpage.ParentID   = urlInfo.ParentID;
                webpage.Url        = urlInfo.Url;

                XmlNode revisionNode = doc.SelectSingleNode("//revision[@ispublished='true']");

                if (revisionNode == null)
                {
                    revisionNode = doc.SelectNodes("//revision")[0];
                }

                ProcessRevisionXml(revisionNode, webpage);
            }

            return(webpage);
        }
예제 #4
0
        public override Webpage GetParentWebpage(Guid webpageID)
        {
            Webpage webpage = null;

            WebpageUrlInfo urlInfo = _webpagesIDDictionary[webpageID];

            if (urlInfo != null)
            {
                webpage = GetPublishedWebpage(urlInfo.ParentID);
            }

            return(webpage);
        }
예제 #5
0
        public override List<WebpageUrlInfo> GetWebpageUrls()
        {
            List<WebpageUrlInfo> urls = new List<WebpageUrlInfo>();
            _webpagesUrlDictionary = new Dictionary<string, Guid>();
            _webpagesIDDictionary = new Dictionary<Guid, WebpageUrlInfo>();

            // load in pages.xml
            XmlDocument doc = LoadXml("pages.xml");
            XmlNodeList pages = doc.SelectNodes("//page");

            foreach (XmlNode node in pages)
            {
                WebpageUrlInfo url = new WebpageUrlInfo()
                {
                    WebpageID = GetAttributeGuid(node, "webpageid", Guid.Empty),
                    ParentID = GetAttributeGuid(node, "parentid", Guid.Empty),
                    Url = GetAttributeString(node, "url", ""),
                    Title = GetAttributeString(node, "title", ""),
                    MenuTitle = GetAttributeString(node, "menutitle", "")
                };

                urls.Add(url);
                _webpagesUrlDictionary.Add(url.Url, url.WebpageID);
                _webpagesIDDictionary.Add(url.WebpageID, url);
            }

            return urls;
        }