public async Task Execute(Func <AsyncPoco.Database, Task> action) { await _retryPolicy.ExecuteAsync(async() => { if (_connection.State != System.Data.ConnectionState.Open) { await _connection.OpenAsync(); } using (var db = new AsyncPoco.Database(_connection)) //using (var trans = await db.GetTransactionAsync()) { await action(db); } }); }
public async Task <T> Query <T>(Func <AsyncPoco.Database, Task <T> > query) { T result = default(T); await _retryPolicy.ExecuteAsync(async() => { if (_connection.State != System.Data.ConnectionState.Open) { await _connection.OpenAsync(); } using (var db = new AsyncPoco.Database(_connection)) //using (var trans = await db.GetTransactionAsync()) { result = await query(db); } }); return(result); }