public virtual IDmnDecisionResult GenerateDecisionResult(IDmnDecisionLogicEvaluationEvent @event)
        {
            var evaluationResult = (IDmnDecisionTableEvaluationEvent)@event;

            IList <IDmnDecisionResultEntries> ruleResults = new List <IDmnDecisionResultEntries>();

            if (!ReferenceEquals(evaluationResult.CollectResultName, null) ||
                (evaluationResult.CollectResultValue != null))
            {
                var ruleResult = new DmnDecisionResultEntriesImpl();
                ruleResult.PutValue(evaluationResult.CollectResultName, evaluationResult.CollectResultValue);
                ruleResults.Add(ruleResult);
            }
            else
            {
                foreach (var evaluatedRule in evaluationResult.MatchingRules)
                {
                    var ruleResult = new DmnDecisionResultEntriesImpl();
                    foreach (var evaluatedOutput in evaluatedRule.OutputEntries.Values)
                    {
                        ruleResult.PutValue(evaluatedOutput.OutputName, evaluatedOutput.Value);
                    }
                    ruleResults.Add(ruleResult);
                }
            }

            return(new DmnDecisionResultImpl(ruleResults));
        }
        public virtual IDmnDecisionResult GenerateDecisionResult(IDmnDecisionLogicEvaluationEvent @event)
        {
            var evaluationEvent = (IDmnDecisionLiteralExpressionEvaluationEvent)@event;

            var result = new DmnDecisionResultEntriesImpl();

            result.Add(evaluationEvent.OutputName, evaluationEvent.OutputValue);

            return(new DmnDecisionResultImpl(new List <IDmnDecisionResultEntries> {
                result
            }));
        }