예제 #1
0
        public PromoModels.PromofiedCart ApplyPromo(string id)
        {
            if (string.IsNullOrEmpty(id))
            {
                throw new Exception("Not a valid cart id");
            }

            CartModels.Cart cart = GetCart(id);

            // assuming that promo code ids are sent in the controller request
            var promoCodes = new List <string>();

            var promoCollection = new List <PromoModels.Promo>();

            foreach (var pc in promoCodes)
            {
                var promo = _promoRepo.Get(pc);
                if (promo != null)
                {
                    promoCollection.Add(promo);
                }
            }
            // process promo code and get total price
            PromoModels.PromofiedCart promofiedCart = _promoEngine.Process(promoCollection, cart);

            return(promofiedCart);
        }
 public PromoModels.Promo Get(string id)
 {
     return(_promo.Get(id));
 }