示例#1
0
        private static SiteMapChangeFrequency GetChangeFrequencyFromAttribute(XmlNode node)
        {
            SiteMapChangeFrequency frequency = SiteMapChangeFrequency.Automatic;

            string stringValue = GetStringValueFromAttribute(node, ChangeFrequencyAttributeName);

            if (!string.IsNullOrEmpty(stringValue))
            {
                frequency = ToEnum(stringValue, SiteMapChangeFrequency.Automatic);
            }

            return(frequency);
        }
示例#2
0
        private static XElement BuildEntry(string url, IFormattable lastModified, SiteMapChangeFrequency frequency, SiteMapUpdatePriority priority, bool forMobile)
        {
            XElement x = new XElement(_ns + "url", new XElement(_ns + "loc", url));

            if (forMobile)
            {
                x.Add(new XElement(_googleMobile + "mobile"));
            }
            else
            {
                string priorityString;

                switch (priority)
                {
                case SiteMapUpdatePriority.Critical:
                {
                    priorityString = "0.9";
                    break;
                }

                case SiteMapUpdatePriority.High:
                {
                    priorityString = "0.7";
                    break;
                }

                case SiteMapUpdatePriority.Low:
                {
                    priorityString = "0.3";
                    break;
                }

                default:
                {
                    priorityString = "0.5";
                    break;
                }
                }

                x.Add(new XElement(_ns + "lastmod", lastModified.ToString("yyyy-MM-dd", Constants.CurrentCulture)), new XElement(_ns + "changefreq", frequency.ToString().ToLowerInvariant()), new XElement(_ns + "priority", priorityString));
            }

            return(x);
        }
示例#3
0
        private static XElement CreateEntry(HttpContextBase context, string rootUrl, string controllerName, string actionName, object values, IFormattable lastModified, SiteMapChangeFrequency frequency, SiteMapUpdatePriority priority, bool forMobile)
        {
            string url = string.Concat(rootUrl, GenerateUrlFrom(context, controllerName, actionName, values));

            return(BuildEntry(url, lastModified, frequency, priority, forMobile));
        }
        public SiteMapNodeBuilder ChangeFrequency(SiteMapChangeFrequency value)
        {
            siteMapNode.ChangeFrequency = value;

            return this;
        }
示例#5
0
        public bool EntryAdd(Uri location, DateTime? lastModified, SiteMapChangeFrequency? changeFreq, decimal? priority)
        {
            XmlDocumentFragment frag = CreateFragment(
                delegate(XmlWriter writer)
                {
                    writer.WriteStartElement("url", "http://www.sitemaps.org/schemas/sitemap/0.9");

                        writer.WriteStartElement("loc", "http://www.sitemaps.org/schemas/sitemap/0.9");
                        writer.WriteValue(location.ToString());
                        writer.WriteEndElement();

                        if (lastModified.HasValue)
                        {
                            writer.WriteStartElement("lastmod", "http://www.sitemaps.org/schemas/sitemap/0.9");
                            writer.WriteValue(CH.ConvertToISO8601DateString(lastModified.Value));
                            writer.WriteEndElement();
                        }
                        if (changeFreq.HasValue)
                        {
                            writer.WriteStartElement("changefreq", "http://www.sitemaps.org/schemas/sitemap/0.9");
                            writer.WriteValue(changeFreq.Value.ToString());
                            writer.WriteEndElement();
                        }

                        if (priority.HasValue)
                        {
                            writer.WriteStartElement("priority", "http://www.sitemaps.org/schemas/sitemap/0.9");
                            writer.WriteValue(priority.Value.ToString());
                            writer.WriteEndElement();
                        }

                    writer.WriteEndElement();
                });

            return FragmentSet(XPSc("r", "urlset"), true, frag);
        }
示例#6
0
 public virtual SiteMapNodeBuilder ChangeFrequency(SiteMapChangeFrequency value)
 {
     this.siteMapNode.ChangeFrequency = value;
     return(this);
 }