/// <summary> /// The execute SQL. /// </summary> /// <param name="stproc">The stored procedure.</param> /// <param name="parameters">The parameters.</param> /// <param name="read">The read.</param> /// <param name="token">The token.</param> /// <returns> /// The <see cref="Task"/>. /// </returns> public async Task ExecuteSql(string stproc, Action <SqlParameterCollection> parameters, Action <SqlDataReader> read, CancellationToken token) { HomeHubEventSource.Log.MethodEnter(); HomeHubEventSource.Log.FetchingData(stproc); using (var connection = new SqlConnection(this.connectionString)) { await connection.OpenAsync(token); var command = connection.CreateCommand(); command.CommandText = stproc; command.CommandType = System.Data.CommandType.StoredProcedure; parameters(command.Parameters); await SqlConnectionManager.ExecSafe(async() => { using (var reader = await command.ExecuteReaderAsync(token)) { read(reader); } }); } HomeHubEventSource.Log.MethodLeave(); }
public SqlDataLayer(string connectionString) { this.connectionManager = new SqlConnectionManager(connectionString); this.tokenSource = new CancellationTokenSource(); }