diff --git a/src/MusicStore/Controllers/ShoppingCartController.cs b/src/MusicStore/Controllers/ShoppingCartController.cs index e51d8bc4d3..5b203578d1 100644 --- a/src/MusicStore/Controllers/ShoppingCartController.cs +++ b/src/MusicStore/Controllers/ShoppingCartController.cs @@ -71,19 +71,29 @@ namespace MusicStore.Controllers .Include(c => c.Album) .SingleOrDefaultAsync(); - // Remove from cart - int itemCount = cart.RemoveFromCart(id); + string message; + int itemCount; + if (cartItem != null) + { + // Remove from cart + itemCount = cart.RemoveFromCart(id); - await DbContext.SaveChangesAsync(requestAborted); + await DbContext.SaveChangesAsync(requestAborted); - string removed = (itemCount > 0) ? " 1 copy of " : string.Empty; + string removed = (itemCount > 0) ? " 1 copy of " : string.Empty; + message = removed + cartItem.Album.Title + " has been removed from your shopping cart."; + } + else + { + itemCount = 0; + message = "Could not find this item, nothing has been removed from your shopping cart."; + } // Display the confirmation message var results = new ShoppingCartRemoveViewModel { - Message = removed + cartItem.Album.Title + - " has been removed from your shopping cart.", + Message = message, CartTotal = await cart.GetTotal(), CartCount = await cart.GetCount(), ItemCount = itemCount, diff --git a/src/MusicStore/Models/ShoppingCart.cs b/src/MusicStore/Models/ShoppingCart.cs index 483f2c85e3..14e46b5f22 100644 --- a/src/MusicStore/Models/ShoppingCart.cs +++ b/src/MusicStore/Models/ShoppingCart.cs @@ -54,7 +54,7 @@ namespace MusicStore.Models public int RemoveFromCart(int id) { // Get the cart - var cartItem = _dbContext.CartItems.Single( + var cartItem = _dbContext.CartItems.SingleOrDefault( cart => cart.CartId == _shoppingCartId && cart.CartItemId == id);