コード例 #1
0
        public void CreateCommandReturnsSqlCommandWrapper()
        {
            // Arrange
            using (var sut = new SqlConnectionWrapper(DatabaseFixture.LogEventsConnectionString, null))
            {
                // Act
                var result = sut.CreateCommand();

                // Assert
                Assert.NotNull(result);
            }
        }
コード例 #2
0
        public void CreateCommandWithParameterReturnsSqlCommandWrapper()
        {
            // Arrange
            using (var sut = new SqlConnectionWrapper(DatabaseFixture.LogEventsConnectionString, null))
            {
                // Act
                var result = sut.CreateCommand("CommandText");

                // Assert
                Assert.NotNull(result);
                Assert.Equal("CommandText", result.CommandText);
            }
        }
コード例 #3
0
        private static async Task <DATCommandResult> RunSqlQuery(string query, string connectionString, CancellationToken cancellationToken)
        {
            var result = new DATCommandResult
            {
                QueryStatistics = new List <object>(),
                ResultSets      = new List <List <ExpandoObject> >()
            };

            using (var dbConnectionWrapper = new SqlConnectionWrapper(connectionString))
                using (var dbCommandWrapper = dbConnectionWrapper.CreateCommand())
                {
                    dbCommandWrapper.CommandType = CommandType.Text;
                    dbCommandWrapper.CommandText = query;

                    await dbConnectionWrapper.OpenAsync(cancellationToken : cancellationToken);

                    using (DbDataReader reader = await dbCommandWrapper.ExecuteReaderAsync(cancellationToken: cancellationToken))
                    {
                        do
                        {
                            var resultSet = new List <ExpandoObject>();
                            while (await reader.ReadAsync(cancellationToken: cancellationToken))
                            {
                                var record = new Dictionary <string, object>();
                                for (var i = 0; i < reader.FieldCount; i++)
                                {
                                    var fieldName  = reader.GetName(i);
                                    var fieldValue = reader.GetValue(i);
                                    record.Add(fieldName, fieldValue);
                                }

                                resultSet.Add(record.ToExpando());
                            }
                            result.ResultSets.Add(resultSet);
                        }while (await reader.NextResultAsync(cancellationToken: cancellationToken));
                    }

                    result.QueryStatistics = dbCommandWrapper.RetrieveStats().ToList();
                }

            return(result);
        }