예제 #1
0
        protected internal virtual void restoreSignalStartEvent(IProcessDefinition previousProcessDefinition, BpmnModel bpmnModel, StartEvent startEvent, EventDefinition eventDefinition)
        {
            SignalEventDefinition          signalEventDefinition = (SignalEventDefinition)eventDefinition;
            ISignalEventSubscriptionEntity subscriptionEntity    = EventSubscriptionEntityManager.CreateSignalEventSubscription();
            Signal signal = bpmnModel.GetSignal(signalEventDefinition.SignalRef);

            if (signal != null)
            {
                subscriptionEntity.EventName = signal.Name;
            }
            else
            {
                subscriptionEntity.EventName = signalEventDefinition.SignalRef;
            }
            subscriptionEntity.ActivityId          = startEvent.Id;
            subscriptionEntity.ProcessDefinitionId = previousProcessDefinition.Id;
            if (!ReferenceEquals(previousProcessDefinition.TenantId, null))
            {
                subscriptionEntity.TenantId = previousProcessDefinition.TenantId;
            }

            EventSubscriptionEntityManager.Insert(subscriptionEntity);
        }
예제 #2
0
        protected internal virtual void restoreMessageStartEvent(IProcessDefinition previousProcessDefinition, BpmnModel bpmnModel, StartEvent startEvent, EventDefinition eventDefinition)
        {
            MessageEventDefinition messageEventDefinition = (MessageEventDefinition)eventDefinition;

            if (bpmnModel.ContainsMessageId(messageEventDefinition.MessageRef))
            {
                Message message = bpmnModel.GetMessage(messageEventDefinition.MessageRef);
                messageEventDefinition.MessageRef = message.Name;
            }

            IMessageEventSubscriptionEntity newSubscription = EventSubscriptionEntityManager.CreateMessageEventSubscription();

            newSubscription.EventName           = messageEventDefinition.MessageRef;
            newSubscription.ActivityId          = startEvent.Id;
            newSubscription.Configuration       = previousProcessDefinition.Id;
            newSubscription.ProcessDefinitionId = previousProcessDefinition.Id;

            if (!ReferenceEquals(previousProcessDefinition.TenantId, null))
            {
                newSubscription.TenantId = previousProcessDefinition.TenantId;
            }

            EventSubscriptionEntityManager.Insert(newSubscription);
        }