private void DoHierarchicalAction(SCObjectSet objectSet, IImportContext context, IDictionary <string, PC.SchemaObjectBase> knownObjects, Dictionary <string, IList <PC.SCOrganization> > orgToOrgRelations, Dictionary <string, IList <PC.SCUser> > orgToUserRelations, Dictionary <string, IList <PC.SCGroup> > orgToGroupRelations, PC.SCOrganization currentParent, HierarchicalAction actionAdapter) { // 爬树 PC.SchemaObjectCollection objects = objectSet.Objects; if (orgToOrgRelations.ContainsKey(currentParent.ID)) { var childList = orgToOrgRelations[currentParent.ID]; for (int i = 0; i < childList.Count; i++) { this.currentSteps++; var org = childList[i]; System.Diagnostics.Debug.WriteLine("正在处理组织" + org.Name); actionAdapter.ExecuteEachOrganization(objectSet, context, knownObjects, org, orgToOrgRelations, orgToUserRelations, orgToGroupRelations); this.DoHierarchicalAction(objectSet, context, knownObjects, orgToOrgRelations, orgToUserRelations, orgToGroupRelations, org, actionAdapter); } } }
private void DoHierarchicalAction(SCObjectSet objectSet, IImportContext context, IDictionary<string, PC.SchemaObjectBase> knownObjects, Dictionary<string, IList<PC.SCOrganization>> orgToOrgRelations, Dictionary<string, IList<PC.SCUser>> orgToUserRelations, Dictionary<string, IList<PC.SCGroup>> orgToGroupRelations, PC.SCOrganization currentParent, HierarchicalAction actionAdapter) { // 爬树 PC.SchemaObjectCollection objects = objectSet.Objects; if (orgToOrgRelations.ContainsKey(currentParent.ID)) { var childList = orgToOrgRelations[currentParent.ID]; for (int i = 0; i < childList.Count; i++) { this.currentSteps++; var org = childList[i]; System.Diagnostics.Debug.WriteLine("正在处理组织" + org.Name); actionAdapter.ExecuteEachOrganization(objectSet, context, knownObjects, org, orgToOrgRelations, orgToUserRelations, orgToGroupRelations); this.DoHierarchicalAction(objectSet, context, knownObjects, orgToOrgRelations, orgToUserRelations, orgToGroupRelations, org, actionAdapter); } } }