Vamos utilizar o método FindOfferList do Wrapper.Net para pesquisarmos ofertas a partir do seu código de barras. Para dar ínicio, efetue o download da nova versão do Wrapper.NET e adicione o arquivo da classe ao seu projeto, ou se preferir, apenas adicione uma referência à biblioteca compilada da classe (.dll) que também está disponível para download.
Vamkos começar este artigo um pouco diferente dos outros. Em vez de começar instanciando um objeto, vamos montar uma tela com alguns componentes do asp.net. Para essa tela, vamos utilizar um TextBox, um Button, um Label e um GridView, dispersos na tela semelhante à imagem abaixo:
A única alteração que fizemos nos componentes foi o ID e o text do botão e do label:
- TextBox
ID: txtBarcode
Width: 200px
- Button
ID: btnFind
Text: Encontrar
- Label
ID: lblMessage
Text: “”
GridView
ID: GridViewOffers
A interface proposta é só para um exemplo simples, até por isso seu funcionamento está bem intuitivo. Devemos digitar o código de barras no campo de texto e realizar a pesquisa ao clicar no botão, preenchendo o grid com os dados encontrados. O Label foi inserido para exibirmos uma mensagem de falha quando não forem encontradas ofertas.
Então, vamos ao código! No evento Click do botão, só vamos testar se o valor do código de barras é válido e invocar o método que criaremos para buscar as ofertas no Buscapé.
protected void btnFind_Click(object sender, EventArgs e)
{
string barcode = txtBarcode.Text;
if (barcode.Length == 0) // Campo vazio
{
lblMessage.Text = “Digite o código de barras do produto desejado.”;
lblMessage.ForeColor = System.Drawing.Color.Red;
// Limpa o Grid quando este já possuir algum dado
GridViewOffers.DataSource = null;
GridViewOffers.DataBind();
}
else
{
lblMessage.Text = string.Empty;
// Preenche o grid com os dados retornados
GridViewOffers.DataSource = FindOffersByBarcode(barcode);
GridViewOffers.DataBind();
}
}
Agora vamos codificar o método FindOffersByBarcode que fará a requisição à API do Buscapé para procurar pelas ofertas com o código de barras digitado. Primeiro, vamos instanciar um objeto da classe Apiki_Buscape_API e outro da classe FiltrosFindOfferList para recuperar o XML filtrando pelo parâmetro barcode. Após recuperar os dados, vamos realizar o parser do XML e transformar os resultados em um objeto do tipo DataSet para setar o Grid.
public DataSet FindOffersByBarcode(string barcode)
{
// Cria os objetos e realiza a busca na API do Buscapé
Apiki_Buscape_API.Apiki_Buscape_API apiBuscape = new Apiki_Buscape_API.Apiki_Buscape_API(“564771466d477a4458664d3d”);
Apiki_Buscape_API.FiltrosFindOfferList filtros = new Apiki_Buscape_API.FiltrosFindOfferList();
filtros.Barcode = barcode;
string result = apiBuscape.FindOfferList(filtros);
// Parser do XML retornado
System.Xml.XmlDocument xmldoc = new System.Xml.XmlDocument();
xmldoc.LoadXml(result);
// Objeto para salvar os dados das ofertas
DataSet ds = new DataSet();
// Recupera somente os nós offer
System.Xml.XmlNodeList offers = xmldoc.GetElementsByTagName(“offer”);
// Nenhuma oferta encontrada limpa o GridView
if ( offers.Count == 0 ) {
lblMessage.Text = “Nenhuma oferta encontrada para o código de barras digitado.”;
lblMessage.ForeColor = System.Drawing.Color.Red;
return null;
}
Aí está o código final do nosso método de busca à API do Buscapé. Após a implementação, teremos da nossa interface um comportamento semelhante à imagem abaixo:





