public ISet<TypedDatabaseObject> GetAffectedObjects(IDictionary<TypedDatabaseObject, GraphNode> dbState, Func<TypedDatabaseObject, bool> isBuildItem) { // Find all database objects that depend on the objects that are about to be scripted. // Also recursively find all the objects that depend on those objects. var typedObjectComparer = new TypedDatabaseObjectComparer(); ISet<TypedDatabaseObject> databaseObjectsToRebuild = new HashSet<TypedDatabaseObject>(typedObjectComparer); foreach (var s in dbState.Values) { if (s.Dependencies.Any(isBuildItem) && !isBuildItem(s.Value) && !databaseObjectsToRebuild.Contains(s.Value)) { databaseObjectsToRebuild.Add(s.Value); AddAllReferences(s.Value, dbState, databaseObjectsToRebuild, isBuildItem); } } return databaseObjectsToRebuild; }
public ISet <TypedDatabaseObject> GetAffectedObjects(IDictionary <TypedDatabaseObject, GraphNode> dbState, Func <TypedDatabaseObject, bool> isBuildItem) { // Find all database objects that depend on the objects that are about to be scripted. // Also recursively find all the objects that depend on those objects. var typedObjectComparer = new TypedDatabaseObjectComparer(); ISet <TypedDatabaseObject> databaseObjectsToRebuild = new HashSet <TypedDatabaseObject>(typedObjectComparer); foreach (var s in dbState.Values) { if (s.Dependencies.Any(isBuildItem) && !isBuildItem(s.Value) && !databaseObjectsToRebuild.Contains(s.Value)) { databaseObjectsToRebuild.Add(s.Value); AddAllReferences(s.Value, dbState, databaseObjectsToRebuild, isBuildItem); } } return(databaseObjectsToRebuild); }