예제 #1
0
        public ActionResult <IEnumerable <PromoOffer> > GetActivePromoOffers()
        {
            var promoRules = _promoRuleService.GetPromoRules()
                             .Where(p => p.ValidTill > DateTime.Today)
                             .ToList();

            return(promoRules);
        }
예제 #2
0
        public CartDto Checkout(CartDto cart)
        {
            var products  = _productService.GetProductsFromStore();
            var cartItems = cart.CartItems != null && cart.CartItems.Count() > 0 ? cart.CartItems : _cartService.GetCartItems(); // TO DO: This will be the cart.CartItems

            cartItems.ForEach(item =>
            {
                if (!products.Select(p => p.SKU).Contains(item.SKU))
                {
                    throw new Exception("Invalid item added to Cart.");
                }
                item.UnitPrice = products.First(p => p.SKU == item.SKU).Price;
            });
            var promoOffers             = _promoRuleService.GetPromoRules();
            var cartItemsWithOfferPrice = _promoCalculator.CalculateOfferPrice(_promoCalculator.ApplyPromoRule(cartItems, promoOffers), promoOffers);
            var cartDto = new CartDto
            {
                CartId    = !string.IsNullOrEmpty(cart.CartId) ? cart.CartId : Guid.NewGuid().ToString(),
                CartItems = cartItemsWithOfferPrice
            };

            return(cartDto);
        }
예제 #3
0
        public ActionResult <IEnumerable <PromoOffer> > PromoOffers()
        {
            var promoRules = _promoRuleService.GetPromoRules();

            return(promoRules);
        }