Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }