Пример #1
0
        public static IActivitiEvent CreateEvent(ActivitiEventType type, string executionId, string processInstanceId, string processDefinitionId)
        {
            ActivitiEventImpl newEvent = new ActivitiEventImpl(type)
            {
                ExecutionId         = executionId,
                ProcessDefinitionId = processDefinitionId,
                ProcessInstanceId   = processInstanceId
            };

            return(newEvent);
        }
Пример #2
0
 protected internal static void PopulateEventWithCurrentContext(ActivitiEventImpl @event)
 {
     if (@event is IActivitiEntityEvent actEvent)
     {
         object persistedObject = actEvent.Entity;
         if (persistedObject is IJob jo)
         {
             @event.ExecutionId         = jo.ExecutionId;
             @event.ProcessInstanceId   = jo.ProcessInstanceId;
             @event.ProcessDefinitionId = jo.ProcessDefinitionId;
         }
         else if (persistedObject is IExecutionEntity po)
         {
             @event.ExecutionId         = po.Id;
             @event.ProcessInstanceId   = po.ProcessInstanceId;
             @event.ProcessDefinitionId = po.ProcessDefinitionId;
         }
         else if (persistedObject is IIdentityLinkEntity idLink)
         {
             if (idLink.ProcessDefinitionId is object)
             {
                 @event.ProcessDefinitionId = idLink.ProcessDefId;
             }
             else if (idLink.ProcessInstance is object)
             {
                 @event.ProcessDefinitionId = idLink.ProcessInstance.ProcessDefinitionId;
                 @event.ProcessInstanceId   = idLink.ProcessInstanceId;
                 @event.ExecutionId         = idLink.ProcessInstanceId;
             }
             else if (idLink.Task is object)
             {
                 @event.ProcessDefinitionId = idLink.Task.ProcessDefinitionId;
                 @event.ProcessInstanceId   = idLink.Task.ProcessInstanceId;
                 @event.ExecutionId         = idLink.Task.ExecutionId;
             }
         }
         else if (persistedObject is ITask task)
         {
             @event.ProcessInstanceId   = task.ProcessInstanceId;
             @event.ExecutionId         = task.ExecutionId;
             @event.ProcessDefinitionId = task.ProcessDefinitionId;
         }
         else if (persistedObject is IProcessDefinition procDef)
         {
             @event.ProcessDefinitionId = procDef.Id;
         }
     }
 }
Пример #3
0
        /// <param name="type">
        ///          type of event </param>
        /// <returns> an <seealso cref="IActivitiEvent"/> that doesn't have it's execution context-fields filled, as the event is a global event, independent of any running execution. </returns>
        public static IActivitiEvent CreateGlobalEvent(ActivitiEventType type)
        {
            ActivitiEventImpl newEvent = new ActivitiEventImpl(type);

            return(newEvent);
        }