Exemplo n.º 1
0
        public void AddOrUpdateProductLocale(ProductText productLocale)
        {
            System.Linq.Expressions.Expression <Func <ProductText, bool> > expresion =
                (p => p.ProductId == productLocale.ProductId && p.Locale.Equals(productLocale.Locale));

            _dbLocaleRepository.AddOrUpdateRecord(productLocale, expresion);
        }
        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.º 3
0
        private void InsertAvailableProducts(List <ProductLocaleList> availableProducts)
        {
            ProductText productLocale;

            foreach (ProductLocaleList productRowRecord in availableProducts)
            {
                // Insert for each locale product information.
                foreach (ProductInfo productInfo in productRowRecord.Products)
                {
                    productLocale = new ProductText();

                    // Insert product
                    productLocale.ProductId   = _dbRepository.AddProduct(productInfo);
                    productLocale.Locale      = productRowRecord.Locale;
                    productLocale.Name        = productInfo.ProductName;
                    productLocale.Slogon      = productInfo.ProductSlogon;
                    productLocale.Description = productInfo.ProductDescription;

                    _dbRepository.AddOrUpdateProductLocale(productLocale);
                }
            }
        }
Exemplo n.º 4
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.º 5
0
        public bool Parse(XmlNode profileBodyNode)
        {
            bool result = false;

            if (profileBodyNode != null)
            {
                foreach (XmlNode childNode in profileBodyNode.ChildNodes)
                {
                    if (childNode.Name == "vendorName")
                    {
                        VendorName = childNode.InnerXml;
                    }
                    else if (childNode.Name == "deviceFamily")
                    {
                        if (!DeviceFamily.Parse(childNode))
                        {
                            result = false;
                            break;
                        }
                    }
                    else if (childNode.Name == "productFamily")
                    {
                        ProductFamily = childNode.InnerXml;
                    }
                    else if (childNode.Name == "productName")
                    {
                        ProductName = childNode.InnerXml;
                        result      = true;
                    }
                    else if (childNode.Name == "productText")
                    {
                        if (!ProductText.Parse(childNode))
                        {
                            result = false;
                            break;
                        }
                    }
                    else if (childNode.Name == "productUrl")
                    {
                        if (!ProductUrl.Parse(childNode))
                        {
                            result = false;
                            break;
                        }
                    }
                    else if (childNode.Name == "productPicture")
                    {
                        ProductPicture = childNode.InnerXml;
                    }
                    else if (childNode.Name == "orderNumber")
                    {
                        OrderNumber = childNode.InnerXml;
                    }
                    else if (childNode.Name == "version")
                    {
                        if (!DeviceVersion.Parse(childNode))
                        {
                            result = false;
                            break;
                        }
                    }
                }

                if (result)
                {
                    UpdateDeviceVersion();
                    UpdateProductName();
                    UpdateProductPicture();
                }
            }

            return(result);
        }
 /// <summary>
 /// Returns url to get selected rusult page.
 /// </summary>
 /// <param name="pageNum">Number of needed page.</param>
 /// <returns>String containing url.</returns>
 protected override string GetNonFirstRequestUrl(int pageNum)
 {
     return String.Format("http://www.blocket.se/hela_sverige?q={0}&cg=0&w=3&st=s&ca=11&l=0&md=th&o={1}",
             HttpUtility.UrlEncode(ProductText.Replace(' ', '+'),Encoding), pageNum);
 }
Exemplo n.º 7
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);
        }