private void UserLoggedIn(User user, Guid previousSession) { var itemsToCopy = _session.QueryOver <CartItem>().Where(item => item.UserGuid == previousSession).List(); var cart = _cartBuilder.BuildCart(); _session.Transact(session => { foreach (var item in itemsToCopy) { var cartItem = _getExistingCartItem.GetExistingItem(cart, item.Item, item.Data); if (cartItem != null) { cartItem.Quantity += item.Quantity; } else { cartItem = new CartItem { Item = item.Item, Quantity = item.Quantity, UserGuid = CurrentRequestData.UserGuid }; cart.Items.Add(cartItem.GetCartItemData()); } session.SaveOrUpdate(cartItem); session.Delete(item); } }); }
public void AddToCart(AddToCartModel model) { int quantity = model.Quantity; ProductVariant productVariant = model.ProductVariant; var data = model.Data; var cart = _cartBuilder.BuildCart(); CartItem cartItem = _getExistingCartItem.GetExistingItem(cart, productVariant, data); if (cartItem != null) { cartItem.Quantity += quantity; _session.Transact(session => session.Update(cartItem)); } else { cartItem = new CartItem { Item = productVariant, Quantity = quantity, UserGuid = _getUserGuid.UserGuid, Data = data }; _session.Transact(session => session.Save(cartItem)); var cartItemData = cartItem.GetCartItemData(); cart.Items.Add(cartItemData); } }
public void CartItemManager_Delete_ShouldRemoveCartItemFromDb() { var cartItem = new CartItem { Item = _productVariant, Quantity = 1 }; Session.Transact(session => session.Save(cartItem)); _cartModel.Items.Add(cartItem.GetCartItemData()); _cartItemManager.Delete(cartItem); Session.QueryOver <CartItem>().RowCount().Should().Be(0); }