public DataExchangeEngine() { //注册通用数据交换服务 AddHandle("*", new GeneralDataExchangeHandle()); //注册扩展的数据交换服务 foreach (DataExchangeProviderInfo info in LightWorkflowSettings.Instance.DataExchangeProviderInfos) { string proecessCode = info.Key.Trim().ToUpper(); //根据info.Key,实现不同类型的流程注册不同的处理方法 IDataExchangeHandle handle = DataExchangeHandleBuilder.Instance.Build(info.Key); if (handle != null) { AddHandle(proecessCode, handle); } } }
protected void AddHandle(string processCode, IDataExchangeHandle handleInstance) { DataExchangeInstance instance = null; if (!dataExchangeInstanceList.ContainsKey(processCode)) { instance = new DataExchangeInstance(); dataExchangeInstanceList.Add(processCode, instance); } else { instance = dataExchangeInstanceList[processCode]; } instance.ProcessStarted += handleInstance.OnProcessStarted; instance.ProcessReStarted += handleInstance.OnProcessReStarted; instance.ProcessApprovalCompleted += handleInstance.OnProcessApprovalCompleted; instance.ProcessCompleted += handleInstance.OnProcessCompleted; instance.NodeInitiated += handleInstance.OnNodeInitiated; instance.NodeCompleted += handleInstance.OnNodeCompleted; instance.ProcessRejected += handleInstance.OnProcessRejected; instance.ProcessForwarded += handleInstance.OnProcessForwarded; instance.ProcessEntrusted += handleInstance.OnProcessEntrusted; instance.ProcessCanceled += handleInstance.OnProcessCanceled; }