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); }
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); }