private static void ReadAllForeignKeys(MetaDbContext context, IReadOnlyList <TableDescription> tableDescriptions) { foreach (var parent in tableDescriptions) { parent.ForeignKeyDescriptions = ReadForeignKeysForParent(context, tableDescriptions, parent); } }
private static IQueryable <ColumnDescription> ReadColumnDescriptions(MetaDbContext context, TableDescription tableDescription) { var withIdentity = from column in context.Columns.Include(_ => _.Identity) where column.IsIdentity && column.ObjectId == tableDescription.ObjectId select new ColumnDescription( column.ColumnId, column.Name, MetaDbContext.TypeName(column.UserTypeId), column.IsNullable ?? false, column.IsComputed, column.MaxLength, column.Precision, column.Scale, new Identity(column.Identity.SeedValue, column.Identity.IncrementValue)) { Parent = tableDescription, }; var withoutIdentity = from column in context.Columns where !column.IsIdentity && column.ObjectId == tableDescription.ObjectId select new ColumnDescription( column.ColumnId, column.Name, MetaDbContext.TypeName(column.UserTypeId), column.IsNullable ?? false, column.IsComputed, column.MaxLength, column.Precision, column.Scale, null) { Parent = tableDescription, }; return(withIdentity.Concat(withoutIdentity).OrderBy(_ => _.Order)); }
public DomainEventsController(MetaDbContext metaDbContext, CodeGenDbContext codeGenDbContext, IMapper mapper, ICodeGenerator generator) { _metaDbContext = metaDbContext; _codeGenDbContext = codeGenDbContext; _mapper = mapper; _generator = generator; }
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IWebHostEnvironment env, MetaDbContext metaDbContext, CodeGenDbContext codeGenDbContext) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } app.UseSwagger(); app.UseSwaggerUI(c => { c.SwaggerEndpoint("/swagger/v1/swagger.json", "DoMeta API V1"); }); // Ensure that query db is created metaDbContext.Database.EnsureCreated(); codeGenDbContext.Database.EnsureCreated(); // Use Kledex and ensure that domain db is created app.UseKledex().EnsureDomainDbCreated(); app.UseHttpsRedirection(); app.UseRouting(); app.UseCors("Cors"); app.UseAuthorization(); app.UseEndpoints(endpoints => { endpoints.MapControllers(); }); }
public ValueObjectsController(MetaDbContext metaDbContext, CodeGenDbContext codeGenDbContext, IMapper mapper, ICodeGenerator generator) { _metaDbContext = metaDbContext; _codeGenDbContext = codeGenDbContext; _mapper = mapper; _generator = generator; }
private static IEnumerable <TableDescription> ReadTableDescriptions(MetaDbContext context) { var tableDescriptions = from tableDescription in context.Tables select new TableDescription( tableDescription.ObjectId, MetaDbContext.SchemaName(tableDescription.SchemaId), tableDescription.Name, new DateTimeOffset(tableDescription.CreateDate), new DateTimeOffset(tableDescription.ModifyDate)); foreach (var tableDescription in tableDescriptions) { tableDescription.ColumnDescriptions = ReadColumnDescriptions(context, tableDescription).ToList(); yield return(tableDescription); } }
private static IReadOnlyList <ForeignKeyDescription> ReadForeignKeysForParent(MetaDbContext context, IReadOnlyList <TableDescription> tables, TableDescription parent) { var foreignKeyGroups = from fkc in context.ForeignKeyColumns where fkc.ParentObjectId == parent.ObjectId group new { fkc.ConstraintColumnId, fkc.ParentColumnId, fkc.ReferencedColumnId, } by fkc.ConstraintObjectId; var foreignKeys = new List <ForeignKeyDescription>(); foreach (var foreignKeyColumnGroup in foreignKeyGroups) { var foreignKey = context.ForeignKeys.Single(_ => _.ObjectId == foreignKeyColumnGroup.Key); var referenced = tables.Single(_ => _.ObjectId == foreignKey.ReferencedObjectId); var columnRelationships = new List <ColumnRelationshipDescription>(); foreach (var foreignKeyColumn in foreignKeyColumnGroup) { var parentColumn = parent.ColumnDescriptions.Single(_ => _.Order == foreignKeyColumn.ParentColumnId); var referencedColumn = referenced.ColumnDescriptions.Single(c => c.Order == foreignKeyColumn.ReferencedColumnId); var columnRelationship = new ColumnRelationshipDescription(foreignKeyColumn.ConstraintColumnId) { Parent = parentColumn, Referenced = referencedColumn, }; columnRelationships.Add(columnRelationship); } var foreignKeyDescription = new ForeignKeyDescription(foreignKey.Name, foreignKey.CreateDate, foreignKey.ModifyDate) { ColumnRelationshipDescriptions = columnRelationships, }; foreignKeys.Add(foreignKeyDescription); } return(foreignKeys); }
public EntityRelationAddedHandler(MetaDbContext db) { Ensure.That(db).IsNotNull(); _db = db; }
// Just reuse another controller, and expose the endpoints in a // controller requiring Authorization. public ProtectedTeamsController(MetaDbContext teamUserDb, PeopleDbContext db) : base(teamUserDb, db) { }
public AggregateDomainEventAddedHandler(MetaDbContext db) { Ensure.That(db).IsNotNull(); _db = db; }
public GetEntitiesHandler(MetaDbContext db) { Ensure.That(db).IsNotNull(); _db = db; }
public MetaTypePropertyAddedHandler(MetaDbContext db) { Ensure.That(db).IsNotNull(); _db = db; }
public GetValueObjectsHandler(MetaDbContext db) { Ensure.That(db).IsNotNull(); _db = db; }
public ValueObjectRegisteredHandler(MetaDbContext db) { Ensure.That(db).IsNotNull(); _db = db; }
public TeamsController(MetaDbContext metaDb, PeopleDbContext db) { this.metaDb = metaDb; this.db = db; }
public EntityRegisteredHandler(MetaDbContext db) { Ensure.That(db).IsNotNull(); _db = db; }