示例#1
0
        /// <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);
        }
示例#2
0
        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);
        }