示例#1
0
        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;
        }
示例#2
0
        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;
        }