protected internal virtual IList <HistoricDecisionInputInstance> createHistoricDecisionInputInstances(DmnDecisionTableEvaluationEvent evaluationEvent, string rootProcessInstanceId, DateTime removalTime) { IList <HistoricDecisionInputInstance> inputInstances = new List <HistoricDecisionInputInstance>(); foreach (DmnEvaluatedInput inputClause in evaluationEvent.Inputs) { HistoricDecisionInputInstanceEntity inputInstance = new HistoricDecisionInputInstanceEntity(rootProcessInstanceId, removalTime); inputInstance.ClauseId = inputClause.Id; inputInstance.ClauseName = inputClause.Name; inputInstance.CreateTime = ClockUtil.CurrentTime; TypedValue typedValue = Variables.untypedValue(inputClause.Value); inputInstance.setValue(typedValue); inputInstances.Add(inputInstance); } return(inputInstances); }
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 initDecisionInstanceEventForDecisionTable(HistoricDecisionInstanceEntity @event, DmnDecisionTableEvaluationEvent evaluationEvent) { if (evaluationEvent.CollectResultValue != null) { double?collectResultValue = getCollectResultValue(evaluationEvent.CollectResultValue); @event.CollectResultValue = collectResultValue; } IList <HistoricDecisionInputInstance> historicDecisionInputInstances = createHistoricDecisionInputInstances(evaluationEvent, @event.RootProcessInstanceId, @event.RemovalTime); @event.Inputs = historicDecisionInputInstances; IList <HistoricDecisionOutputInstance> historicDecisionOutputInstances = createHistoricDecisionOutputInstances(evaluationEvent, @event.RootProcessInstanceId, @event.RemovalTime); @event.Outputs = historicDecisionOutputInstances; }