예제 #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);
        }