Ejemplo n.º 1
0
        public async Task <IActionResult> Cadastrar([FromBody] CadastrarClienteViewModel cadastrarClienteViewModel)
        {
            if (!ModelState.IsValid)
            {
                return(Response(cadastrarClienteViewModel));
            }

            await _mediatorHandler.SendCommand(_mapper.Map <CadastrarClienteCommand>(cadastrarClienteViewModel));

            if (!OperacaoValida())
            {
                return(Response(cadastrarClienteViewModel));
            }

            var cliente = _clienteRepository.ObterPorId(cadastrarClienteViewModel.Id);

            var usuarioViewModel = new UsuarioViewModel
            {
                Id          = cliente.Id,
                TipoUsuario = TipoUsuario.Cliente
            };

            return(Response(new
            {
                token = ConfiguracoesSeguranca.GerarToken(usuarioViewModel),
                cliente = _mapper.Map <ClienteViewModel>(cliente)
            }));
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> CreateCliente([FromBody] CadastrarClienteViewModel cliente)
        {
            Cliente _cliente = new Cliente(cliente.Nome, cliente.CPF, cliente.Email);

            foreach (var endereco in cliente.Enderecos)
            {
                _cliente.AdicionarEnderecos(new Endereco(
                                                endereco.Rua,
                                                endereco.Numero,
                                                endereco.Bairro,
                                                endereco.Cidade,
                                                endereco.Estado,
                                                endereco.Pais,
                                                endereco.CEP));
            }

            foreach (var telefone in cliente.Telefones)
            {
                _cliente.AdicionarTelefones(new Telefone(telefone));
            }

            Cliente _result = await _clienteService.Cadastrar(_cliente);

            return(Created($"/api/v1/clientes/{_result.Id}", _cliente));
        }
        public async Task CadastrarClienteCPFDuplicadoAsync_Retorna409Conflict()
        {
            //Arrange
            var _enderecos = new List <EnderecoViewModel>()
            {
                new EnderecoViewModel("Av. São Jorge",
                                      50,
                                      "Cidade Salvador",
                                      "Jacareí",
                                      "SP",
                                      "Brasil",
                                      "12312000")
            };

            var _telefones = new List <long>
            {
                12985654585
            };

            var _cliente = new CadastrarClienteViewModel(
                nome: "Joana da Silva",
                email: "*****@*****.**",
                cpf: "939.553.610-12",
                _enderecos,
                _telefones);


            HttpRequestMessage _requestOne = new HttpRequestMessage(
                HttpMethod.Post, "/api/v1/clientes")
            {
                Content = new StringContent(
                    JsonConvert.SerializeObject(_cliente),
                    Encoding.UTF8,
                    MediaTypeNames.Application.Json)
            };

            // Executa a primeira vez
            (await _httpClient.SendAsync(_requestOne)).EnsureSuccessStatusCode();

            // Executa a segunda vez (força conflito)

            _cliente.Email = "*****@*****.**";

            // CPF continua o mesmo
            HttpRequestMessage _requestDuplicated = new HttpRequestMessage(
                HttpMethod.Post, "/api/v1/clientes")
            {
                Content = new StringContent(
                    JsonConvert.SerializeObject(_cliente),
                    Encoding.UTF8,
                    MediaTypeNames.Application.Json)
            };
            HttpResponseMessage _responseDuplicated = await _httpClient.SendAsync(_requestDuplicated);

            // Assert
            Assert.Equal(HttpStatusCode.Conflict, _responseDuplicated.StatusCode);
        }
Ejemplo n.º 4
0
        public async Task <IActionResult> CadastrarCliente([FromBody] CadastrarClienteViewModel cliente)
        {
            var consultorId = string.IsNullOrWhiteSpace(_user?.ConsultorId) ? (Guid?)null : Guid.Parse(_user.ConsultorId);

            var response = await _clienteAppService.CadastrarCliente(cliente.Cpf, cliente.NomeCompleto, cliente.DataNascimento, cliente.Email,
                                                                     cliente.TelefoneFixo, cliente.TelefoneCelular, consultorId,
                                                                     cliente.InssNumeroBeneficio, cliente.InssSalario, cliente.InssEspecie, cliente.OutrosDiaPagamento);

            return(Response(response));
        }
Ejemplo n.º 5
0
        public async Task <IActionResult> Cadastrar(
            [FromServices] CadastrarCliente cadastrarCliente,
            CadastrarClienteViewModel cadastrarClienteVm)
        {
            if (!ModelState.IsValid)
            {
                return(View(cadastrarClienteVm));
            }
            await cadastrarCliente.Executar(cadastrarClienteVm);

            return(RedirectToAction(nameof(Index)));
        }
        public async Task CadastrarClientesAsync_Retorna201Created()
        {
            //Arrange
            var _enderecos = new List <EnderecoViewModel>()
            {
                new EnderecoViewModel("Av. São Jorge",
                                      50,
                                      "Cidade Salvador",
                                      "Jacareí",
                                      "SP",
                                      "Brasil",
                                      "12312000")
            };

            var _telefones = new List <long>
            {
                12985654585
            };

            var _cliente = new CadastrarClienteViewModel(
                nome: "João da Silva",
                email: "*****@*****.**",
                cpf: "455.249.280-23",
                _enderecos,
                _telefones);

            var _content = new StringContent(
                JsonConvert.SerializeObject(_cliente),
                Encoding.UTF8,
                MediaTypeNames.Application.Json);


            HttpRequestMessage _request = new HttpRequestMessage(
                HttpMethod.Post, "/api/v1/clientes")
            {
                Content = _content
            };

            // Act
            HttpResponseMessage _response = await _httpClient.SendAsync(_request);

            if (!_response.IsSuccessStatusCode)
            {
                // Assert
                _response.EnsureSuccessStatusCode();
            }

            Assert.Equal(HttpStatusCode.Created, _response.StatusCode);
        }
Ejemplo n.º 7
0
        public IHttpActionResult Post([FromBody] CadastrarClienteViewModel viewModel)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest("Erro, campos não preenchidos corretamente"));
            }

            try
            {
                return(Ok(_appService.Cadastrar(viewModel)));
            } catch (Exception e)
            {
                return(BadRequest(e.Message));
            }
        }
