public async Task Invoke(HttpContext context, IDatabaseFactory databaseFactory)
{
await databaseFactory.OpenConnectionAsync();
databaseFactory.BeginTransaction();
try
{
await _next(context);
databaseFactory.CommitTransaction();
}
catch (Exception ex)
{
databaseFactory.RollbackTransaction();
throw ex;
}
finally
{
databaseFactory.CloseConnection();
}
}
}