Esempio n. 1
0
        /// <summary>
        /// 调用外部业务应用的程序方法
        /// </summary>
        /// <param name="session">数据会话</param>
        /// <param name="eventType">事件类型</param>
        /// <param name="eventList">事件列表</param>
        /// <param name="context">上下文</param>
        internal static void InvokeExternalDelegate(IDbSession session,
                                                    EventFireTypeEnum eventType,
                                                    DelegateEventList eventList,
                                                    DelegateContext context)
        {
            //过滤注册事件类型
            var eventListFiltered = eventList.Where(k => k.Key == eventType);

            if (eventListFiltered != null)
            {
                //执行方法
                Execute(session, context, eventListFiltered);
            }
        }
Esempio n. 2
0
        /// <summary>
        /// 调用外部业务应用的程序方法
        /// </summary>
        /// <param name="session">数据会话</param>
        /// <param name="eventType">事件类型</param>
        /// <param name="eventList">事件列表</param>
        /// <param name="instanceID">实例ID</param>
        /// <param name="code">实例代码</param>
        internal static void InvokeExternalDelegate(IDbSession session,
                                                    EventFireTypeEnum eventType,
                                                    DelegateEventList eventList,
                                                    int instanceID,
                                                    string code = null)
        {
            //过滤注册事件类型
            var eventListFiltered = eventList.Where(k => k.Key == eventType);

            if (eventListFiltered != null)
            {
                //执行方法
                Execute(session, instanceID, code, eventListFiltered);
            }
        }
Esempio n. 3
0
        /// <summary>
        /// 调用外部业务应用的程序方法
        /// </summary>
        /// <param name="session">数据会话</param>
        /// <param name="eventType">事件类型</param>
        /// <param name="eventList">事件列表</param>
        /// <param name="processInstanceID">流程实例ID</param>
        internal static void InvokeExternalDelegate(IDbSession session,
                                                    EventFireTypeEnum eventType,
                                                    DelegateEventList eventList,
                                                    int processInstanceID)
        {
            //过滤注册事件类型
            var eventListFiltered = eventList.Where(k => k.Key == eventType);

            if (eventListFiltered != null)
            {
                var pim    = new ProcessInstanceManager();
                var entity = pim.GetById(session.Connection, processInstanceID, session.Transaction);
                //执行方法
                var context = new DelegateContext
                {
                    AppInstanceID     = entity.AppInstanceID,
                    ProcessGUID       = entity.ProcessGUID,
                    ProcessInstanceID = processInstanceID
                };
                Execute(session, context, eventListFiltered);
            }
        }