Ejemplo n.º 1
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);
        }