Beispiel #1
0
        public async Task Consultar_Post_QuandoCepJaEstaCadastradoDeveSerExibidaAoUsuario()
        {
            // Arrange
            _db.Logradouros.Add(new Models.Logradouro()
            {
                Cep = "12345-678"
            });
            await _db.SaveChangesAsync();

            _viaCepService.Setup(x => x.BuscaLogradouro(It.IsAny <string>())).Returns(Task.FromResult(new ViewModels.ViaCepResponse()
            {
                Cep = "12345-678"
            }));

            var viewModel = new ConsultaCepViewModel()
            {
                Cep = "12345-678"
            };

            // Act
            var result = await _controller.Consultar(viewModel, "Consultar");

            // Assert
            Assert.NotNull(result);
            var viewResult  = Assert.IsType <ViewResult>(result);
            var modelResult = Assert.IsType <ConsultaCepViewModel>(viewResult.Model);

            Assert.Equal(viewModel.Cep, modelResult.Cep);
            Assert.False(_controller.ModelState.IsValid);
            Assert.Collection(_controller.ModelState.Values.SelectMany(a => a.Errors), item => Assert.Equal("CEP já cadastrado em nossa base de dados!", item.ErrorMessage));
        }
        public async Task <IActionResult> Put(int id, Endereco endereco)
        {
            if (id != endereco.EnderecoId)
            {
                return(BadRequest());
            }

            endereco.DataAtualizacao       = DateTime.Now;
            _context.Entry(endereco).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!EnderecoExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(Ok(endereco));
        }
Beispiel #3
0
        public async Task <ActionResult> Consultar(ConsultaCepViewModel viewModel, string value = "")
        {
            viewModel.Resposta = await this.viaCepApiService.BuscaLogradouro(viewModel.Cep);

            if (viewModel.Resposta.Erro)
            {
                ModelState.AddModelError("", "CEP inválido ou não encontrado");
            }
            else
            {
                var existeCepCadastrado = await context.Logradouros.AnyAsync(a => a.Cep.Equals(viewModel.Cep));

                if (existeCepCadastrado)
                {
                    ModelState.AddModelError("", "CEP já cadastrado em nossa base de dados!");
                }
            }

            if (ModelState.IsValid)
            {
                if (value.Equals("CadastrarNovoCep"))
                {
                    context.Logradouros.Add(new Models.Logradouro()
                    {
                        LogradouroId = Guid.NewGuid(),
                        Cep          = viewModel.Resposta.Cep,
                        Bairro       = viewModel.Resposta.Bairro,
                        Complemento  = viewModel.Resposta.Complemento,
                        Gia          = viewModel.Resposta.Gia,
                        Ibge         = viewModel.Resposta.Ibge,
                        Uf           = viewModel.Resposta.Uf,
                        Unidade      = viewModel.Resposta.Unidade,
                        Descricao    = viewModel.Resposta.Logradouro,
                        Localidade   = viewModel.Resposta.Localidade,
                        DDD          = viewModel.Resposta.DDD,
                        Siafi        = viewModel.Resposta.Siafi
                    });
                    await context.SaveChangesAsync();

                    TempData["success"] = "CEP cadastrado na base de dados!!";
                }

                if (Request?.IsAjaxRequest() ?? false)
                {
                    return(PartialView("_CepResultado", viewModel.Resposta));
                }
            }

            if (Request?.IsAjaxRequest() ?? false)
            {
                return(PartialView("_PesquisaCep", viewModel));
            }

            return(View("Indice", viewModel));
        }