Example #1
0
        public bool setProductAmount(Store store, Product product, int amount)
        {
            Predicate <ShoppingCartAndStore> cartPredicat = s => ((ShoppingCartAndStore)s).store.Equals(store);
            ShoppingCartAndStore             cartAndStore = cartsList.Find(cartPredicat);

            //remove product from list
            if (amount == 0)
            {
                //check if the storecart is empty now
                if (containStore(cartPredicat))
                {
                    ShoppingCart cart = cartAndStore.cart;
                    //set product amount to zero
                    cart.setProductAmount(product, amount);
                    int storeAmount = cart.getTotalAmount();
                    if (storeAmount == 0)
                    {
                        cartsList.Remove(cartAndStore);
                    }
                    WorkshopProject.Log.Logger.Log("event", logLevel.INFO, $"set product {product.getId()} amount {amount} to basket {id}");
                }
                return(true);
            }
            else if (amount > 0)
            {
                if (containStore(cartPredicat))
                {
                    ShoppingCart cart = cartAndStore.cart;
                    WorkshopProject.Log.Logger.Log("event", logLevel.INFO, $"set product {product.getId()} amount {amount} to basket {id}");
                    return(cart.setProductAmount(product, amount));
                }
            }
            return(false);
        }