public static StackIdContainer ReadStackTable( SqlConnection connection, SqlTransaction transaction, string databaseName, string tableName, ITelemetryLogger logger ) { if (connection == null) { throw new ArgumentNullException("connection"); } //transaction allowed to be null if (databaseName == null) { throw new ArgumentNullException("databaseName"); } if (tableName == null) { throw new ArgumentNullException("tableName"); } if (logger == null) { throw new ArgumentNullException("logger"); } var result = new StackIdContainer(); logger.LogMessage(typeof(SqlHelper), "PerformanceTelemetry Before ReadStackTable"); var readStackClause = ReadStackTableClause.Replace("{_DatabaseName_}", databaseName); readStackClause = readStackClause.Replace("{_TableName_}", tableName); using (var cmd = new System.Data.SqlClient.SqlCommand(readStackClause, connection, transaction)) { using (var reader = cmd.ExecuteReader()) { while (reader.Read()) { var id = (int)reader["id"]; var key = (string)reader["key"]; result.ForceAdd(key, id); } } } logger.LogMessage(typeof(SqlHelper), "PerformanceTelemetry After ReadStackTable"); return result; }