/** -------------------------------------------------------------------- **/ private void GenerateTextSitemapPdfEntries( MacroscopeDocument msDoc, List <string> SitemapText, Dictionary <string, Boolean> Dedupe ) { foreach (MacroscopeHyperlinkOut HyperlinkOut in msDoc.IterateHyperlinksOut()) { string Url = HyperlinkOut.GetTargetUrl(); Uri UrlParsed = new Uri(uriString: Url); if (Dedupe.ContainsKey(Url)) { continue; } else { Dedupe.Add(Url, true); } if (!UrlParsed.AbsolutePath.ToLower().EndsWith(".pdf", StringComparison.InvariantCultureIgnoreCase)) { continue; } if (!this.DocCollection.GetAllowedHosts().IsAllowedFromUrl(Url: Url)) { continue; } if (!MacroscopeUrlUtils.VerifySameHost(BaseUrl: msDoc.GetUrl(), Url: Url)) { continue; } SitemapText.Add(Url); } }
/** -------------------------------------------------------------------- **/ private void GenerateXmlSitemapPdfEntries( MacroscopeDocument msDoc, XmlDocument SitemapXml, XmlElement UrlSetNode, Dictionary <string, Boolean> Dedupe ) { foreach (MacroscopeHyperlinkOut HyperlinkOut in msDoc.IterateHyperlinksOut()) { string Url = HyperlinkOut.GetTargetUrl(); Uri UrlParsed = new Uri(uriString: Url); if (Dedupe.ContainsKey(Url)) { continue; } else { Dedupe.Add(Url, true); } if (!UrlParsed.AbsolutePath.ToLower().EndsWith(".pdf", StringComparison.InvariantCultureIgnoreCase)) { continue; } if (!this.DocCollection.GetAllowedHosts().IsAllowedFromUrl(Url: Url)) { continue; } if (!MacroscopeUrlUtils.VerifySameHost(BaseUrl: msDoc.GetUrl(), Url: Url)) { continue; } XmlElement UrlNode = SitemapXml.CreateElement(string.Empty, "url", MacroscopeSitemapGenerator.XmlNamespace); UrlSetNode.AppendChild(UrlNode); { XmlElement EntryNode = SitemapXml.CreateElement(string.Empty, "loc", MacroscopeSitemapGenerator.XmlNamespace); XmlText TextNode = SitemapXml.CreateTextNode(Url); UrlNode.AppendChild(EntryNode); EntryNode.AppendChild(TextNode); } { XmlElement EntryNode = SitemapXml.CreateElement(string.Empty, "changefreq", MacroscopeSitemapGenerator.XmlNamespace); XmlText TextNode = SitemapXml.CreateTextNode("daily"); UrlNode.AppendChild(EntryNode); EntryNode.AppendChild(TextNode); } { XmlElement EntryNode = SitemapXml.CreateElement(string.Empty, "priority", MacroscopeSitemapGenerator.XmlNamespace); XmlText TextNode = SitemapXml.CreateTextNode("1.0"); UrlNode.AppendChild(EntryNode); EntryNode.AppendChild(TextNode); } } }