public SchemaDefinitionCreateResult CreateSchemaDefinition(IEnumerable <Type> types, string schemaName = null) { SchemaName = schemaName ?? "null"; FireEvent(CreatingSchemaStarted, EventArgs.Empty); AddAugmentations(); FireEvent(CreatingTypeSchemaStarted, EventArgs.Empty); TypeSchema typeSchema = CreateTypeSchema(types, schemaName); FireEvent(CreatingTypeSchemaFinished, EventArgs.Empty); schemaName = schemaName ?? string.Format("_{0}_", typeSchema.Name); SchemaManager.SetSchema(schemaName, false); //TODO: enable more granular manipulation of schema file path in schema manager by giving it a PathProvider property SchemaName = schemaName; FireEvent(WritingDaoSchemaStarted, EventArgs.Empty); List <KeyColumn> missingKeyColumns = new List <KeyColumn>(); List <ForeignKeyColumn> missingForeignKeyColumns = new List <ForeignKeyColumn>(); WriteDaoSchema(typeSchema, SchemaManager, missingKeyColumns, missingForeignKeyColumns, TableNameProvider); FireEvent(WritingDaoSchemaFinished, EventArgs.Empty); SchemaDefinitionCreateResult result = new SchemaDefinitionCreateResult(SchemaManager.GetCurrentSchema(), typeSchema, missingKeyColumns.ToArray(), missingForeignKeyColumns.ToArray()); return(result); }
public static void RazorParseTableWithKeyColumn() { RazorParser <TableTemplate> razorParser = new RazorParser <TableTemplate>(); razorParser.GetDefaultAssembliesToReference = DaoGenerator.GetReferenceAssemblies; Table value = GetTable(); string id = "".RandomString(5); value.AddColumn(new KeyColumn(id, DataTypes.Long, false)); value.AddColumn(new ForeignKeyColumn { AllowNull = false, Name = "ForeignKeyColumn", ReferencedKey = id, ReferencedTable = "bananas", DataType = DataTypes.Long }); SchemaManager mgr = new SchemaManager(); SchemaDefinition schema = mgr.GetCurrentSchema(); string result = razorParser.ExecuteResource("Class.tmpl", typeof(SchemaManager), new { Model = value, Schema = schema, Namespace = "Monkey.balls" }); Expect.IsTrue(result.Contains(id)); OutLine(result, ConsoleColor.Cyan); }