Esempio n. 1
0
 private bool isTemplateRule(Rule r, System.Data.DataTable dataTable)
 {
     if(dataTable != null)
     {
         foreach(System.Data.DataColumn col in dataTable.Columns)
         {
             //check the rule name
             if(r.Name.ToLower().IndexOf("#" + col.ColumnName) != -1)
                 return true;
             //check the inputs
             foreach(Input i in r.Inputs)
             {
                 if(i.Text.ToLower().IndexOf("#" + col.ColumnName) != -1)
                     return true;
             }
             //check the outputs and commands
             foreach(Output o in r.Outputs)
             {
                 if(o.Text.ToLower().IndexOf("#" + col.ColumnName) != -1)
                     return true;
                 if(o.Cmd.ToLower().IndexOf("#" + col.ColumnName) != -1)
                     return true;
             }
         }//foreach column
     }//if(dataTable != null)
     return false;
 }
Esempio n. 2
0
 private void deleteRule(Rule ruleToDelete, List<Rule> rules)
 {
     if(rules.Contains(ruleToDelete))
     {
         rules.Remove(ruleToDelete);
     }
     else
     {
         foreach(Rule r in rules)
         {
             deleteRule(ruleToDelete, r.Children);
         }
     }
 }
Esempio n. 3
0
 private bool isDescendant(Rule rParent, Rule rChild, List<Rule> children)
 {
     if(rParent.Children.Contains(rChild))
         return true;
     foreach(Rule r in children)
         return isDescendant(r, rChild, r.Children);
     return false;
 }
Esempio n. 4
0
 public Rule createRuleFromTemplateRow(Rule baseRule, System.Data.DataColumnCollection columns, System.Data.DataRow row, int index)
 {
     Rule newRule = new Rule();
     newRule.Id = baseRule.Id + "_" + index;
     newRule.Name = this.replaceTemplateData(baseRule.Name, columns, row);
     foreach(Input i in baseRule.Inputs)
     {
         Input newInput = new Input();
         newInput.Id = i.Id + "_" + index;
         newInput.Text = this.replaceTemplateData(i.Text, columns, row);
         newInput.Condition = this.replaceTemplateData(i.Condition, columns, row);
         newRule.Inputs.Add(newInput);
     }
     foreach(Output o in baseRule.Outputs)
     {
         Output newOutput = new Output();
         newOutput.Id = o.Id + "_" + index;
         newOutput.Text = this.replaceTemplateData(o.Text, columns, row);
         newOutput.Cmd = this.replaceTemplateData(o.Cmd, columns, row);
         newOutput.Condition = this.replaceTemplateData(o.Condition, columns, row);
         newRule.Outputs.Add(newOutput);
     }
     foreach(Rule child in baseRule.Children)
     {
         newRule.Children.Add(this.createRuleFromTemplateRow(child, columns, row, index));
     }
     newRule.VirtualParents = baseRule.VirtualParents;
     return newRule;
 }
Esempio n. 5
0
 /*
  * Accessor Methods
  *
  */
 public bool IsDescendant(Rule rParent, Rule rChild)
 {
     return this.isDescendant(rParent, rChild, rParent.Children);
 }
Esempio n. 6
0
 public Rule CloneRule(Rule r)
 {
     Rule rClone = new Rule();
     rClone.Name = r.Name;
     rClone.Id = this.GetNewRuleId();
     foreach(Input i in r.Inputs)
         rClone.Inputs.Add(this.CloneInput(i, r));
     foreach(Output o in r.Outputs)
         rClone.Outputs.Add(this.CloneOutput(o, r));
     foreach(string id in r.VirtualParents)
         rClone.VirtualParents.Add(id);
     foreach(Rule rRecursive in r.Children)
         rClone.Children.Add(this.CloneRule(rRecursive));
     return rClone;
 }
Esempio n. 7
0
 public Output CloneOutput(Output o, Rule r)
 {
     Output oClone = new Output();
     oClone.Text = o.Text;
     oClone.Cmd = o.Cmd;
     oClone.Condition = o.Condition;
     oClone.Id = r.GetNewOutputId();
     return oClone;
 }
Esempio n. 8
0
 public Input CloneInput(Input i, Rule r)
 {
     Input iClone = new Input();
     iClone.Text = i.Text;
     iClone.Condition = i.Condition;
     iClone.Id = r.GetNewInputId();
     return iClone;
 }
Esempio n. 9
0
 public string AddRuleChild(Rule parent, string ruleName)
 {
     if(parent != null)
     {
         Rule ruleNew = new Rule();
         ruleNew.Id = GetNewRuleId();
         ruleNew.Name = ruleName;
         parent.Children.Add(ruleNew);
         return ruleNew.Id;
     }
     else
         return AddRule(ruleName);
 }
Esempio n. 10
0
 /*
  * Modifier Methods
  */
 public Rule AddRule()
 {
     Rule ruleNew = new Rule();
     ruleNew.Id = GetNewRuleId();
     this.Rules.Add(ruleNew);
     return ruleNew;
 }