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)); } }
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()); }
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); }
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); }