private void ConvertQualityModelsOnTable(IDbConnection conn, IDbTransaction tran, String tableName) { var qualitiesToUpdate = new Dictionary <String, String>(); using (IDbCommand qualityModelCmd = conn.CreateCommand()) { qualityModelCmd.Transaction = tran; qualityModelCmd.CommandText = @"SELECT Distinct Quality FROM " + tableName; using (IDataReader qualityModelReader = qualityModelCmd.ExecuteReader()) { while (qualityModelReader.Read()) { var qualityJson = qualityModelReader.GetString(0); LegacyQualityModel062 quality; if (!Json.TryDeserialize <LegacyQualityModel062>(qualityJson, out quality)) { continue; } var newQualityModel = new QualityModel062 { Quality = quality.Quality, Revision = new Revision() }; if (quality.Proper) { newQualityModel.Revision.Version = 2; } var newQualityJson = newQualityModel.ToJson(); qualitiesToUpdate.Add(qualityJson, newQualityJson); } } } foreach (var quality in qualitiesToUpdate) { using (IDbCommand updateCmd = conn.CreateCommand()) { updateCmd.Transaction = tran; updateCmd.CommandText = "UPDATE " + tableName + " SET Quality = ? WHERE Quality = ?"; updateCmd.AddParameter(quality.Value); updateCmd.AddParameter(quality.Key); updateCmd.ExecuteNonQuery(); } } }
private void ConvertQualityModelsOnTable(IDbConnection conn, IDbTransaction tran, String tableName) { var qualitiesToUpdate = new Dictionary<String, String>(); using (IDbCommand qualityModelCmd = conn.CreateCommand()) { qualityModelCmd.Transaction = tran; qualityModelCmd.CommandText = @"SELECT Distinct Quality FROM " + tableName; using (IDataReader qualityModelReader = qualityModelCmd.ExecuteReader()) { while (qualityModelReader.Read()) { var qualityJson = qualityModelReader.GetString(0); LegacyQualityModel062 quality; if (!Json.TryDeserialize<LegacyQualityModel062>(qualityJson, out quality)) { continue; } var newQualityModel = new QualityModel062 { Quality = quality.Quality, Revision = new Revision() }; if (quality.Proper) newQualityModel.Revision.Version = 2; var newQualityJson = newQualityModel.ToJson(); qualitiesToUpdate.Add(qualityJson, newQualityJson); } } } foreach (var quality in qualitiesToUpdate) { using (IDbCommand updateCmd = conn.CreateCommand()) { updateCmd.Transaction = tran; updateCmd.CommandText = "UPDATE " + tableName + " SET Quality = ? WHERE Quality = ?"; updateCmd.AddParameter(quality.Value); updateCmd.AddParameter(quality.Key); updateCmd.ExecuteNonQuery(); } } }