public void RecordStoredCodeDefinition(StoredCodeDefinition storedCodeDefinition, int lastMigrationNumber) { // need to look for the matching one by name var newDeployedDefinition = new DeployedStoredCodeDefinition(storedCodeDefinition.Name, storedCodeDefinition.Fingerprint); var fooundIndex = _storedCodeDefinitions.FindIndex( d => d.Name.Equals(storedCodeDefinition.Name, StringComparison.OrdinalIgnoreCase)); if (fooundIndex >= 0) { _storedCodeDefinitions[fooundIndex] = newDeployedDefinition; } else { _storedCodeDefinitions.Add(newDeployedDefinition); } }
/// <summary> /// Returns all of the stored code definitions that have been previously applied as recorded in this journal. /// The order of the definitions does not matter since the names are used to match them up with the available ones /// that the MigrationsProvider finds. /// </summary> /// <returns></returns> public IReadOnlyList <DeployedStoredCodeDefinition> GetDeployedStoredCodeDefinitions() { var toReturn = new List <DeployedStoredCodeDefinition>(); _selectCommand.Parameters["@Repeatable"].Value = true; using (var rdr = _selectCommand.ExecuteReader()) { while (rdr.Read()) { //var migrationNumber = rdr.GetInt32(0); var name = rdr.GetString(1); //var complete = rdr.GetBoolean(2); var fingerprint = rdr.GetString(3); var deployedScript = new DeployedStoredCodeDefinition(name, fingerprint); toReturn.Add(deployedScript); } } return(toReturn); }