Ejemplo n.º 8
0
        public ClienteViewModel Cadastrar(CadastrarClienteViewModel viewModel)
        {
            var cliente = _repository.ObterPorFiltro(x => x.Cpf == viewModel.Cpf);

            if (cliente != null)
            {
                throw new Exception("Cliente ja existe. Nome: " + cliente.Nome);
            }

            cliente = Mapper.Map <Cliente>(viewModel);

            _repository.Incluir(cliente);

            return(Mapper.Map <ClienteViewModel>(cliente));
        }
Ejemplo n.º 9
0
        public IActionResult CadastrarCliente([FromBody] CadastrarClienteViewModel viewModel)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(BadRequest("Model invalida"));
                }

                _clienteAppService.Inserir(viewModel);

                return(Ok());
            }
            catch (Exception e)
            {
                return(BadRequest(e));
            }
        }
        public async Task CadastrarClienteCPFBlacklistAsync_Retorna403Forbidden()
        {
            //Arrange
            var _enderecos = new List <EnderecoViewModel>()
            {
                new EnderecoViewModel("Av. São Jorge",
                                      50,
                                      "Cidade Salvador",
                                      "Jacareí",
                                      "SP",
                                      "Brasil",
                                      "12312000")
            };

            var _telefones = new List <long>
            {
                12985654585
            };

            var _cliente = new CadastrarClienteViewModel(
                nome: "Manoel da Silva",
                email: "*****@*****.**",
                cpf: "775.945.550-07",
                _enderecos,
                _telefones);

            var _content = new StringContent(
                JsonConvert.SerializeObject(_cliente),
                Encoding.UTF8,
                MediaTypeNames.Application.Json);


            HttpRequestMessage _request = new HttpRequestMessage(
                HttpMethod.Post, "/api/v1/clientes")
            {
                Content = _content
            };

            // Act
            HttpResponseMessage _response = await _httpClient.SendAsync(_request);

            // Assert
            Assert.Equal(HttpStatusCode.Forbidden, _response.StatusCode);
        }
Ejemplo n.º 11
0
        public async Task Executar(CadastrarClienteViewModel cadastrarCliente)
        {
            var clienteExists = await contexto.Clientes.AnyAsync(x => x.Cpf == cadastrarCliente.Cpf || x.Email == cadastrarCliente.Email);

            if (clienteExists)
            {
                Erros.Add("Cliente", "CPF ou Email já cadastrado, por favor insira os dados válidos!");
            }

            var cliente = new Models.Cliente(
                0,
                cadastrarCliente.Nome,
                cadastrarCliente.Email,
                cadastrarCliente.Cpf,
                cadastrarCliente.ProdutoId
                );

            await contexto.AddAsync(cliente);

            await contexto.SaveChangesAsync();
        }
Ejemplo n.º 12
0
 public void Inserir(CadastrarClienteViewModel viewModel)
 {
     _clienteService.Inserir(_mapper.Map <Cliente>(viewModel));
 }
        public async Task ExcluirClientePorIdAsync_Retorna200Ok()
        {
            //Arrange
            #region Pre-arrange
            var _enderecos = new List <EnderecoViewModel>()
            {
                new EnderecoViewModel("Av. São Jorge",
                                      50,
                                      "Cidade Salvador",
                                      "Jacareí",
                                      "SP",
                                      "Brasil",
                                      "12312000")
            };

            var _telefones = new List <long>
            {
                12985654585
            };

            var _cliente = new CadastrarClienteViewModel(
                nome: "Manoel da Silva",
                email: "*****@*****.**",
                cpf: "419.696.370-64",
                _enderecos,
                _telefones);

            var _content = new StringContent(
                JsonConvert.SerializeObject(_cliente),
                Encoding.UTF8,
                MediaTypeNames.Application.Json);


            HttpRequestMessage _requestCreate = new HttpRequestMessage(
                HttpMethod.Post, "/api/v1/clientes")
            {
                Content = _content
            };

            HttpResponseMessage _responseCreate = await _httpClient.SendAsync(_requestCreate);

            _responseCreate.EnsureSuccessStatusCode();
            #endregion

            #region Arrange

            string _resultCreate = await _responseCreate.Content.ReadAsStringAsync();

            JObject _clienteObject = JObject.Parse(_resultCreate);

            HttpRequestMessage _requestDeleteById = new HttpRequestMessage(HttpMethod.Delete, $"/api/v1/clientes/{_clienteObject["id"]}");

            #endregion

            // Act
            HttpResponseMessage _responseGetById = await _httpClient.SendAsync(_requestDeleteById);

            // Assert
            _responseGetById.EnsureSuccessStatusCode();

            Assert.Equal(HttpStatusCode.OK, _responseGetById.StatusCode);
        }