internal void FindURIRules(RuleScopeType scopeIDs, RuleStatusType ruleStatus, out URIRulePackageData newRules, out URIRulePackageData deletedRules, ref string pageCookie, bool activeOnly = true) { newRules = null; deletedRules = null; QueryFilter queryFilter = QueryFilter.AndTogether(new QueryFilter[] { new ComparisonFilter(ComparisonOperator.Equal, RuleBase.RuleTypeProperty, 1), new ComparisonFilter(ComparisonOperator.Equal, RuleBase.ScopeIDProperty, (byte)scopeIDs), new ComparisonFilter(ComparisonOperator.Equal, KesSpamSchema.ActiveOnlyProperty, activeOnly), new ComparisonFilter(ComparisonOperator.Equal, RuleBase.StateProperty, (byte)ruleStatus), base.BuildVersionParam }); List <URIRule> list = base.FindPagedRules <URIRule>(queryFilter, ref pageCookie, 1000); if (list != null && list.Count > 0) { List <URIRule> list2 = (from item in list where item.IsActive.Value select item).ToList <URIRule>(); if (list2 != null && list2.Any <URIRule>()) { newRules = base.GenerateURIRulePackageData(list2); } List <URIRule> list3 = (from item in list where !item.IsActive.Value select item).ToList <URIRule>(); if (list3 != null && list3.Count > 0) { deletedRules = base.GenerateURIRulePackageData(list3); } } }
internal void FindURIRules(RuleScopeType scopeIDs, RuleStatusType ruleStatus, out URIRulePackageData newRules, out URIRulePackageData deletedRules, ref DateTime?changedDate, bool activeOnly = true) { newRules = null; deletedRules = null; QueryFilter queryFilter = QueryFilter.AndTogether(new QueryFilter[] { new ComparisonFilter(ComparisonOperator.Equal, RuleBase.RuleTypeProperty, 1), new ComparisonFilter(ComparisonOperator.Equal, RuleBase.ScopeIDProperty, (byte)scopeIDs), new ComparisonFilter(ComparisonOperator.Equal, KesSpamSchema.ActiveOnlyProperty, activeOnly), new ComparisonFilter(ComparisonOperator.Equal, RuleBase.StateProperty, (byte)ruleStatus), base.BuildVersionParam }); if (changedDate != null && changedDate.Value != DateTime.MinValue) { DateTime dateTime = changedDate.Value.Subtract(TimeSpan.FromSeconds(30.0)); queryFilter = QueryFilter.AndTogether(new QueryFilter[] { queryFilter, new ComparisonFilter(ComparisonOperator.Equal, RuleBase.ChangedDatetimeProperty, dateTime) }); } List <URIRule> list = base.DataProvider.Find <URIRule>(queryFilter, null, true, null).Cast <URIRule>().ToList <URIRule>(); if (list != null && list.Count > 0) { List <URIRule> list2 = (from item in list where item.IsActive.Value select item).ToList <URIRule>(); if (list2 != null && list2.Any <URIRule>()) { newRules = base.GenerateURIRulePackageData(list2); } List <URIRule> list3 = (from item in list where !item.IsActive.Value select item).ToList <URIRule>(); if (list3 != null && list3.Count > 0) { deletedRules = base.GenerateURIRulePackageData(list3); } changedDate = new DateTime?((from item in list where item.ChangeDatetime != null select item.ChangeDatetime.Value).Max <DateTime>()); } }