// Transaction Dependent execution listener public virtual void Notify(string processInstanceId, string executionId, FlowElement flowElement, IDictionary <string, object> executionVariables, IDictionary <string, object> customPropertiesMap) { if (transactionDependentExecutionListenerInstance == null) { transactionDependentExecutionListenerInstance = TransactionDependentExecutionListenerInstance; } // Note that we can't wrap it in the delegate interceptor like usual here due to being executed when the context is already removed. transactionDependentExecutionListenerInstance.Notify(processInstanceId, executionId, flowElement, executionVariables, customPropertiesMap); }
protected internal virtual void PlanTransactionDependentExecutionListener(IListenerFactory listenerFactory, IExecutionEntity execution, ITransactionDependentExecutionListener executionListener, ActivitiListener activitiListener) { IDictionary <string, object> executionVariablesToUse = execution.Variables; ICustomPropertiesResolver customPropertiesResolver = CreateCustomPropertiesResolver(activitiListener); IDictionary <string, object> customPropertiesMapToUse = InvokeCustomPropertiesResolver(execution, customPropertiesResolver); TransactionDependentExecutionListenerExecutionScope scope = new TransactionDependentExecutionListenerExecutionScope(execution.ProcessInstanceId, execution.Id, execution.CurrentFlowElement, executionVariablesToUse, customPropertiesMapToUse); AddTransactionListener(activitiListener, new ExecuteExecutionListenerTransactionListener(executionListener, scope)); }
public ExecuteExecutionListenerTransactionListener(ITransactionDependentExecutionListener listener, TransactionDependentExecutionListenerExecutionScope scope) { this.listener = listener; this.scope = scope; }