public async Task CreatePedidoAsync(int carrinhoId, Endereco shippingEndereco) { var carrinho = await _carrinhoRepository.GetByIdAsync(carrinhoId); Guard.Against.NullCarrinho(carrinhoId, carrinho); var items = new List <PedidoItem>(); foreach (var item in carrinho.Items) { var catalogoItem = await _itemRepository.GetByIdAsync(item.CatalogoItemId); var itemPedido = new CatalogoItemPedido(catalogoItem.Id, catalogoItem.Nome, catalogoItem.FotoUri); var pedidoItem = new PedidoItem(itemPedido, item.PrecoUnitario, item.Quantidade); items.Add(pedidoItem); } var pedido = new Pedido(carrinho.CompraId, shippingEndereco, items); await _pedidoRepository.AddAsync(pedido); }
public PedidoItem(CatalogoItemPedido pedidoItem, decimal precoUnitario, int unidades) { ItemPedido = pedidoItem; PrecoUnitario = precoUnitario; Unidades = unidades; }