Ejemplo n.º 1
0
        static MigrationScript[] GetScriptsToRun(MigrationScript[] scripts, MigrationVersion currentVersion)
        {
            IEnumerable <MigrationScript> scriptsToRun = null;

            switch (_settings.MigrationStrategy)
            {
            case MigrationStrategy.Version:
                string[] scriptsRun = _migrationManager.GetAllMigrations().Select(m => m.Version.ToString().ToLower()).ToArray();

                scriptsToRun = scripts.Where(x => (_settings.VersionThreshold == null || x.Version.Version <= _settings.VersionThreshold.Version) &&
                                             !scriptsRun.Contains(x.Version.ToString().ToLower()));
                break;

            default:
                scriptsToRun = scripts.Where(x => x.Version.Version > currentVersion.Version && (_settings.VersionThreshold == null || x.Version.Version <= _settings.VersionThreshold.Version));
                break;
            }

            return(scriptsToRun.OrderBy(x => x.Version.Version).ToArray());
        }