public ActionResult <IEnumerable <PromoOffer> > GetActivePromoOffers() { var promoRules = _promoRuleService.GetPromoRules() .Where(p => p.ValidTill > DateTime.Today) .ToList(); return(promoRules); }
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); }
public ActionResult <IEnumerable <PromoOffer> > PromoOffers() { var promoRules = _promoRuleService.GetPromoRules(); return(promoRules); }