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);
            }
        }
Exemple #3
0
        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);
        }