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); }
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)); }
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); }