public IList <OfferRule> GetActiveOfferRulesByType(OfferRuleType type) { string key = string.Format(CacheKey.OFFER_RULE_ACTIVE_BY_TYPE_KEY, (int)type); var offers = _cacheManager.GetWithExpiry(key, delegate() { var query = _offerRuleRepository.TableNoTracking .Where(x => x.IsActive == true); switch (type) { case OfferRuleType.Catalog: query = query.Where(x => x.IsCart == false); break; case OfferRuleType.Cart: query = query.Where(x => x.IsCart == true); break; default: break; } var rules = query.ToList(); if (rules != null) { // Order by priority rules = rules.OrderBy(x => x.Priority).ToList(); for (int i = 0; i < rules.Count; i++) { rules[i] = BuildOfferRule(rules[i]); } } return(rules); }, expiredEndOfDay: true); return(offers); }
public IList <OfferRule> CloneActiveOfferRulesByType(OfferRuleType type) { var rules = GetActiveOfferRulesByType(type); return(rules.CloneJson()); }