public IActionResult Post(LoginPostRequest request,
                                  [FromServices] ClienteDomainService clienteDomainService,
                                  [FromServices] TokenService tokenService)
        {
            try
            {
                //buscar o cliente atraves do email e da senha
                var cliente = clienteDomainService.ObterCliente(request.Email, request.Senha);

                //verificar se o cliente foi encontrado
                if (cliente != null)
                {
                    //gerar o TOKEN de acesso!
                    var response = new LoginOkResponse
                    {
                        Mensagem      = "Cliente autenticado com sucesso",
                        AccessToken   = tokenService.GenerateToken(cliente.Email),
                        DataExpiracao = DateTime.Now.AddDays(1)
                    };

                    return(Ok(response));
                }
                else
                {
                    //HTTP 401 - Unauthorized
                    return(StatusCode(401, "Acesso não autorizado."));
                }
            }
            catch (Exception)
            {
                return(StatusCode(500, "Erro. Não foi possível realizar a autenticação."));
            }
        }
Exemple #2
0
        public void Quando_Adicionar_Um_Cliente_No_Banco_Nao_Permitir_Mesmo_Cpf()
        {
            var _clienteDomainService = new ClienteDomainService(_mockClienteRepository.Object);

            _mockClienteRepository
            .Setup(x => x.GetByCpf(_cliente.Cpf))
            .Returns(new Cliente("x", _cliente.Cpf));

            _clienteDomainService.Salvar(_cliente);
        }
Exemple #3
0
        public IActionResult Post(ClientePostRequest request,
                                  [FromServices] ClienteDomainService clienteDomainService)
        {
            try
            {
                var cliente = new Cliente
                {
                    IdCliente = Guid.NewGuid(),
                    Nome      = request.Nome,
                    Email     = request.Email,
                    Cpf       = request.Cpf,
                    Senha     = request.Senha
                };

                var enderecos = new List <Endereco>();

                foreach (var item in request.Enderecos)
                {
                    enderecos.Add(new Endereco
                    {
                        IdEndereco  = Guid.NewGuid(),
                        Logradouro  = item.Logradouro,
                        Numero      = item.Numero,
                        Complemento = item.Complemento,
                        Bairro      = item.Bairro,
                        Cidade      = item.Cidade,
                        Estado      = item.Estado,
                        Cep         = item.Cep
                    });
                }

                clienteDomainService.CadastrarCliente(cliente, enderecos);

                var response = new PostOkResponse
                {
                    Mensagem = "Cliente cadastrado com sucesso."
                };

                return(Ok(response));
            }
            catch (EmailDeveSerUnicoException e)
            {
                return(StatusCode(403, e.Message));
            }
            catch (Exception)
            {
                return(StatusCode(500, "Não foi possível realizar o cadastro do cliente."));
            }
        }
Exemple #4
0
        public IActionResult Post(PedidoPostRequest request,
                                  [FromServices] ClienteDomainService clienteDomainService,
                                  [FromServices] PedidoDomainService pedidoDomainService)
        {
            try
            {
                //obter os dados do cliente autenticado..
                //utilizando o email do cliente gravado no TOKEN de autenticação
                //User.Identity.Name -> retorna o email do cliente gravado no TOKEN
                var email   = User.Identity.Name; //retorna o email do cliente autenticado
                var cliente = clienteDomainService.ObterCliente(email);

                //criando uma lista de itens do pedido
                var itensPedido = new List <ItemPedido>();
                foreach (var item in request.ItensPedido)
                {
                    itensPedido.Add(new ItemPedido
                    {
                        IdItemPedido = Guid.NewGuid(),
                        IdProduto    = Guid.Parse(item.IdProduto),
                        Quantidade   = item.Quantidade
                    });
                }

                //criando o objeto pedido..
                var pedido = new Pedido
                {
                    IdPedido   = Guid.NewGuid(),
                    DataPedido = DateTime.Parse(request.DataPedido),
                    ValorTotal = decimal.Parse(request.ValorPedido)
                };

                //gravar o pedido
                pedidoDomainService.CadastrarPedido(pedido, itensPedido, cliente);

                //objeto para retorno da requisição
                var response = new PostOkResponse
                {
                    Mensagem = "Pedido cadastrado com sucesso."
                };

                return(Ok(response));
            }
            catch (Exception)
            {
                //retornar status de erro HTTP 500
                return(StatusCode(500, "Erro ao processar o pedido."));
            }
        }
Exemple #5
0
 public ClienteAppService(CotizacionAppDbContext _context, ClienteDomainService clienteDomainService)
 {
     _baseDatos            = _context;
     _clienteDomainService = clienteDomainService;
 }
Exemple #6
0
 public ClienteAppService(MyContext context, ClienteDomainService clienteAppService)
 {
     _context           = context;
     _clienteAppService = clienteAppService;
 }