Пример #1
0
        public static Pedido Map(PedidoCadastroDTO dto)
        {
            return(null);
            // var pedido = new Pedido();
            // pedido.EnderecoParaEntrega = new Endereco
            // {
            //     Bairro = dto.EnderecoParaEntrega.Bairro,
            //     CEP = dto.EnderecoParaEntrega.CEP,
            //     Complemento = dto.EnderecoParaEntrega.Complemento,
            //     Cidade = dto.EnderecoParaEntrega.Cidade,
            //     Logradouro = dto.EnderecoParaEntrega.Logradouro,
            //     Numero = dto.EnderecoParaEntrega.Numero,
            //     UF = dto.EnderecoParaEntrega.UF
            // };

            // dto.Itens.Select(x => new PedidoFornecedor
            // {
            //     CodigoFornecedor = x.FornecedorUID,
            //     DadosDaEntrega = new DadosEntrega()
            //     {
            //         ValorDoFrete = x.ValorFrete,
            //         PrazoMaximoDeEntrega = x.PrazoMaximoEntrega,
            //         PrazoMinimoDeEntrega = x.PrazoMinimoEntrega
            //     },
            //     ItensDoPedido = x.Subitens.Select(y=> new PedidoItem{
            //         CodigoProduto = y.CodigoProduto,
            //         ImagemProduto = y.ImagemProduto,
            //         NomeProduto = y.NomeProduto,
            //         PrecoUnitario = y.PrecoUnitario,
            //         Quantidade = y.Quantidade
            //     })
            // });

            // return pedido;
        }
Пример #2
0
        public async Task <IActionResult> CriarPedido([FromBody] PedidoCadastroDTO pedidoCadastro)
        {
            var codigoClienteClaim = this.User.Claims.FirstOrDefault(x => x.Type == "sub");

            if (codigoClienteClaim == null)
            {
                return(StatusCode(401));
            }

            var codigoCliente = codigoClienteClaim.Value;

            var pedido = Pedido.CriarNovoPedido(codigoCliente);

            pedido.AdicionarEnderecoDeEntrega(new Endereco
            {
                Bairro      = pedidoCadastro.EnderecoParaEntrega.Bairro,
                CEP         = pedidoCadastro.EnderecoParaEntrega.CEP,
                Complemento = pedidoCadastro.EnderecoParaEntrega.Complemento,
                Cidade      = pedidoCadastro.EnderecoParaEntrega.Cidade,
                Logradouro  = pedidoCadastro.EnderecoParaEntrega.Logradouro,
                Numero      = pedidoCadastro.EnderecoParaEntrega.Numero,
                UF          = pedidoCadastro.EnderecoParaEntrega.UF
            });

            foreach (var pedidoDoFornecedor in pedidoCadastro.Itens)
            {
                var pedidoFornecedor = new PedidoFornecedor();
                pedidoFornecedor.CodigoFornecedor = Guid.Parse(pedidoDoFornecedor.FornecedorUID);
                pedidoFornecedor.DadosDaEntrega   = new DadosEntrega()
                {
                    ValorDoFrete         = pedidoDoFornecedor.ValorFrete,
                    PrazoMaximoDeEntrega = pedidoDoFornecedor.PrazoMaximoEntrega,
                    PrazoMinimoDeEntrega = pedidoDoFornecedor.PrazoMinimoEntrega
                };

                foreach (var itemDoPedido in pedidoDoFornecedor.Subitens)
                {
                    pedidoFornecedor.AdicionarProdutoASerEntregue(new PedidoItem
                    {
                        CodigoProduto = Guid.Parse(itemDoPedido.CodigoProduto),
                        ImagemProduto = itemDoPedido.ImagemProduto,
                        NomeProduto   = itemDoPedido.NomeProduto,
                        PrecoUnitario = itemDoPedido.PrecoUnitario,
                        Quantidade    = itemDoPedido.Quantidade
                    });
                }

                pedido.AdicionarPedidosDoFornecedor(pedidoFornecedor);
            }

            _context.Add(pedido);
            await _context.SaveChangesAsync();

            return(StatusCode(200, pedido));
        }