Example #1
0
        /// <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));
            }
        }
Example #2
0
        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"));
        }
Example #3
0
        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);
        }
Example #4
0
        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"));
        }
Example #5
0
        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);
        }
Example #6
0
        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"));
        }
Example #7
0
        /// <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);
        }
Example #8
0
        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);
        }