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); }
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))); } } }
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); }