API.Middlewares.DatabaseTransactionMiddleware.Invoke C# (CSharp) Method

Invoke() public method

public Invoke ( HttpContext context, IDatabaseFactory databaseFactory ) : Task
context HttpContext
databaseFactory IDatabaseFactory
return Task
        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();
            }
        }
    }
DatabaseTransactionMiddleware