public Promotion[] GetActivePromotions() { var now = DateTime.UtcNow; var retVal = Promotions.Where(x => x.IsActive && (x.StartDate == null || now >= x.StartDate) && (x.EndDate == null || x.EndDate >= now)) .OrderByDescending(x => x.Priority).ToArray(); return(retVal); }
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); }