public async Task <IList <string> > Test(int delay, CancellationToken cancellationToken)
        {
            var result = new List <string>();

            using (this.profiler.Profile(new ProfileOperationSpecification("test")))
            {
                using (var connection = new ProfiledDbConnection(new SqlConnection(ConfigurationManager.ConnectionStrings["Test"].ConnectionString)))
                {
                    {
                        var id = (await connection.QueryAsync <int>(
                                      "select top 1 Id from TestRocksProfilingTable where 1 = 1 order by Id desc; " +
                                      $"waitfor delay '{TimeSpan.FromMilliseconds(delay)}';")).FirstOrNull();

                        result.Add($"Selected via ADO+Dapper: {id}");
                    }

                    using (var command = connection.CreateCommand())
                    {
                        if (connection.State != ConnectionState.Open)
                        {
                            await connection.OpenAsync(cancellationToken);
                        }

                        command.CommandText = "select top 1 Id from TestRocksProfilingTable where 2 = 2 order by Id desc; " +
                                              $"waitfor delay '{TimeSpan.FromMilliseconds(delay)}';";

                        var id = await command.ExecuteScalarAsync(cancellationToken) as int?;

                        result.Add($"Selected via ADO: {id}");
                    }

                    using (var command = connection.CreateCommand())
                    {
                        if (connection.State != ConnectionState.Open)
                        {
                            await connection.OpenAsync(cancellationToken);
                        }

                        command.CommandText = "select top 1 Id from TestRocksProfilingTable where 3 = 3 order by Id desc; " +
                                              $"waitfor delay '{TimeSpan.FromMilliseconds(delay)}';";

                        var id = await command.ExecuteScalarAsync(cancellationToken) as int?;

                        result.Add($"Selected via ADO (2): {id}");
                    }
                }

                return(result);
            }
        }
Exemple #2
0
        public List <CashFlow> LoadAllAccountCashFlows(string accountNumber)
        {
            List <CashFlow> cashFlows = new List <CashFlow>();

            using (IDbConnection con = new ProfiledDbConnection(
                       new SqlConnection(_connectionString), MiniProfiler.Current))
            {
                con.Open();
                using (IDbCommand cmd = con.CreateCommand())
                {
                    cmd.CommandText = $"{SQL} WHERE f.AccountNumber = @AccountNumber";
                    cmd.AddParameterWithValue("@accountNumber", accountNumber);

                    using (IDataReader reader = cmd.ExecuteReader())
                    {
                        while (reader.Read())
                        {
                            var cashFlow = this.DecodeRow(reader);
                            cashFlows.Add(cashFlow);
                        }
                    }
                }
            }
            return(cashFlows);
        }