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