protected virtual void AddFilteredContentElement(CurrentLanguageContent languageContentInfo, IList <XElement> xmlElements) { if (ContentFilter.ShouldExcludeContent(languageContentInfo, SiteSettings, SitemapData)) { return; } var content = languageContentInfo.Content; string url; var localizableContent = content as ILocalizable; if (localizableContent != null) { string language = string.IsNullOrWhiteSpace(this.SitemapData.Language) ? languageContentInfo.CurrentLanguage.Name : this.SitemapData.Language; url = this.UrlResolver.GetUrl(content.ContentLink, language); if (string.IsNullOrWhiteSpace(url)) { return; } // Make 100% sure we remove the language part in the URL if the sitemap host is mapped to the page's LanguageBranch. if (this.HostLanguageBranch != null && localizableContent.Language.Name.Equals(this.HostLanguageBranch, StringComparison.InvariantCultureIgnoreCase)) { url = url.Replace(string.Format("/{0}/", this.HostLanguageBranch), "/"); } } else { url = this.UrlResolver.GetUrl(content.ContentLink); if (string.IsNullOrWhiteSpace(url)) { return; } } url = GetAbsoluteUrl(url); var fullContentUrl = new Uri(url); if (this.UrlSet.Contains(fullContentUrl.ToString()) || UrlFilter.IsUrlFiltered(fullContentUrl.AbsolutePath, this.SitemapData)) { return; } XElement contentElement = this.GenerateSiteElement(content, fullContentUrl.ToString()); if (contentElement == null) { return; } xmlElements.Add(contentElement); this.UrlSet.Add(fullContentUrl.ToString()); }
public virtual bool ShouldExcludeContent( CurrentLanguageContent languageContentInfo, SiteDefinition siteSettings, SitemapData sitemapData) { return(ShouldExcludeContent(languageContentInfo.Content)); }
protected virtual void AddFilteredContentElement(CurrentLanguageContent languageContentInfo, IList<XElement> xmlElements) { var content = languageContentInfo.Content; if (ContentFilter.ShouldExcludeContent(content)) { return; } string url; var localizableContent = content as ILocalizable; if (localizableContent != null) { string language = string.IsNullOrWhiteSpace(this.SitemapData.Language) ? languageContentInfo.CurrentLanguage.Name : this.SitemapData.Language; url = this.UrlResolver.GetUrl(content.ContentLink, language); if (string.IsNullOrWhiteSpace(url)) { return; } // Make 100% sure we remove the language part in the URL if the sitemap host is mapped to the page's LanguageBranch. if (this._hostLanguageBranch != null && localizableContent.Language.Name.Equals(this._hostLanguageBranch, StringComparison.InvariantCultureIgnoreCase)) { url = url.Replace(string.Format("/{0}/", this._hostLanguageBranch), "/"); } } else { url = this.UrlResolver.GetUrl(content.ContentLink); if (string.IsNullOrWhiteSpace(url)) { return; } } url = GetAbsoluteUrl(url); var fullContentUrl = new Uri(url); if (this._urlSet.Contains(fullContentUrl.ToString()) || UrlFilter.IsUrlFiltered(fullContentUrl.AbsolutePath, this.SitemapData)) { return; } XElement contentElement = this.GenerateSiteElement(content, fullContentUrl.ToString()); if (contentElement == null) { return; } xmlElements.Add(contentElement); this._urlSet.Add(fullContentUrl.ToString()); }