コード例 #1
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."));
            }
        }
コード例 #2
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."));
            }
        }