Beispiel #1
0
 /// <summary>
 /// Compile any missing Criteria for each rule.
 /// </summary>
 private void CompileRules()
 {
     foreach (RuleGroup ruleGroup in ruleGroups.Where(ruleGroup => ruleGroup.Criteria == null))
     {
         try
         {
             List <PredicateBuilder.Filter> filters = new List <PredicateBuilder.Filter>();
             // ReSharper disable once LoopCanBeConvertedToQuery
             foreach (Rule rule in ruleGroup.rule)
             {
                 List <string> propertyNames = rule.property.Split('.').ToList();
                 if (propertyNames[0] == "Parent")
                 {
                     propertyNames[0] = "SafeParent";
                 }
                 PredicateBuilder.Filter filter = new PredicateBuilder.Filter
                 {
                     PropertyName = string.Join(".", propertyNames),
                     Operation    = PredicateBuilder.Op.Equals,
                     Value        = rule.value
                 };
                 filters.Add(filter);
             }
             Expression <Func <CIXMessage, bool> > newCriteria = PredicateBuilder.GetExpression <CIXMessage>(ruleGroup.type, filters);
             ruleGroup.Criteria = newCriteria;
         }
         catch (Exception e)
         {
             LogFile.WriteLine("Error compiling rulegroup {0} : {1}", ruleGroup, e.Message);
         }
     }
 }
Beispiel #2
0
 /// <summary>
 /// Compile any missing Criteria for each rule.
 /// </summary>
 private void CompileRules()
 {
     foreach (RuleGroup ruleGroup in ruleGroups.Where(ruleGroup => ruleGroup.Criteria == null))
     {
         try
         {
             List<PredicateBuilder.Filter> filters = new List<PredicateBuilder.Filter>();
             // ReSharper disable once LoopCanBeConvertedToQuery
             foreach (Rule rule in ruleGroup.rule)
             {
                 List<string> propertyNames = rule.property.Split('.').ToList();
                 if (propertyNames[0] == "Parent")
                 {
                     propertyNames[0] = "SafeParent";
                 }
                 PredicateBuilder.Filter filter = new PredicateBuilder.Filter
                 {
                     PropertyName = string.Join(".", propertyNames),
                     Operation = PredicateBuilder.Op.Equals,
                     Value = rule.value
                 };
                 filters.Add(filter);
             }
             Expression<Func<CIXMessage, bool>> newCriteria = PredicateBuilder.GetExpression<CIXMessage>(ruleGroup.type, filters);
             ruleGroup.Criteria = newCriteria;
         }
         catch (Exception e)
         {
             LogFile.WriteLine("Error compiling rulegroup {0} : {1}", ruleGroup, e.Message);
         }
     }
 }