private WfBranchProcessInfoCollection LoadBranches() { WfBranchProcessInfoCollection resultCollection = new WfBranchProcessInfoCollection(); IWorkflowReader persistProcess = WorkflowSettings.GetConfig().Reader; List<string> branchProcessIDs = persistProcess.GetBranchProcessIDsByOperationID(this.ID); WfProcessCollection processes = WfRuntime.GetWfProcesses(branchProcessIDs.ToArray()); IWfProcess[] processesArray = new IWfProcess[processes.Count]; int i = 0; foreach (IWfProcess process in processes) { ((WfBranchProcessInfo)process.EntryInfo).OwnerOperation = this; processesArray[i++] = process; } //按照子流程的序号排序 Array.Sort<IWfProcess>(processesArray, delegate(IWfProcess process1, IWfProcess process2) { return Math.Sign(process1.EntryInfo.Sequence - process2.EntryInfo.Sequence); }); foreach (IWfProcess process in processesArray) resultCollection.Add(process.EntryInfo); return resultCollection; }
private WfBranchProcessInfoCollection DeleteBranchProcesses(List<string> DeletedBranchIDs) { WfBranchProcessInfoCollection deletedBranchProcesses = new WfBranchProcessInfoCollection(); WfBranchProcessInfo branchInfo; for (int i = 0; i < DeletedBranchIDs.Count; i++) { branchInfo = this.Branches[DeletedBranchIDs[i]]; branchInfo.BranchInfoState = State.Deleted; deletedBranchProcesses.Add(branchInfo); this.Branches.Remove(branchInfo); } return deletedBranchProcesses; }