QualityBot.Scrapers.WebRequestUtil.HeadCheck C# (CSharp) Method

HeadCheck() public method

public HeadCheck ( IEnumerable resources ) : QualityBot.ScrapePocos.Resource[]
resources IEnumerable
return QualityBot.ScrapePocos.Resource[]
        public Resource[] HeadCheck(IEnumerable<object> resources)
        {
            var pageResources = new List<Resource>();
            foreach (var resource in resources.Where(r => r != null).Select(r => r.ToString()).Where(r => !string.IsNullOrWhiteSpace(r)))
            {
                string statusDescription;
                HttpStatusCode statusCode;
                var headers = new List<string>();

                try
                {
                    _client.DoGetUrlHeadOnly(resource);
                }
                catch
                {
                    /* This will fail if for most status codes (404 would be the classic example).
                     * This can safely be ignored.
                     */
                }
                finally
                {
                    statusCode = _client.StatusCode;
                    statusDescription = _client.StatusDescription;
                    if (_client.ResponseHeaders != null)
                    {
                        headers.AddRange(from key in _client.ResponseHeaders.AllKeys where key != null select string.Format("{0}:{1}", key, _client.ResponseHeaders[key] ?? string.Empty));
                    }
                }

                pageResources.Add(
                    new Resource
                        {
                            Uri = resource,
                            StatusCode = statusCode,
                            StatusDescription = statusDescription,
                            Headers = headers
                        });
            }

            return pageResources.ToArray();
        }