Example #1
0
        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;
        }