コード例 #1
0
        public MigrationMapStateInfo GetState(MigrationMap migrationMap)
        {
            var executedMigrations    = dataProvider.ListExecutedMigrations(identifier).Select(x => x.MigrationId);
            var migrationMapStateInfo = new MigrationMapStateInfo()
            {
                MigrationNodesInfo = migrationMap.MigrationNodes.Select(x => {
                    var nodeInfo = new MigrationNodeStateInfo()
                    {
                        MigrationNode = x
                    };
                    nodeInfo.MigrationsInfo = x.Migrations.Select(y =>
                    {
                        var migrationInfo = new MigrationStateInfo()
                        {
                            Migration = y
                        };
                        migrationInfo.CurrentState = executedMigrations.Contains(y.Identifier) ? Migration.MigrationState.Executed : Migration.MigrationState.ToUpgrade;
                        return(migrationInfo);
                    }).ToList();
                    return(nodeInfo);
                }).ToList()
            };

            return(migrationMapStateInfo);
        }
コード例 #2
0
        public void Filter(MigrationMapStateInfo databaseMigrationState)
        {
            MigrationFilterContext context = new MigrationFilterContext()
            {
                MigrationNodes = databaseMigrationState.MigrationNodesInfo
            };

            foreach (var filter in this.Filters)
            {
                filter.Filter(context);
            }
        }