/// <summary> /// Obtem um cep e converte em Model /// </summary> /// <param name="id"></param> /// <param name="model"></param> /// <param name="mensagemErro"></param> /// <returns></returns> private bool ObterCep(Guid id, ref CepModel model, ref string mensagemErro) { //Preparar a requisição e o retorno RetornoObterDto <CepDto> retorno = new RetornoObterDto <CepDto>(); RequisicaoObterDto requisicaoDto = new RequisicaoObterDto() { Id = id, Identificacao = SessaoUsuario.SessaoLogin.Identificacao, IdUsuario = SessaoUsuario.SessaoLogin.IdUsuario }; //Consumir o serviço CepBll cepBll = new CepBll(true); cepBll.Obter(requisicaoDto, ref retorno); //Tratar o retorno if (retorno.Retorno == false) { mensagemErro = retorno.Mensagem; return(false); } else { //Converter para Model return(model.ConverterDtoParaModel(retorno.Entidade, ref mensagemErro)); } }
public ActionResult ExcluirCep(ExclusaoModel model) { //Se não tiver login, encaminhar para a tela de login if (string.IsNullOrWhiteSpace(SessaoUsuario.SessaoLogin.Identificacao)) { return(RedirectToAction("Login", "Usuario")); } //Preparar requisição e retorno RetornoDto retorno = new RetornoDto(); RequisicaoObterDto requisicaoDto = new RequisicaoObterDto() { Id = model.Id, Identificacao = SessaoUsuario.SessaoLogin.Identificacao, IdUsuario = SessaoUsuario.SessaoLogin.IdUsuario }; //Consumir o serviço CepBll cepBll = new CepBll(true); cepBll.Excluir(requisicaoDto, ref retorno); //Tratar o retorno if (retorno.Retorno == false) { ModelState.AddModelError("", retorno.Mensagem); return(View("Excluir", model)); } TempData["Retorno"] = "EXCLUIDO"; //Voltar para a index de cep return(RedirectToAction("Index")); }
public string ObterListaCepPorLogradouro(string logradouro, string cidade) { //Requisição para obter a lista RequisicaoObterListaDto requisicaoDto = new RequisicaoObterListaDto() { CampoOrdem = "LOGRADOURO", IdUsuario = SessaoUsuario.SessaoLogin.IdUsuario, Identificacao = SessaoUsuario.SessaoLogin.Identificacao, NaoPaginarPesquisa = false, Pagina = 1, NumeroItensPorPagina = 5 }; if (!string.IsNullOrWhiteSpace(cidade)) { requisicaoDto.ListaFiltros.Add("CIDADE", cidade.Trim()); } if (!string.IsNullOrWhiteSpace(logradouro)) { requisicaoDto.ListaFiltros.Add("LOGRADOURO", logradouro.Trim()); } CepBll cepBll = new CepBll(true); RetornoObterListaDto <CepDto> retornoDto = new RetornoObterListaDto <CepDto>(); cepBll.ObterListaFiltrada(requisicaoDto, ref retornoDto); // Se não encontrar nada no banco, pesquisar online if (retornoDto.ListaEntidades.Count <= 0) { HttpClient client = new HttpClient() { BaseAddress = new Uri("https://viacep.com.br/ws/") }; cidade = string.IsNullOrWhiteSpace(cidade) ? "Americana" : cidade.Trim(); client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json")); HttpResponseMessage response = client.GetAsync($"SP/{cidade}/{logradouro.Replace(" ", "+")}/json").Result; if (response.IsSuccessStatusCode) { try { retornoDto.ListaEntidades = response.Content.ReadAsAsync <List <CepDto> >().Result; retornoDto.ListaEntidades.ForEach(o => o.Cidade = o.Localidade); } catch (Exception) { retornoDto.ListaEntidades = new List <CepDto>(); } } } string retorno = new JavaScriptSerializer().Serialize(retornoDto); return(retorno); }
public ActionResult Incluir(CepModel model) { //Se não tiver login, encaminhar para a tela de login if (string.IsNullOrWhiteSpace(SessaoUsuario.SessaoLogin.Identificacao)) { return(RedirectToAction("Login", "Usuario")); } //Validar a model recebida if (!ModelState.IsValid) { return(View(model)); } //Converter para DTO CepDto cepDto = new CepDto(); string mensagemErro = ""; if (!model.ConverterModelParaDto(ref cepDto, ref mensagemErro)) { ModelState.AddModelError("", $"Erro ao converter para Dto: {mensagemErro}"); return(View(model)); } cepDto.Id = Guid.NewGuid(); //Preparar requisição e retorno RetornoDto retorno = new RetornoDto(); RequisicaoEntidadeDto <CepDto> requisicaoDto = new RequisicaoEntidadeDto <CepDto>() { EntidadeDto = cepDto, Identificacao = SessaoUsuario.SessaoLogin.Identificacao, IdUsuario = SessaoUsuario.SessaoLogin.IdUsuario }; //Consumir o serviço CepBll cepBll = new CepBll(true); cepBll.Incluir(requisicaoDto, ref retorno); //Verificar o retorno if (retorno.Retorno == false) { //Se houver erro, exibir na tela de inclusão ModelState.AddModelError("", retorno.Mensagem); return(View(model)); } TempData["Retorno"] = "INCLUIDO"; //Retornar para index return(RedirectToAction("Index")); }
public string ObterPorCep(string cep) { RequisicaoObterCepPorCepDto requisicaoDto = new RequisicaoObterCepPorCepDto() { Cep = cep, IdUsuario = SessaoUsuario.SessaoLogin.IdUsuario, Identificacao = SessaoUsuario.SessaoLogin.Identificacao }; CepBll cepBll = new CepBll(true); RetornoObterDto <CepDto> retornoDto = new RetornoObterDto <CepDto>(); cepBll.ObterPorCep(requisicaoDto, ref retornoDto); // Se não encontrar nada no banco, pesquisar online if (retornoDto.Entidade == null) { HttpClient client = new HttpClient() { BaseAddress = new Uri("https://viacep.com.br/ws/") }; client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json")); HttpResponseMessage response = client.GetAsync($"{cep}/json").Result; if (response.IsSuccessStatusCode) { try { retornoDto.Entidade = response.Content.ReadAsAsync <CepDto>().Result; if (string.IsNullOrWhiteSpace(retornoDto.Entidade.Logradouro)) { retornoDto.Entidade = null; } else { // Compatibilizar os campos retornoDto.Entidade.Cidade = retornoDto.Entidade.Localidade; } } catch (Exception) { retornoDto.Entidade = null; } } } string retorno = new JavaScriptSerializer().Serialize(retornoDto); return(retorno); }
public ActionResult Editar(CepModel model) { //Se não tiver login, encaminhar para a tela de login if (string.IsNullOrWhiteSpace(SessaoUsuario.SessaoLogin.Identificacao)) { return(RedirectToAction("Login", "Usuario")); } //Valida a entidade recebida if (!ModelState.IsValid) { return(View(model)); } //Converte para DTO CepDto cepDto = new CepDto(); string mensagemErro = ""; if (!model.ConverterModelParaDto(ref cepDto, ref mensagemErro)) { ViewBag.MensagemErro = mensagemErro; return(View("Erro")); } //Preparar requisição e retorno RetornoDto retorno = new RetornoDto(); RequisicaoEntidadeDto <CepDto> requisicaoDto = new RequisicaoEntidadeDto <CepDto>() { EntidadeDto = cepDto, Identificacao = SessaoUsuario.SessaoLogin.Identificacao, IdUsuario = SessaoUsuario.SessaoLogin.IdUsuario }; //Consumir o serviço CepBll cepBll = new CepBll(true); cepBll.Editar(requisicaoDto, ref retorno); //Tratar o retorno if (retorno.Retorno == false) { ModelState.AddModelError("", retorno.Mensagem); return(View(model)); } TempData["Retorno"] = "ALTERADO"; //Voltar para o visualizar do cep return(RedirectToAction("Index")); }
/// <summary> /// Obtem uma listra filtrada de ceps /// </summary> /// <param name="filtros"></param> /// <returns></returns> public string ObterListaFiltrada(FiltrosCepModel filtros) { //Requisição para obter a lista RequisicaoObterListaDto requisicaoDto = new RequisicaoObterListaDto() { CampoOrdem = "CEP", IdUsuario = SessaoUsuario.SessaoLogin.IdUsuario, Identificacao = SessaoUsuario.SessaoLogin.Identificacao, NaoPaginarPesquisa = filtros.NaoPaginaPesquisa, Pagina = filtros.Pagina, NumeroItensPorPagina = 20 }; //Adicionar filtros utilizados if (!string.IsNullOrWhiteSpace(filtros.Cep)) { requisicaoDto.ListaFiltros.Add("CEP", filtros.Cep.Trim()); } if (!string.IsNullOrWhiteSpace(filtros.Logradouro)) { requisicaoDto.ListaFiltros.Add("LOGRADOURO", filtros.Logradouro.Trim()); } if (!string.IsNullOrWhiteSpace(filtros.Bairro)) { requisicaoDto.ListaFiltros.Add("BAIRRO", filtros.Bairro.Trim()); } if (!string.IsNullOrWhiteSpace(filtros.Cidade)) { requisicaoDto.ListaFiltros.Add("CIDADE", filtros.Cidade.Trim()); } //Consumir o serviço CepBll cepBll = new CepBll(true); RetornoObterListaDto <CepDto> retornoDto = new RetornoObterListaDto <CepDto>(); cepBll.ObterListaFiltrada(requisicaoDto, ref retornoDto); string retorno = new JavaScriptSerializer().Serialize(retornoDto); return(retorno); }
public void CrudCep() { RequisicaoEntidadeDto <CepDto> requisicaoDto = new RequisicaoEntidadeDto <CepDto>() { EntidadeDto = RetornarNovoCep() }; Assert.IsTrue(Utilidades.RetornarAutenticacaoRequisicaoPreenchida(requisicaoDto)); CepBll cepBll = new CepBll(true); // Incluir RetornoDto retornoDto = new RetornoDto(); cepBll.Incluir(requisicaoDto, ref retornoDto); Assert.AreEqual(true, retornoDto.Retorno); // Editar requisicaoDto.EntidadeDto.Logradouro = "Cep atualizado " + DateTime.Now; cepBll.Editar(requisicaoDto, ref retornoDto); Assert.AreEqual(true, retornoDto.Retorno); // Obter RetornoObterDto <CepDto> retornoObterDto = new RetornoObterDto <CepDto>(); RequisicaoObterDto requisicaoObterDto = new RequisicaoObterDto() { Id = requisicaoDto.EntidadeDto.Id, IdUsuario = requisicaoDto.IdUsuario, Identificacao = requisicaoDto.Identificacao }; cepBll.Obter(requisicaoObterDto, ref retornoObterDto); Assert.AreEqual(true, retornoObterDto.Retorno); // Excluir cepBll.Excluir(requisicaoObterDto, ref retornoDto); Assert.AreEqual(true, retornoObterDto.Retorno); }