Exemplo n.º 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);
        }
Exemplo n.º 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);
        }