示例#1
0
 public HistoricDecisionInstanceEntity createHistoricDecisionInstance(DmnDecisionLogicEvaluationEvent evaluationEvent, HistoricDecisionInstanceEntity rootDecisionInstance)
 {
     return(outerInstance.createDecisionEvaluatedEvt(evaluationEvent, (ExecutionEntity)execution));
 }
示例#2
0
        protected internal virtual void initDecisionInstanceEvent(HistoricDecisionInstanceEntity @event, DmnDecisionLogicEvaluationEvent evaluationEvent, HistoryEventTypes eventType, HistoricDecisionInstanceEntity rootDecisionInstance)
        {
            @event.EventType = eventType.EventName;

            DecisionDefinition decision = (DecisionDefinition)evaluationEvent.Decision;

            @event.DecisionDefinitionId   = decision.Id;
            @event.DecisionDefinitionKey  = decision.Key;
            @event.DecisionDefinitionName = decision.Name;

            if (!string.ReferenceEquals(decision.DecisionRequirementsDefinitionId, null))
            {
                @event.DecisionRequirementsDefinitionId  = decision.DecisionRequirementsDefinitionId;
                @event.DecisionRequirementsDefinitionKey = decision.DecisionRequirementsDefinitionKey;
            }

            // set current time as evaluation time
            @event.EvaluationTime = ClockUtil.CurrentTime;

            if (string.ReferenceEquals(@event.RootProcessInstanceId, null) && string.ReferenceEquals(@event.CaseInstanceId, null))
            {
                if (rootDecisionInstance != null)
                {
                    @event.RemovalTime = rootDecisionInstance.RemovalTime;
                }
                else
                {
                    DateTime removalTime = calculateRemovalTime(@event, decision);
                    @event.RemovalTime = removalTime;
                }
            }

            if (evaluationEvent is DmnDecisionTableEvaluationEvent)
            {
                initDecisionInstanceEventForDecisionTable(@event, (DmnDecisionTableEvaluationEvent)evaluationEvent);
            }
            else if (evaluationEvent is DmnDecisionLiteralExpressionEvaluationEvent)
            {
                initDecisionInstanceEventForDecisionLiteralExpression(@event, (DmnDecisionLiteralExpressionEvaluationEvent)evaluationEvent);
            }
            else
            {
                @event.Inputs  = System.Linq.Enumerable.Empty <HistoricDecisionInputInstance> ();
                @event.Outputs = System.Linq.Enumerable.Empty <HistoricDecisionOutputInstance> ();
            }
        }
示例#3
0
 protected internal virtual void initDecisionInstanceEvent(HistoricDecisionInstanceEntity @event, DmnDecisionLogicEvaluationEvent evaluationEvent, HistoryEventTypes eventType)
 {
     initDecisionInstanceEvent(@event, evaluationEvent, eventType, null);
 }
示例#4
0
 protected internal virtual HistoricDecisionInstanceEntity newDecisionInstanceEventEntity(DmnDecisionLogicEvaluationEvent evaluationEvent)
 {
     return(new HistoricDecisionInstanceEntity());
 }
示例#5
0
        protected internal virtual HistoricDecisionInstanceEntity createDecisionEvaluatedEvt(DmnDecisionLogicEvaluationEvent evaluationEvent, HistoricDecisionInstanceEntity rootDecisionInstance)
        {
            // create event instance
            HistoricDecisionInstanceEntity @event = newDecisionInstanceEventEntity(evaluationEvent);

            // initialize event
            initDecisionInstanceEvent(@event, evaluationEvent, HistoryEventTypes.DMN_DECISION_EVALUATE, rootDecisionInstance);

            // set the user id if there is an authenticated user and no process instance
            UserId = @event;

            DecisionDefinition decisionDefinition = (DecisionDefinition)evaluationEvent.Decision;
            string             tenantId           = decisionDefinition.TenantId;

            if (string.ReferenceEquals(tenantId, null))
            {
                tenantId = provideTenantId(decisionDefinition, @event);
            }
            @event.TenantId = tenantId;
            return(@event);
        }
示例#6
0
        protected internal virtual HistoricDecisionInstanceEntity createDecisionEvaluatedEvt(DmnDecisionLogicEvaluationEvent evaluationEvent, CaseExecutionEntity execution)
        {
            // create event instance
            HistoricDecisionInstanceEntity @event = newDecisionInstanceEventEntity(execution, evaluationEvent);

            // initialize event
            initDecisionInstanceEvent(@event, evaluationEvent, HistoryEventTypes.DMN_DECISION_EVALUATE);
            setReferenceToCaseInstance(@event, execution);

            DecisionDefinition decisionDefinition = (DecisionDefinition)evaluationEvent.Decision;
            string             tenantId           = execution.TenantId;

            if (string.ReferenceEquals(tenantId, null))
            {
                tenantId = provideTenantId(decisionDefinition, @event);
            }
            @event.TenantId = tenantId;
            return(@event);
        }