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); }
public void Filter(MigrationMapStateInfo databaseMigrationState) { MigrationFilterContext context = new MigrationFilterContext() { MigrationNodes = databaseMigrationState.MigrationNodesInfo }; foreach (var filter in this.Filters) { filter.Filter(context); } }