示例#1
0
        public async Task ExecuteSpWithParametersWithMultipleResults_Correct()
        {
            var configs = new StoredProcedureConfiguration
            {
                ConnectionString          = Constants.ConnectionString,
                StoredProcedureName       = "usp_test",
                StoredProcedureParameters = new Dictionary <string, object>()
                {
                    { "@status", 1 },
                    { "@boolean", true },
                }
            };

            var response = await _operations.ExecuteStoredProcedureAsync(configs, async (results) =>
            {
                return(await results.ReadAll(async() => new SpResponse
                {
                    Test = await results.GetColumnValue <string>("test"),
                    Status = await results.GetColumnValue <int>("status"),
                    Boolean = await results.GetColumnValue <bool>("boolean"),
                }));
            });

            Assert.True(response.Count() > 1);
        }
示例#2
0
        public async Task <T> ExecuteStoredProcedureAsync <T>(StoredProcedureConfiguration configs, Func <SqlReader, Task <T> > readerCallback)
        {
            using (var connection = new SqlConnection(configs.ConnectionString))
                using (var command = connection.CreateCommand())
                {
                    command.CommandText    = configs.StoredProcedureName;
                    command.CommandType    = CommandType.StoredProcedure;
                    command.CommandTimeout = configs.ExecutionTimeout;

                    command.Parameters.ToSqlParameters(configs.StoredProcedureParameters);

                    await connection.OpenAsync();

                    using (var reader = await command.ExecuteReaderAsync())
                    {
                        return(await readerCallback.Invoke(new SqlReader(reader)));
                    }
                }
        }
示例#3
0
        public async Task ExecuteSpWithParametersWithoutResults_Correct()
        {
            var configs = new StoredProcedureConfiguration
            {
                ConnectionString          = Constants.ConnectionString,
                StoredProcedureName       = "usp_test",
                StoredProcedureParameters = new Dictionary <string, object>()
                {
                    { "@status", 4654 },
                    { "@boolean", true },
                }
            };

            var response = await _operations.ExecuteStoredProcedureAsync(configs, async (results) =>
            {
#pragma warning disable 1998
                return(await results.Read(async() => results.HasRows() ? new SpResponse() : null));

#pragma warning restore 1998
            });

            Assert.Null(response);
        }