コード例 #1
0
        public Cart Execute(Cart cart)
        {
            if (cart == null)
            {
                throw new Exception("Cart is null.");
            }

            if (cart.CartItems != null && cart.CartItems?.Count() > 0)
            {
                cart.CartItemTotal = 0;
                foreach (CartItem item in cart.CartItems)
                {
                    cart.CartItemPromoSavings = cart.CartItemPromoSavings + (item.PromoSavings * item.Quantity);
                    cart.CartItemTotal        = cart.CartItemTotal + (item.Product.Price * item.Quantity);
                }
                cart = _shippingService.CalculateShipping(cart);
            }

            cart           = _promoService.ApplyShippingPromotions(cart);
            cart.CartTotal = AddTaxCost(cart.CartItemTotal + cart.ShippingTotal);

            return(cart);
        }