GetMigrationsRunInDb() public method

public GetMigrationsRunInDb ( DirectoryInfo dbScriptsPath, Server dbServer, string dbname ) : IEnumerable
dbScriptsPath System.IO.DirectoryInfo
dbServer Server
dbname string
return IEnumerable
        public void CheckStuckMigrations()
        {
            _disposableDbServer = DatabaseCreationTests.GetDisposableDbServer();

            TimeSpan maxPeriod = TimeSpan.FromDays(15);

            DirectoryInfo dbpath = DisposableDbManager.FindDatabaseScriptsPath(DbName);

            var stuckMigrations = new List<MigrationManager.Migration>();
            var migrationManager = new MigrationManager();

            IEnumerable<string> migrationSqlFiles =
                migrationManager.GetSqlSriptsIn(dbpath.FullName).Select(file => Path.GetFileNameWithoutExtension(file.Name));

            foreach (var migration in migrationManager.GetMigrationsRunInDb(dbpath, _disposableDbServer, DbName))
            {
                if (migrationSqlFiles.Contains(migration.FileNameWithoutExtension) &&
                    migration.AppliedDate.Add(maxPeriod) < DateTime.Now)
                    stuckMigrations.Add(migration);
            }
            if (stuckMigrations.Count > 0)
            {
                throw new InvalidOperationException(
                    String.Format(
                        "The following migrations have been more than {0} days in staging phase " +
                        "(they need to be merged to the History/ subforlder to not be considered in 'staging'): {1}",
                        maxPeriod.Days, Environment.NewLine + string.Join("," + Environment.NewLine, stuckMigrations.Select(m => m.FileNameWithoutExtension).ToArray())));
            }
        }