コード例 #1
0
ファイル: ClassDelegate.cs プロジェクト: zhangzihan/nactivity
 public virtual IDictionary <string, object> GetCustomPropertiesMap(IExecutionEntity execution)
 {
     if (customPropertiesResolverInstance == null)
     {
         customPropertiesResolverInstance = CustomPropertiesResolverInstance;
     }
     return(customPropertiesResolverInstance.GetCustomPropertiesMap(execution));
 }
コード例 #2
0
        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));
        }
コード例 #3
0
        protected internal virtual ICustomPropertiesResolver CreateCustomPropertiesResolver(ActivitiListener activitiListener)
        {
            ICustomPropertiesResolver customPropertiesResolver = null;
            IListenerFactory          listenerFactory          = Context.ProcessEngineConfiguration.ListenerFactory;

            if (ImplementationType.IMPLEMENTATION_TYPE_CLASS.Equals(activitiListener.CustomPropertiesResolverImplementationType, StringComparison.CurrentCultureIgnoreCase))
            {
                customPropertiesResolver = listenerFactory.CreateClassDelegateCustomPropertiesResolver(activitiListener);
            }
            else if (ImplementationType.IMPLEMENTATION_TYPE_EXPRESSION.Equals(activitiListener.CustomPropertiesResolverImplementationType, StringComparison.CurrentCultureIgnoreCase))
            {
                customPropertiesResolver = listenerFactory.CreateExpressionCustomPropertiesResolver(activitiListener);
            }
            else if (ImplementationType.IMPLEMENTATION_TYPE_DELEGATEEXPRESSION.Equals(activitiListener.CustomPropertiesResolverImplementationType, StringComparison.CurrentCultureIgnoreCase))
            {
                customPropertiesResolver = listenerFactory.CreateDelegateExpressionCustomPropertiesResolver(activitiListener);
            }
            return(customPropertiesResolver);
        }
コード例 #4
0
        protected internal virtual IDictionary <string, object> InvokeCustomPropertiesResolver(IExecutionEntity execution, ICustomPropertiesResolver customPropertiesResolver)
        {
            IDictionary <string, object> customPropertiesMapToUse = null;

            if (customPropertiesResolver != null)
            {
                customPropertiesMapToUse = customPropertiesResolver.GetCustomPropertiesMap(execution);
            }
            return(customPropertiesMapToUse);
        }