private void CollectDependenciesControllerTypesAndBinaryConfigs(IScreenControllerProxy visiting, HashSet <IScreenControllerProxy> visited, HashSet <Type> allControllers, Dictionary <string, BinaryContentUtils.DbBinaryConfig> proxyBinaryConfigs) { if (visited.Add(visiting)) { allControllers.Add(visiting.GetControllerType()); var newValues = visiting.GetDbBinaryConfigs().Where(kvp => !proxyBinaryConfigs.ContainsKey(kvp.Key)); proxyBinaryConfigs.AddRange(newValues); visiting.EnsureInitialized(); foreach (var childControllerProxy in visiting.GetChildControllers()) { CollectDependenciesControllerTypesAndBinaryConfigs(childControllerProxy, visited, allControllers, proxyBinaryConfigs); } } }
protected static void SafeAddChildController(IScreenControllerProxy controllerProxy, HashSet <IScreenControllerProxy> childControllers) { childControllers.Add(controllerProxy); }