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; }
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)); }