public string GetXmlSitemap() { var activeLanguages = _languageRepository.GetActiveLanguages(); _isMultilingual = activeLanguages != null && activeLanguages.Count > 0; _enabledLanguages = _isMultilingual ? activeLanguages.Select(al => al.CultureCode).ToList() : null; var isSecureConnection = _httpContextAccessor.HttpContext.Request.IsHttps; _requestHost = _httpContextAccessor.HttpContext.Request.Host.Host; var scheme = isSecureConnection ? "https://" : "http://"; _protocolHost = scheme + _requestHost; var publicPages = _navigation.GetPublicPages(); List <SitemapUrl> sitemapUrls = new List <SitemapUrl>(); if (publicPages != null && publicPages.Count > 0) { foreach (var page in publicPages) { sitemapUrls.Add(GetSitemapUrl(page)); } } XmlWriterSettings settings = new XmlWriterSettings(); settings.Indent = true; settings.Encoding = Encoding.UTF8; using (var stringWriter = new StringWriterUtf8()) { using (var writer = XmlWriter.Create(stringWriter, settings)) { // build header writer.WriteStartElement("urlset", "http://www.sitemaps.org/schemas/sitemap/" + SITEMAP_VERSION); writer.WriteAttributeString("xmlns", "xsi", null, "http://www.w3.org/2001/XMLSchema-instance"); writer.WriteAttributeString("xmlns", "xhtml", null, "http://www.w3.org/1999/xhtml"); var schemaLocation = "http://www.sitemaps.org/schemas/sitemap/" + SITEMAP_VERSION; writer.WriteAttributeString("xsi", "schemaLocation", null, string.Format("{0} {0}/sitemap.xsd", schemaLocation)); // write urls to output foreach (SitemapUrl url in sitemapUrls) { AddURL(url, writer); } writer.WriteEndElement(); writer.Close(); } return(stringWriter.ToString()); } }
public List <Language> GetActiveLanguages() { try { var enabledLanguages = _languageRepository.GetActiveLanguages(); return(enabledLanguages); } catch (Exception ex) { _logger.LogError("Error occured while getting active languages", ex); throw ex; } }
private Dictionary <string, string> InitParentUrls() { var activeLanguages = _languageRepository.GetActiveLanguages(); Dictionary <string, string> parentURLs = new Dictionary <string, string>(); if (activeLanguages != null && activeLanguages.Count > 1) { foreach (var lang in activeLanguages) { parentURLs.Add(lang.CultureCode, lang.CultureCode.ToLower()); } } else { parentURLs.Add(Globals.FallbackLanguage, ""); } return(parentURLs); }
public List <Language> GetActiveLanguages() { var enabledLanguages = _languageRepository.GetActiveLanguages(); return(enabledLanguages); }