C# Class Common.Infrastructure.Persistence.Ef.Transactions.DbContextTransactionExecutor

This implementation of ITransactionExecutor guarantees that all operations on DbContext will be done in the same transaction (including querying and saving data). In case of nesting there will be only one topmost transaction.
Inheritance: ITransactionExecutor
Show file Open project: KrzysztofBranicki/hexagonal-architecture-sample

Public Methods

Method Description
DbContextTransactionExecutor ( DbContext dbContext ) : System
EnlistActionToExecuteAfterSuccessfulCommit ( System.Action action ) : void
EnlistActionToExecuteAfterSuccessfulCommitAsync ( Func asyncAction ) : System.Threading.Tasks.Task
ExecuteInTransaction ( System.Action action ) : void
ExecuteInTransactionAsync ( Func asyncAction ) : System.Threading.Tasks.Task

Private Methods

Method Description
ExecutePostCommitActions ( ) : void
ExecutePostCommitActionsAsync ( ) : System.Threading.Tasks.Task
WeAreAlreadyRunningInsideTransaction ( ) : bool

Method Details

DbContextTransactionExecutor() public method

public DbContextTransactionExecutor ( DbContext dbContext ) : System
dbContext DbContext
return System

EnlistActionToExecuteAfterSuccessfulCommit() public method

public EnlistActionToExecuteAfterSuccessfulCommit ( System.Action action ) : void
action System.Action
return void

EnlistActionToExecuteAfterSuccessfulCommitAsync() public method

public EnlistActionToExecuteAfterSuccessfulCommitAsync ( Func asyncAction ) : System.Threading.Tasks.Task
asyncAction Func
return System.Threading.Tasks.Task

ExecuteInTransaction() public method

public ExecuteInTransaction ( System.Action action ) : void
action System.Action
return void

ExecuteInTransactionAsync() public method

public ExecuteInTransactionAsync ( Func asyncAction ) : System.Threading.Tasks.Task
asyncAction Func
return System.Threading.Tasks.Task