private IEnumerable <LinkToCheck> CollectLinksToCheck(XDocument document, XElement reportElement, string pageUrl, string pageServerUrl) { var result = new List <LinkToCheck>(); foreach (var a in document.Descendants(Namespaces.Xhtml + "a")) { var hrefAttr = a.Attribute("href"); if (hrefAttr == null) { continue; } string urlStr = a.Attribute("href").Value; var href = HttpUtility.UrlDecode(urlStr).Trim(); if (!UrlHelper.IsHttpLink(href) || UrlHelper.ToBeIgnored(href)) { continue; } BrokenLinkType brokenLinkType; RequestValidationInfo rvi; var preprocessingResult = PreprocessUrl(href, pageUrl, pageServerUrl, out brokenLinkType, out rvi); if (preprocessingResult == UrlPreprocessResult.Valid) { continue; } var item = new LinkToCheck { Href = href, LinkNode = a, ReportPageNode = reportElement, PageServerUrl = pageServerUrl, RequestValidationInfo = rvi }; result.Add(item); } return(result); }
private IEnumerable<LinkToCheck> CollectLinksToCheck(XDocument document, XElement reportElement, string pageUrl, string pageServerUrl) { var result = new List<LinkToCheck>(); foreach (var a in document.Descendants(Namespaces.Xhtml + "a")) { var hrefAttr = a.Attribute("href"); if (hrefAttr == null) { continue; } string urlStr = a.Attribute("href").Value; var href = HttpUtility.UrlDecode(urlStr).Trim(); if (!UrlHelper.IsHttpLink(href) || UrlHelper.ToBeIgnored(href)) { continue; } BrokenLinkType brokenLinkType; RequestValidationInfo rvi; var preprocessingResult = PreprocessUrl(href, pageUrl, pageServerUrl, out brokenLinkType, out rvi); if (preprocessingResult == UrlPreprocessResult.Valid) { continue; } var item = new LinkToCheck { Href = href, LinkNode = a, ReportPageNode = reportElement, PageServerUrl = pageServerUrl, RequestValidationInfo = rvi }; result.Add(item); } return result; }