//método para retornar a consulta de produtos para o jquery public JsonResult ConsultarProdutos() { try { List <ProdutoConsultaViewModel> lista = new List <ProdutoConsultaViewModel>(); //executar a consulta de produtos na camada de regras de negócio ProdutoBusiness business = new ProdutoBusiness(); foreach (Produto produto in business.ConsultarTodos()) { ProdutoConsultaViewModel model = new ProdutoConsultaViewModel(); model.IdProduto = produto.IdProduto; model.Nome = produto.Nome; model.Preco = produto.Preco; model.Quantidade = produto.Quantidade; model.Total = produto.Preco * produto.Quantidade; lista.Add(model); //adicionar na lista } return(Json(lista)); //retornando a lista } catch (Exception e) { Response.StatusCode = 500; //INTERNAL SERVER ERROR //retornando mensagem de erro.. return(Json(e.Message)); } }
//evento executado no campo dropdownlist protected void ddlEstoque_SelectedIndexChanged(object sender, EventArgs e) { try { //verificar se o campo dropdownlist não esta vazio.. if (!string.IsNullOrEmpty(ddlEstoque.SelectedValue)) { //resgatar o id do estoque selecionado.. int idEstoque = int.Parse(ddlEstoque.SelectedValue); ProdutoBusiness business = new ProdutoBusiness(); List <Produto> lista = business.ConsultarTodos(idEstoque); lblmensagem.Text = "Quantidade de produtos neste estoque: " + lista.Count; gridProdutos.DataSource = lista; gridProdutos.DataBind(); } else { CarregarProdutos(); } } catch (Exception ex) { lblmensagem.Text = ex.Message; } }
//método para realizar o download do relatório em PDF.. //URL: Produto/Relatorio public void Relatorio() { try { //PASSO 1) Escrever o conteúdo do relatório em formato HTML StringBuilder conteudo = new StringBuilder(); conteudo.Append("<h2>Relatório de Produtos</h2>"); conteudo.Append($"Relatório gerado em: {DateTime.Now}"); conteudo.Append("<br/><br/>"); conteudo.Append("<table border='1' style='width: 100%'>"); conteudo.Append("<tr>"); conteudo.Append("<th>Código</th>"); conteudo.Append("<th>Nome do Produto</th>"); conteudo.Append("<th>Preço</th>"); conteudo.Append("<th>Quantidade</th>"); conteudo.Append("</tr>"); //buscar os produtos na base de dados ProdutoBusiness business = new ProdutoBusiness(); List <Produto> lista = business.ConsultarTodos(); //percorrer a lista.. foreach (Produto produto in lista) { conteudo.Append("<tr>"); conteudo.Append($"<td>{produto.IdProduto}</td>"); conteudo.Append($"<td>{produto.Nome}</td>"); conteudo.Append($"<td>{produto.Preco}</td>"); conteudo.Append($"<td>{produto.Quantidade}</td>"); conteudo.Append("</tr>"); } conteudo.Append("</table>"); conteudo.Append("<br/>"); conteudo.Append($"Quantidade de registros: {lista.Count}"); //PASSO 2) Utilizando o iTextSharp para transformar //o conteudo HTML do passo 1 em um arquivo PDF byte[] pdf = null; MemoryStream ms = new MemoryStream(); TextReader reader = new StringReader(conteudo.ToString()); Document doc = new Document(PageSize.A4, 50, 50, 50, 50); PdfWriter writer = PdfWriter.GetInstance(doc, ms); HTMLWorker html = new HTMLWorker(doc); doc.Open(); html.StartDocument(); html.Parse(reader); html.EndDocument(); html.Close(); doc.Close(); pdf = ms.ToArray(); //PASSO 3) Utilizar o MVC para fazer o download do PDF Response.Clear(); Response.ContentType = "application/pdf"; Response.AddHeader("content-disposition", "attachment; filename=relatorio.pdf"); Response.Cache.SetCacheability(HttpCacheability.NoCache); Response.BinaryWrite(pdf); Response.End(); } catch (Exception e) { Debug.WriteLine(e.Message); } }