Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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;
        }