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); }
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; } } }
/// <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); }