public static DatabaseVersion GetLastExecutedVersion(Database database) { DatabaseVersion databaseVersion = new DatabaseVersion { ReleaseVersion = DatabaseVersion.NO_EXECUTED_RELEASE_VERSION }; List <string> releaseVersions = new List <string>(); SqlDatabaseManager databaseManager = new SqlDatabaseManager(database, true); IDataReader reader = databaseManager.ExecuteReader("SELECT DISTINCT RELEASE_VERSION FROM " + Constants.CHANGE_LOG_TABLE); while (reader.Read()) { releaseVersions.Add((string)reader["RELEASE_VERSION"]); } reader.Close(); if (releaseVersions.Count == 0) { databaseManager.CloseConnection(); return(databaseVersion); } var latestReleaseVerion = ChangeReader.AllReleaseChanges.Where(x => releaseVersions.Contains(x.Name)).OrderByDescending(y => y.Sequence).First(); databaseVersion.ReleaseVersion = latestReleaseVerion.Name; reader = databaseManager.ExecuteReader(@"SELECT MAX(CHANGE_VERSION) AS CHANGE_VERSION FROM " + Constants.CHANGE_LOG_TABLE + " WHERE RELEASE_VERSION = '" + databaseVersion.ReleaseVersion + "';"); while (reader.Read()) { databaseVersion.ChangeVersion = (int)reader["CHANGE_VERSION"]; } reader.Close(); databaseManager.CloseConnection(); return(databaseVersion); }
public static int GetLastExecutedChangeVersion(Database database, string releaseVersion) { int changeVersion = 0; SqlDatabaseManager databaseManager = new SqlDatabaseManager(database, true); IDataReader reader = databaseManager.ExecuteReader(@"SELECT COALESCE(MAX(CHANGE_VERSION), 0) AS CHANGE_VERSION FROM " + Constants.CHANGE_LOG_TABLE + " WHERE RELEASE_VERSION = '" + releaseVersion + "';"); while (reader.Read()) { changeVersion = (int)reader["CHANGE_VERSION"]; } reader.Close(); databaseManager.CloseConnection(); return(changeVersion); }