internal static PGSchema GetSchema(string schemaName) { PGSchema schema = new PGSchema(); string sql = FileHelper.ReadSqlResource("schema.sql"); using (NpgsqlCommand command = new NpgsqlCommand(sql)) { command.Parameters.AddWithValue("@SchemaName", schemaName); using (DataTable table = DbOperation.GetDataTable(command)) { if (table.Rows.Count.Equals(1)) { schema.Name = schemaName; schema.Owner = Conversion.TryCastString(table.Rows[0]["owner"]); schema.Description = Conversion.TryCastString(table.Rows[0]["description"]); } } } schema.Tables = TableProcessor.GetTables(schemaName); schema.Views = ViewProcessor.GetViews(schemaName); schema.Functions = FunctionProcessor.GetFunctions(schemaName); schema.TriggerFunctions = TriggerFunctionProcessor.GetTriggerFunctions(schemaName); schema.MaterializedViews = MaterializedViewProcessor.GetMaterializedViews(schemaName); schema.Sequences = SequenceProcessor.GetSequences(schemaName); schema.Types = TypeProcessor.GetTypes(schemaName); return schema; }
internal static PGSchema GetSchema(string schemaName) { PGSchema schema = new PGSchema(); string sql = FileHelper.ReadSqlResource("schema.sql"); using (NpgsqlCommand command = new NpgsqlCommand(sql)) { command.Parameters.AddWithValue("@SchemaName", schemaName); using (DataTable table = DbOperation.GetDataTable(command)) { if (table.Rows.Count.Equals(1)) { schema.Name = schemaName; schema.Owner = Conversion.TryCastString(table.Rows[0]["owner"]); schema.Description = Conversion.TryCastString(table.Rows[0]["description"]); } } } schema.Tables = TableProcessor.GetTables(schemaName); schema.Views = ViewProcessor.GetViews(schemaName); schema.Functions = FunctionProcessor.GetFunctions(schemaName); schema.TriggerFunctions = TriggerFunctionProcessor.GetTriggerFunctions(schemaName); schema.MaterializedViews = MaterializedViewProcessor.GetMaterializedViews(schemaName); schema.Sequences = SequenceProcessor.GetSequences(schemaName); schema.Types = TypeProcessor.GetTypes(schemaName); return(schema); }
internal static Collection <PGSchema> GetSchemas(string schemaPattern, string xSchemaPattern) { Collection <PGSchema> schemas = new Collection <PGSchema>(); string sql = FileHelper.ReadSqlResource("schemas.sql"); using (NpgsqlCommand command = new NpgsqlCommand(sql)) { command.Parameters.AddWithValue("@SchemaPattern", schemaPattern); command.Parameters.AddWithValue("@xSchemaPattern", xSchemaPattern); using (DataTable table = DbOperation.GetDataTable(command)) { if (table.Rows.Count > 0) { foreach (DataRow row in table.Rows) { PGSchema schema = new PGSchema { Name = Conversion.TryCastString(row["namespace"]), Owner = Conversion.TryCastString(row["owner"]), Description = Conversion.TryCastString(row["description"]) }; schemas.Add(schema); } } } } return(schemas); }
private static void BuildDocumentation(string content, List <string> matches, string schemaName) { PGSchema schema = SchemaProcessor.GetSchema(schemaName); content = content.Replace("[DBName]", Program.Database.ToUpperInvariant()); content = content.Replace("[SchemaName]", schemaName); content = SequenceParser.Parse(content, matches, SequenceProcessor.GetSequences(schemaName)); content = TableParser.Parse(content, matches, schema.Tables); content = ViewParser.Parse(content, matches, schema.Views); content = SequenceParser.Parse(content, matches, schema.Sequences); content = MaterializedViewParser.Parse(content, matches, schema.MaterializedViews); content = FunctionParser.Parse(content, matches, schema.Functions); content = FunctionParser.ParseTriggers(content, matches, schema.TriggerFunctions); content = TypeParser.Parse(content, matches, schema.Types); foreach (PgTable table in schema.Tables) { Console.WriteLine("Generating documentation for table \"{0}\".", table.Name); TableRunner.Run(table); } foreach (PgFunction function in schema.Functions) { Console.WriteLine("Generating documentation for function \"{0}\".", function.Name); FunctionRunner.Run(function); } foreach (PgFunction function in schema.TriggerFunctions) { Console.WriteLine("Generating documentation for trigger function \"{0}\".", function.Name); FunctionRunner.Run(function); } foreach (PgMaterializedView materializedView in schema.MaterializedViews) { Console.WriteLine("Generating documentation for materialized view \"{0}\".", materializedView.Name); MaterializedViewRunner.Run(materializedView); } foreach (PgView view in schema.Views) { Console.WriteLine("Generating documentation for view \"{0}\".", view.Name); ViewRunner.Run(view); } foreach (PgType type in schema.Types) { Console.WriteLine("Generating documentation for type \"{0}\".", type.Name); TypeRunner.Run(type); } string targetPath = System.IO.Path.Combine(OutputPath, schemaName + ".html"); FileHelper.WriteFile(content, targetPath); }
internal static Collection<PGSchema> GetSchemas(string schemaPattern, string xSchemaPattern) { Collection<PGSchema> schemas = new Collection<PGSchema>(); string sql = FileHelper.ReadSqlResource("schemas.sql"); using (NpgsqlCommand command = new NpgsqlCommand(sql)) { command.Parameters.AddWithValue("@SchemaPattern", schemaPattern); command.Parameters.AddWithValue("@xSchemaPattern", xSchemaPattern); using (DataTable table = DbOperation.GetDataTable(command)) { if (table.Rows.Count > 0) { foreach (DataRow row in table.Rows) { PGSchema schema = new PGSchema { Name = Conversion.TryCastString(row["namespace"]), Owner = Conversion.TryCastString(row["owner"]), Description = Conversion.TryCastString(row["description"]) }; schemas.Add(schema); } } } } return schemas; }