Beispiel #1
0
 private static void ReadAllForeignKeys(MetaDbContext context, IReadOnlyList <TableDescription> tableDescriptions)
 {
     foreach (var parent in tableDescriptions)
     {
         parent.ForeignKeyDescriptions = ReadForeignKeysForParent(context, tableDescriptions, parent);
     }
 }
Beispiel #2
0
        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));
        }
Beispiel #3
0
 public DomainEventsController(MetaDbContext metaDbContext, CodeGenDbContext codeGenDbContext, IMapper mapper, ICodeGenerator generator)
 {
     _metaDbContext    = metaDbContext;
     _codeGenDbContext = codeGenDbContext;
     _mapper           = mapper;
     _generator        = generator;
 }
Beispiel #4
0
        // 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();
            });
        }
Beispiel #5
0
 public ValueObjectsController(MetaDbContext metaDbContext, CodeGenDbContext codeGenDbContext, IMapper mapper, ICodeGenerator generator)
 {
     _metaDbContext    = metaDbContext;
     _codeGenDbContext = codeGenDbContext;
     _mapper           = mapper;
     _generator        = generator;
 }
Beispiel #6
0
        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);
            }
        }
Beispiel #7
0
        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;
        }
Beispiel #11
0
        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;
        }
Beispiel #14
0
        public ValueObjectRegisteredHandler(MetaDbContext db)
        {
            Ensure.That(db).IsNotNull();

            _db = db;
        }
 public TeamsController(MetaDbContext metaDb, PeopleDbContext db)
 {
     this.metaDb = metaDb;
     this.db     = db;
 }
Beispiel #16
0
        public EntityRegisteredHandler(MetaDbContext db)
        {
            Ensure.That(db).IsNotNull();

            _db = db;
        }