public List <string> ParseUrlsFromSitemap(string sitemapUrl)
        {
            var result = new List <string>();

            var request  = HttpWebRequest.Create(sitemapUrl) as HttpWebRequest;
            var response = request.GetResponse() as HttpWebResponse;

            if (response.ContentType.StartsWith("text/xml") || response.ContentType.StartsWith("application/xml"))
            {
                result = UrlMethods.ReadSitemapXml(sitemapUrl);
            }
            else if (response.ContentType.StartsWith("text/plain"))
            {
                result = UrlMethods.ReadSitemapTxt(sitemapUrl);
            }

            return(result);
        }
        public string LocateSitemap(string url)
        {
            string sitemapUrl = url.EndsWith('/') ? url + "sitemap.xml" : url + "/sitemap.xml";

            if (UrlMethods.UrlIsValid(sitemapUrl))
            {
                return(sitemapUrl);
            }

            string robotsUrl = url.EndsWith('/') ? url + "robots.txt" : url + "/robots.txt";

            if (UrlMethods.UrlIsValid(robotsUrl))
            {
                string resultUrl = UrlMethods.ReadRobots(robotsUrl);
                return(resultUrl);
            }

            return(null);
        }
        public long MeasureResponseTime(string url)
        {
            long result = -1;

            if (!UrlMethods.UrlIsValid(url))
            {
                return(result);
            }

            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);

            var timer = new Stopwatch();

            timer.Start();

            HttpWebResponse response = (HttpWebResponse)request.GetResponse();

            timer.Stop();

            result = timer.ElapsedMilliseconds;

            return(result);
        }