示例#1
0
        private WfProcessCollection GetDeletedProcesses(WfActivityCollection deletedActivities)
        {
            WfProcessCollection deletedProcesses = new WfProcessCollection();

            foreach (IWfActivity activity in deletedActivities)
            {
                if (activity is IWfAnchorActivity)
                {
                    foreach (IWfOperation operation in ((IWfAnchorActivity)activity).Operations)
                    {
                        foreach (WfBranchProcessInfo branchProcessInfo in operation.Branches)
                        {
                            deletedProcesses.Add(branchProcessInfo.Process);

                            WfProcessCollection deletedSubProcesses =
                                GetDeletedProcesses(branchProcessInfo.Process.Activities);

                            foreach (IWfProcess subProcess in deletedSubProcesses)
                            {
                                deletedProcesses.Add(subProcess);
                            }
                        }
                    }
                }
            }

            return(deletedProcesses);
        }
示例#2
0
        private static void FillProcessesFromPersistence(WfProcessCollection processes, List <string> notInCacheIDs)
        {
            if (notInCacheIDs.Count > 0)
            {
                IWorkflowReader     persistProcess = WorkflowSettings.GetConfig().Reader;
                WfProcessCollection tempCollection = persistProcess.LoadProcesses(notInCacheIDs.ToArray());

                foreach (IWfProcess tempProcess in tempCollection)
                {
                    processes.Add(tempProcess);
                    AddProcessToCache(tempProcess.ID, tempProcess);
                }
            }
        }