public static string GetBasketLevelPromotionName(this PromoOrder promoOrder, PromoSettings settings)
 {
     var promo = promoOrder.BasketLevelPromotion();
     if (promo != null)
         return GetDisplayPromoDetails(settings.ShowPromotionDetailsInBasket, promo);
     return string.Empty;
 }
        public static decimal OrderDiscountTotal(this BasketResponse basketResponse)
        {
            Decimal orderDiscountTotal = decimal.Zero;

            if (!BasketResponseIsValid(basketResponse))
                return orderDiscountTotal;

            if (basketResponse.BasketLevelDiscountIncludesDeliveryAmount())
            {
                var basketLevelPromo = basketResponse.BasketLevelPromotion();
                if (basketLevelPromo != null)
                {
                    orderDiscountTotal = basketLevelPromo.DiscountAmount;
                }
            }

            return orderDiscountTotal;
        }
        public static bool BasketLevelDiscountIncludesDeliveryAmount(this BasketResponse basketResponse)
        {
            if (!BasketResponseIsValid(basketResponse))
                return false;

            var basketLevelPromo = basketResponse.BasketLevelPromotion();

            if (basketLevelPromo == null)
                return false;

            var deliveryItem = (from i in basketResponse.Items where i.IsDelivery select i).FirstOrDefault();

            if (deliveryItem == null)
                return true;

            var nonDeliveryPromosAppliedToDelivery = (from p in deliveryItem.AppliedPromotions where !p.DeliveryLevelPromotion select p).ToList();

            if (nonDeliveryPromosAppliedToDelivery == null)
                return false;

            return true;
        }
 public static string BasketLevelPromotionName(this BasketResponse basketResponse)
 {
     var promo = basketResponse.BasketLevelPromotion();
     if (promo != null)
         return promo.DisplayDetails();
     return string.Empty;
 }