コード例 #1
0
        public IHttpActionResult GTX1660([FromBody] DTOProdutoPesquisa pesquisa)
        {
            try
            {
                CrawlerService crawlerService = new CrawlerService();
                var            produtos       = crawlerService.PesquisarGTX1660(pesquisa);

                var retornoApi = new
                {
                    data    = produtos,
                    message = produtos.Count > 0 ? "Encontramos preços do(a) GTX 1660" : "Não encontramos preços do(a) 1660"
                };

                if (produtos.Count() > 0)
                {
                    return(Content(HttpStatusCode.Found, retornoApi));
                }
                else
                {
                    return(Content(HttpStatusCode.NoContent, retornoApi));
                }
            }
            catch (Exception ex)
            {
                return(InternalServerError(ex));
            }
        }
コード例 #2
0
        public List <Produto> PesquisarGTX1660(DTOProdutoPesquisa pesquisa)
        {
            PichauCrawler   crawlerPichau = new PichauCrawler();
            TerabyteCrawler crawlerTera   = new TerabyteCrawler();
            List <Produto>  produtos      = new List <Produto>();

            produtos.AddRange(crawlerPichau.GetGTX1660List());
            produtos.AddRange(crawlerTera.GetGTX1660List());

            IQueryable <Produto> produtosConsulta = produtos.AsQueryable();

            if (pesquisa.valor_produto_max.HasValue && pesquisa.valor_produto_max > 0)
            {
                produtosConsulta = produtosConsulta.Where(x => x.Preco <= pesquisa.valor_produto_max);
            }

            if (pesquisa.valor_produto_min.HasValue && pesquisa.valor_produto_min > 0)
            {
                produtosConsulta = produtosConsulta.Where(x => x.Preco >= pesquisa.valor_produto_min);
            }

            if (pesquisa.qtd_itens.HasValue)
            {
                produtosConsulta = produtosConsulta.Take(pesquisa.qtd_itens >= 1 ? (int)pesquisa.qtd_itens : produtosConsulta.Count());
            }

            return(produtosConsulta.OrderBy(p => p.Preco).ToList());
        }
コード例 #3
0
        public List <Produto> PesquisarProduto(DTOProdutoPesquisa valores)
        {
            string            url = $"{_baseUrl}{_baseListaUrl}{CorrigeQueryString(valores.produto)}";
            RetornoRequesicao retornoRequesicao = FazerRequest(url, MetodoRequisicao.GET);

            var listaProdutos = retornoRequesicao.HtmlRetorno.DocumentNode.SelectNodes("//ol[@class='products list items product-items']").FirstOrDefault().Descendants("li").ToList();

            List <Produto> listaProdutosDetalhe = new List <Produto>();

            listaProdutosDetalhe.AddRange(HtmlNodeToProductList(listaProdutos));

            return(listaProdutosDetalhe);
        }
コード例 #4
0
        public List <Produto> PesquisarProduto(DTOProdutoPesquisa produtoPesquisa)
        {
            string url = $"{_baseUrl}{_baseListaUrl}{CorrigeQueryString(produtoPesquisa.produto)}";

            RetornoRequesicao requestTera = FazerRequest(url, MetodoRequisicao.GET);
            List <Produto>    produtos    = new List <Produto>();

            var listaProdutos = requestTera.HtmlRetorno.GetElementbyId("prodarea").SelectNodes("div[@class='pbox col-xs-12 col-sm-6 col-md-3']/div[@class='commerce_columns_item_inner']").ToList();

            produtos.AddRange(HtmlNodeToProductList(listaProdutos));

            return(produtos);
        }