public ShoppingCartItem AddItem(ShoppingCart cart, Product product, ProductVariant productPrice, int quantity)
{
Require.NotNull(cart, "cart");
Require.NotNull(product, "product");
Require.NotNull(productPrice, "productPrice");
Require.That(quantity > 0, "quantity", "Quantity should be greater than zero.");
var item = cart.Items.FirstOrDefault(i => i.ProductVariant.Id == productPrice.Id);
if (item == null)
{
item = new ShoppingCartItem(productPrice, quantity, cart);
AddItem(cart, item);
}
else
{
ChangeItemQuantity(cart, item, item.Quantity + quantity);
}
return item;
}