public PromotionEntity[] GetPromotionsByIds(string[] ids)
        {
            var retVal = Promotions.Where(x => ids.Contains(x.Id)).ToArray();
            var promotionsIdsWithCoupons = Coupons.Where(x => ids.Contains(x.PromotionId)).Select(x => x.PromotionId).Distinct().ToArray();

            foreach (var promotion in retVal)
            {
                promotion.HasCoupons = promotionsIdsWithCoupons.Contains(promotion.Id);
            }
            return(retVal);
        }
示例#2
0
        public IEnumerable <Coupon> GetCoupons(int moduleID)
        {
            IEnumerable <Coupon> Coupons;

            using (IDataContext ctx = DataContext.Instance())
            {
                var rep = ctx.GetRepository <Coupon>();
                Coupons = rep.Get(moduleID);
            }

            return(Coupons.Where(p => !p.IsDeleted));
        }
示例#3
0
        public CouponEntity[] GetCouponsByIds(string[] ids)
        {
            var retVal             = Coupons.Where(x => ids.Contains(x.Id)).ToArray();
            var couponCodes        = retVal.Select(x => x.Code).ToArray();
            var couponUsagesTotals = PromotionUsages.Where(x => couponCodes.Contains(x.CouponCode)).GroupBy(x => x.CouponCode)
                                     .Select(x => new { CouponCode = x.Key, TotalUsesCount = x.Count() }).ToArray();

            foreach (var totalsUses in couponUsagesTotals)
            {
                var coupon = retVal.FirstOrDefault(x => x.Code.EqualsInvariant(totalsUses.CouponCode));
                if (coupon != null)
                {
                    coupon.TotalUsesCount = totalsUses.TotalUsesCount;
                }
            }
            return(retVal);
        }