Exemplo n.º 1
0
        protected internal virtual IList <HistoricDecisionOutputInstance> createHistoricDecisionOutputInstances(DmnDecisionTableEvaluationEvent evaluationEvent, string rootProcessInstanceId, DateTime removalTime)
        {
            IList <HistoricDecisionOutputInstance> outputInstances = new List <HistoricDecisionOutputInstance>();

            IList <DmnEvaluatedDecisionRule> matchingRules = evaluationEvent.MatchingRules;

            for (int index = 0; index < matchingRules.Count; index++)
            {
                DmnEvaluatedDecisionRule rule = matchingRules[index];

                string ruleId    = rule.Id;
                int?   ruleOrder = index + 1;

                foreach (DmnEvaluatedOutput outputClause in rule.OutputEntries.values())
                {
                    HistoricDecisionOutputInstanceEntity outputInstance = new HistoricDecisionOutputInstanceEntity(rootProcessInstanceId, removalTime);
                    outputInstance.ClauseId   = outputClause.Id;
                    outputInstance.ClauseName = outputClause.Name;
                    outputInstance.CreateTime = ClockUtil.CurrentTime;

                    outputInstance.RuleId    = ruleId;
                    outputInstance.RuleOrder = ruleOrder;

                    outputInstance.VariableName = outputClause.OutputName;
                    outputInstance.setValue(outputClause.Value);

                    outputInstances.Add(outputInstance);
                }
            }

            return(outputInstances);
        }
Exemplo n.º 2
0
        protected internal virtual void initDecisionInstanceEventForDecisionLiteralExpression(HistoricDecisionInstanceEntity @event, DmnDecisionLiteralExpressionEvaluationEvent evaluationEvent)
        {
            // no inputs for expression
            @event.Inputs = System.Linq.Enumerable.Empty <HistoricDecisionInputInstance> ();

            HistoricDecisionOutputInstanceEntity outputInstance = new HistoricDecisionOutputInstanceEntity(@event.RootProcessInstanceId, @event.RemovalTime);

            outputInstance.VariableName = evaluationEvent.OutputName;
            outputInstance.setValue(evaluationEvent.OutputValue);

            @event.Outputs = Collections.singletonList <HistoricDecisionOutputInstance> (outputInstance);
        }