public override HttpWebResponse GetSearchResultPage(string requestUrl)
        {
            int scope = 2;

            if (ProductText.ToLower().Contains("uddevalla"))
            {
                scope = 0;
            }
            else
            {
                if (ProductText.ToLower().Contains("göteborgs"))
                {
                    scope = 1;
                }
            }
            var cookie = new Cookie("scope", scope.ToString(CultureInfo.InvariantCulture), "/", "www.uddevallatorget.se");

            return(WebRequestHelper.GetResponse(requestUrl, null, new[] { cookie }));
        }
Exemplo n.º 2
0
        public ProductInfo[] ExecuteSearchRequest()
        {
            var searchWords = new List <string>();
            var types       = new List <string>();

            foreach (var word in ProductText.ToLower().Split(' '))
            {
                if (PropertyTypes.Keys.Contains(word))
                {
                    types.Add(PropertyTypes[word]);
                }
                else
                {
                    searchWords.Add(word);
                }
            }

            var subRequests = searchWords.Select(searchWord => new BooliSubRequest(searchWord, Limit, types, false, ProductText));
            var results     = new List <ProductInfo>();

            Parallel.ForEach(subRequests, subRequest =>
            {
                try
                {
                    var result = subRequest.ExecuteSearchRequest();
                    lock (results)
                    {
                        results.AddRange(result);
                    }
                }
                catch (Exception)
                {
                }
            });
            return(results.Take(Limit).ToArray());
        }
Exemplo n.º 3
0
        protected override IEnumerable <ProductInfo> ProccedResultPage(HtmlDocument htmlDoc)
        {
            var productNodes = new List <HtmlNode>();

            GetProducts(htmlDoc.DocumentNode, ref productNodes);
            var result = new List <ProductInfo>();

            foreach (var productNode in productNodes)
            {
                try
                {
                    var info = GetProductInfoFromNode(productNode);
                    if (IsStrictResults)
                    {
                        string[] searchWords = FullSerchText.Split(' ').Where(word => word.ToLower() != ProductText.ToLower()).ToArray();
                        if (info.IsStrict(searchWords))
                        {
                            result.Add(info);
                        }
                    }
                    result.Add(info);
                }
                catch (Exception)
                {
                }
            }
            return(result);
        }