private static void ScriptObjects(Database database, IDocumentGenerator documentGenerator, string databasePath, Action <string> announcer) { DatabaseObjectToScriptedDirectoryProcessor databaseObjectToScriptedDirectoryProcessor = new DatabaseObjectToScriptedDirectoryProcessor(documentGenerator, databasePath); documentGenerator.AddEntry(database.Name + " - Object Documentation", 18, true, Alignment.Center); announcer(">Tables"); databaseObjectToScriptedDirectoryProcessor.Process(database.Tables); announcer("<Tables"); announcer(">Views"); databaseObjectToScriptedDirectoryProcessor.Process(database.Views); announcer(">Views"); announcer(">Roles"); databaseObjectToScriptedDirectoryProcessor.Process(database.Roles); announcer("<Roles"); announcer(">Stored Procedures"); databaseObjectToScriptedDirectoryProcessor.Process(database.StoredProcedures); announcer("<Stored Procedures"); announcer(">User Defined Functions"); databaseObjectToScriptedDirectoryProcessor.Process(database.UserDefinedFunctions); announcer("<User Defined Functions"); announcer(">User Defined Data Types"); databaseObjectToScriptedDirectoryProcessor.Process(database.UserDefinedDataTypes); announcer("<User Defined Data Types"); announcer(">Users"); databaseObjectToScriptedDirectoryProcessor.Process(database.Users); announcer("<Users"); announcer(">Remove of empty directories"); databaseObjectToScriptedDirectoryProcessor.CleanUpEmptyDirectories(); announcer("<Remove of empty directories"); }