Beispiel #1
0
        public int addVariantToCart(int variantID, int numberVariant)
        {
            try
            {
                string  cookieID = retrieveCookie();
                TblCart cart     = cartService.GetByCookieID(cookieID);
                if (cart == null)
                {
                    cart                 = new TblCart();
                    cart.CookieID        = cookieID;
                    cart.CreatedDateTime = SDateTime.GetYYYYMMddHmmSSNow();

                    cart.CartID = cartService.Insert(cart);
                }
                cart.ModifiedDateTime = SDateTime.GetYYYYMMddHmmSSNow();

                Variant variant = variantService.GetByPrimaryKey(variantID);
                if (variant != null)
                {
                    string where = string.Format("CartID={0} and VariantID={1}", cart.CartID, variantID);
                    List <TblCartItem> cartItems = cartItemService.GetByWhere(where);
                    if (cartItems == null || cartItems.Count == 0)
                    {
                        TblCartItem cartItem = new TblCartItem();
                        cartItem.CartID          = cart.CartID;
                        cartItem.VariantID       = variantID;
                        cartItem.NumberVariant   = numberVariant;
                        cartItem.CreatedDateTime = SDateTime.GetYYYYMMddHmmSSNow();
                        cartItemService.Insert(cartItem);
                    }
                    else
                    {
                        cartItems[0].NumberVariant++;
                        cartItemService.Update(cartItems[0]);
                    }

                    cartService.UpdateTotalPrice(cart.CartID);

                    cartItems = cartItemService.GetByCartID(cart.CartID);
                    if (cartItems != null)
                    {
                        return(cartItems.Count);
                    }
                }

                return(0);
            }
            catch (Exception ex)
            {
                LogService.WriteException(ex);
                throw;
            }
        }