コード例 #1
0
ファイル: SitemapManager.cs プロジェクト: shuk/Cortoxa
        protected void NormalizeFields(SitemapNode node, SitemapRoute route = null, string[] roles = null)
        {
            if (route != null)
            {
                if (node.Route == null)
                {
                    node.Route = route;
                }
                else if (string.IsNullOrEmpty(node.Route.Controller))
                {
                    node.Route.Controller = route.Controller;
                }
            }

            if (node.Roles == null && roles != null)
            {
                node.Roles = roles;
            }


            if (node.Children != null)
            {
                foreach (var child in node.Children)
                {
                    NormalizeFields(child, node.Route, node.Roles);
                }
            }
        }
コード例 #2
0
        public XElement GetSitemapRoute(SitemapRoute route)
        {
            XNamespace xmlns   = "http://www.sitemaps.org/schemas/sitemap/0.9";
            var        rootUrl = GetRootPath();
            string     url     = route.Url;

            if (!Regex.IsMatch(route.Url, @"^\w+://.*$"))
            {
                url = rootUrl + route.Url.TrimStart('/');
            }


            var element = new XElement(xmlns + "url");

            element.Add(new XElement(xmlns + "loc", url));
            element.Add(new XElement(xmlns + "changefreq", route.UpdateFrequency));
            if (route.LastUpdated.HasValue)
            {
                element.Add(new XElement(xmlns + "lastmod", route.LastUpdated.Value.ToString("yyyy-MM-dd")));
            }
            var priority = (route.Priority - 1) / 4.0;

            if (priority >= 0.0 && priority <= 1.0)
            {
                element.Add(new XElement(xmlns + "priority", (route.Priority - 1) / 4.0));
            }


            return(element);
        }