//método para retornar a consulta de Motoristas para o Angular.. public JsonResult ConsultarMotoristas() { try { //declarar uma lista da classe MotoristaConsultaViewModel.. List <MotoristaConsultaViewModel> lista = new List <MotoristaConsultaViewModel>(); //varrer cada motorista abtido do banco de dados MotoristaRepository rep = new MotoristaRepository(); foreach (Motorista m in rep.FindAll()) { MotoristaConsultaViewModel model = new MotoristaConsultaViewModel(); model.IdMotorista = m.IdMotorista; model.Nome = m.Nome; model.Cpf = m.Cpf; model.Telefone = m.Telefone; lista.Add(model); //adicionando na lista.. } //retornando a lista return(Json(lista, JsonRequestBehavior.AllowGet)); } catch (Exception e) { //retornar erro.. return(Json(e.Message, JsonRequestBehavior.AllowGet)); } }
//método para retornar o relatorio de Motoristas.. public void Relatorio() { //criando o conteudo do relatorio.. StringBuilder conteudo = new StringBuilder(); conteudo.Append("<h1 class='titulo'>Relatório de Motoristas</h1>"); conteudo.Append($"<p>Relatório gerado em: {DateTime.Now} </p>"); conteudo.Append("<br/>"); conteudo.Append("<table>"); conteudo.Append("<tr>"); conteudo.Append("<th>Código do Motorista</th>"); conteudo.Append("<th>Nome</th>"); conteudo.Append("<th>Cpf </th>"); conteudo.Append("<th>Telefone</th>"); conteudo.Append("</tr>"); MotoristaRepository rep = new MotoristaRepository(); foreach (Motorista m in rep.FindAll()) { conteudo.Append("<tr>"); conteudo.Append($"<td>{m.IdMotorista}</td>"); conteudo.Append($"<td>{m.Nome}</td>"); conteudo.Append($"<td>{m.Cpf}</td>"); conteudo.Append($"<td>{m.Telefone}</td>"); conteudo.Append("</tr>"); } conteudo.Append("</table>"); //buscando o arquivo CSS.. var css = Server.MapPath("/css/relatorio.css"); //transformando o conteudo em arquivo PDF.. ReportsUtil util = new ReportsUtil(); byte[] pdf = util.GetPDF(conteudo.ToString(), css); //Download.. Response.Clear(); Response.ContentType = "application/pdf"; Response.AddHeader("content-disposition", "attachment; filename=relatorio.pdf"); Response.Cache.SetCacheability(HttpCacheability.NoCache); Response.BinaryWrite(pdf); Response.End(); }