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); }
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); } } }