/// <summary> /// Method to call when this rule needs to be evaluated. /// This will use <see cref="EvaluateFunction(NodeModel)"/> to evaluate the rule. /// </summary> /// <param name="nodeModel"></param> /// <param name="changedEvent"></param> internal void Evaluate(NodeModel nodeModel, string changedEvent) { var status = EvaluateFunction(nodeModel, changedEvent); var result = new NodeRuleEvaluationResult(this.Id, status, this.SeverityCode, nodeModel.GUID.ToString()); OnRuleEvaluated(result); }
private protected sealed override List <IRuleEvaluationResult> InitializeRule(WorkspaceModel workspaceModel) { var pairs = InitFunction(workspaceModel); var results = new List <IRuleEvaluationResult>(); foreach (var pair in pairs) { if (pair.Item1 == RuleEvaluationStatusEnum.Passed) { continue; } var result = new NodeRuleEvaluationResult(this.Id, pair.Item1, this.SeverityCode, pair.Item2); results.Add(result); } return(results); }