コード例 #1
0
ファイル: OfferBuilder.cs プロジェクト: hancheester/apollo
        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);
        }
コード例 #2
0
ファイル: OfferBuilder.cs プロジェクト: hancheester/apollo
        public IList <OfferRule> CloneActiveOfferRulesByType(OfferRuleType type)
        {
            var rules = GetActiveOfferRulesByType(type);

            return(rules.CloneJson());
        }