private void AddForumThreadUrls(HttpContext context, XmlTextWriter xmlTextWriter) { SiteSettings siteSettings = CacheHelper.GetCurrentSiteSettings(); if (siteSettings == null) { return; } if (siteSettings.SiteGuid == Guid.Empty) { return; } string baseUrl = SiteUtils.GetNavigationSiteRoot() + "/Forums/Thread.aspx?pageid="; if ((siteSettings.UseSslOnAllPages) && (SiteUtils.SslIsAvailable())) { baseUrl = baseUrl.Replace("http:", "https:"); } else { baseUrl = baseUrl.Replace("https:", "http:"); } using (IDataReader reader = ForumThread.GetThreadsForSiteMap(siteSettings.SiteId)) { while (reader.Read()) { string pageViewRoles = reader["AuthorizedRoles"].ToString(); string moduleViewRoles = reader["ViewRoles"].ToString(); bool include = ( (pageViewRoles.Contains("All Users")) && ((moduleViewRoles.Length == 0) || (moduleViewRoles.Contains("All Users"))) ); if (!include) { continue; } xmlTextWriter.WriteStartElement("url"); xmlTextWriter.WriteElementString( "loc", baseUrl // /Forums/Thread.aspx?pageid= + reader["PageID"].ToString() + "&t=" + reader["ThreadID"].ToString() + "~-1" // the full thread view without paging ); xmlTextWriter.WriteElementString( "lastmod", Convert.ToDateTime(reader["MostRecentPostDate"]).ToString("u", CultureInfo.InvariantCulture).Replace(" ", "T")); //xmlTextWriter.WriteElementString("changefreq", "monthly"); xmlTextWriter.WriteElementString("priority", "0.5"); xmlTextWriter.WriteEndElement(); //url } } }