Boa tarde, o produto não está sendo carregado dentro do carrinho. Coloquei um break point no Foreach e descobri que o Model a ser percorrido tem count = 0, ou seja, não está conseguindo capturar o código do produto. Alguém pode checar?
@{
ViewData["Title"] = "Carrinho";
}
@model IList<ItemPedido>;
<h3>Meu Carrinho</h3>
{...}
@foreach (var item in Model)
{
<div class="row row-center linha-produto">
<div class="col-md-3">
<img class="img-produto-carrinho" src="/images/produtos/large_@(item.Produto.Codigo).jpg" />
</div>
<div class="col-md-3">@(item.Produto.Nome)</div>
<div class="col-md-2 text-center">R$ @(item.PrecoUnitario)</div>
<div class="col-md-2 text-center">
<div class="input-group">
<span class="input-group-btn">
<button class="btn btn-default">
<span class="glyphicon-minus"></span>
</button>
</span>
<input type="text" value="@(item.Quantidade)"
class="form-control text-center" />
<span class="input-group-btn">
<button class="btn btn-default">
<span class="glyphicon-plus"></span>
</button>
</span>
</div>
</div>
<div class="col-md-2">
R$ <span class="pull-right" subtotal>
@(item.Quantidade * item.PrecoUnitario)
</span>
</div>
</div>
}
</div>
<div class="panel-footer">
<div class="row">
<div class="col-md-10">
<span numero-itens>
Total: @(Model.Count())
itens
</span>
</div>
<div class="col-md-2">
Total: R$ <span class="pull-right" total>
@(Model.Sum(i => i.Quantidade * i.PrecoUnitario))
</span>
</div>
[...]
Código Pedido Repository
public void AddItem(string codigoProduto)
{
var produto = contexto.Set<Produto>()
.Where(p => p.Codigo == codigoProduto)
.SingleOrDefault();
if (produto == null)
{
throw new ArgumentException("Produto não encontrado.");
}
var pedido = GetPedido();
var itemPedido = contexto.Set<ItemPedido>()
.Where(i => i.Pedido.Id == pedido.Id &&
i.Produto.Codigo == codigoProduto)
.SingleOrDefault();
if (itemPedido == null)
{
itemPedido = new ItemPedido(pedido, produto, 1, produto.Preco);
contexto.Set<ItemPedido>().Add(itemPedido);
contexto.SaveChanges();
}
}
public Pedido GetPedido()
{
var pedidoId = GetPedidoId();
var pedido = dbSet
.Where(p => p.Id == pedidoId)
.SingleOrDefault()
if (pedido == null)
{
pedido = new Pedido();
dbSet.Add(pedido);
contexto.SaveChanges();
SetPedidoId(pedido.Id);
}
return pedido;
}