//método para retornar a consulta de Proprietario para o Angular.. public JsonResult ConsultarProprietarios() { try { //declarar uma lista da classe ProprietarioConsultaViewModel.. List <ProprietarioConsultaViewModel> lista = new List <ProprietarioConsultaViewModel>(); //varrer cada proprietario obtido do banco de dados ProprietarioRepository rep = new ProprietarioRepository(); foreach (Proprietario p in rep.FindAll()) { ProprietarioConsultaViewModel model = new ProprietarioConsultaViewModel(); model.IdProprietario = p.IdProprietario; model.Nome = p.Nome; model.Cnpj = p.Cnpj; lista.Add(model); //adicionando na lista.. } //retornando a lista return(Json(lista, JsonRequestBehavior.AllowGet)); } catch (Exception e) { return(Json(e.Message, JsonRequestBehavior.AllowGet)); } }
//metodo para excluir um proprietario.. public JsonResult ExcluirProprietario(int idProprietario) { try { //buscar o Proprietario na base de dados pelo id.. ProprietarioRepository rep = new ProprietarioRepository(); int qtdAutomoveis = rep.QtdAutomoveis(idProprietario); int qtdCaminhoes = rep.QtdCaminhoes(idProprietario); if (qtdAutomoveis > 0 & qtdCaminhoes > 0) { return(Json($"A Empresa não pode ser excluído, pois possui {qtdAutomoveis & qtdCaminhoes} Veículos cadastrados.", JsonRequestBehavior.AllowGet)); } else { Proprietario p = rep.FindById(idProprietario); //excluindo o Proprietario.. rep.Delete(p); //retornando mensagem de sucesso.. return(Json($"Empresa {p.Nome}, excluído com sucesso.", JsonRequestBehavior.AllowGet)); } } catch (Exception e) { return(Json(e.Message, JsonRequestBehavior.AllowGet)); } }
//JsonResult -> Receber chamadas AJAX (javascript) public JsonResult CadastrarProprietario(ProprietarioCadastroViewModel model) { //verificar se os dados da model passaram nas validações.. if (ModelState.IsValid) { try { //entidade Proprietario p = new Proprietario(); p.Nome = model.Nome; p.Cnpj = model.Cnpj; //gravar no banco.. ProprietarioRepository rep = new ProprietarioRepository(); rep.Insert(p); return(Json($"Empresa {p.Nome}, cadastrado com sucesso.")); } catch (Exception e) { //retornar mensagem de erro.. return(Json(e.Message)); } } else { //criar uma rotina para retornar as mensagens de erro de //validação para cada campo da classe viewModel.. Hashtable erros = new Hashtable(); //varrer o objeto ModelState.. foreach (var state in ModelState) { //verificar se o elemento contem erro.. if (state.Value.Errors.Count > 0) { //adicionar o erro dentro do Hastable erros[state.Key] = state.Value.Errors .Select(e => e.ErrorMessage).First(); } } //retornar erros de validaçâo..STATUS 400 Response.StatusCode = (int)HttpStatusCode.BadRequest; return(Json(erros)); } }
//método para retornar o relatorio de Proprietarios.. public void Relatorio() { //criando o conteudo do relatorio.. StringBuilder conteudo = new StringBuilder(); conteudo.Append("<h1 class='titulo'>Relatório de empresas</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 da empresa</th>"); conteudo.Append("<th>Nome</th>"); conteudo.Append("<th>Cnpj </th>"); conteudo.Append("</tr>"); ProprietarioRepository rep = new ProprietarioRepository(); foreach (Proprietario p in rep.FindAll()) { conteudo.Append("<tr>"); conteudo.Append($"<td>{p.IdProprietario}</td>"); conteudo.Append($"<td>{p.Nome}</td>"); conteudo.Append($"<td>{p.Cnpj}</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(); }
//método para atualizar proprietario.. public JsonResult AtualizarProprietario(ProprietarioEdicaoViewModel model) { try { //criando um objeto da classe de entidade.. Proprietario p = new Proprietario(); p.IdProprietario = model.IdProprietario; p.Nome = model.Nome; p.Cnpj = model.Cnpj; ProprietarioRepository rep = new ProprietarioRepository(); rep.Update(p); //atualizando.. return(Json($"Empresa {p.Nome}, atualizado com sucesso.")); } catch (Exception e) { return(Json(e.Message)); } }
//método para retornar 1 Proprietario pelo id.. public JsonResult ObterProprietario(int idProprietario) { try { //buscar 1 Proprietario no banco de dados pelo id.. ProprietarioRepository rep = new ProprietarioRepository(); Proprietario p = rep.FindById(idProprietario); //retornando para a página.. ProprietarioConsultaViewModel model = new ProprietarioConsultaViewModel(); model.IdProprietario = p.IdProprietario; model.Nome = p.Nome; model.Cnpj = p.Cnpj; //enviando para a página.. return(Json(model, JsonRequestBehavior.AllowGet)); } catch (Exception e) { //retornar mensagem de erro.. return(Json(e.Message, JsonRequestBehavior.AllowGet)); } }