public void Post(PedidoPostDto dto) { if (_repository.GetByIdCarrinho(dto.IdCarrinho).Any()) { throw new Exception("Pedido já realizado"); } var carrinho = _repositoryCarrinho.GetById(dto.IdCarrinho).FirstOrDefault(); if (carrinho == null) { throw new Exception("Carrinho inválido."); } var listaItensCarrinho = _repositoryCarrinhoItens.GetByCarrinho(carrinho.Id).ToList(); Pedido pedido = new Pedido { DataCadastro = DateTime.Now, IdCarrinho = carrinho.Id, Valor = carrinho.Total }; List <PedidoItens> listaItensPedido = new List <PedidoItens>(); foreach (var itemCarrinho in listaItensCarrinho) { PedidoItens itemPedido = new PedidoItens { DataCadastro = DateTime.Now, Quantidade = itemCarrinho.Quantidade, ValorTotal = itemCarrinho.ValorTotalItem, ValorUnidade = itemCarrinho.ValorUnitario, IdProduto = itemCarrinho.IdProduto, Pedido = pedido }; listaItensPedido.Add(itemPedido); } pedido.PedidoItens = listaItensPedido; _repository.Add(pedido); _repository.Commit(); }