Interface IApplicationAuditedTransaction
- Namespace
- ProjectTemplate.Infrastructure.Data.Auditing
- Assembly
- ProjectTemplate.Infrastructure.dll
Coordinates one application mutation, its NCAT audit persistence, and an optional local completion handoff inside a single relational database transaction boundary.
public interface IApplicationAuditedTransaction
Methods
Execute(Action<ApplicationDbContext>, Action<ApplicationDbContext, ApplicationMutationAuditReceipt>?, IsolationLevel?)
Executes a synchronous mutation and optional local completion persistence operation.
ApplicationAuditedTransactionResult Execute(Action<ApplicationDbContext> mutation, Action<ApplicationDbContext, ApplicationMutationAuditReceipt>? persistLocalCompletion = null, IsolationLevel? isolationLevel = null)
Parameters
mutationAction<ApplicationDbContext>Stages the business mutation on the supplied application database context.
persistLocalCompletionAction<ApplicationDbContext, ApplicationMutationAuditReceipt>Optionally stages a database-local completion or outbox record after the mutation audit receipt is available. External delivery must not occur inside this callback.
isolationLevelIsolationLevel?Optional isolation level for a coordinator-owned transaction. It cannot be supplied when joining an existing transaction.
Returns
- ApplicationAuditedTransactionResult
The completed transaction result.
ExecuteAsync(Func<ApplicationDbContext, CancellationToken, Task>, Func<ApplicationDbContext, ApplicationMutationAuditReceipt, CancellationToken, Task>?, IsolationLevel?, CancellationToken)
Executes an asynchronous mutation and optional local completion persistence operation.
Task<ApplicationAuditedTransactionResult> ExecuteAsync(Func<ApplicationDbContext, CancellationToken, Task> mutation, Func<ApplicationDbContext, ApplicationMutationAuditReceipt, CancellationToken, Task>? persistLocalCompletion = null, IsolationLevel? isolationLevel = null, CancellationToken cancellationToken = default)
Parameters
mutationFunc<ApplicationDbContext, CancellationToken, Task>Stages the business mutation on the supplied application database context.
persistLocalCompletionFunc<ApplicationDbContext, ApplicationMutationAuditReceipt, CancellationToken, Task>Optionally stages a database-local completion or outbox record after the mutation audit receipt is available. External delivery must not occur inside this callback.
isolationLevelIsolationLevel?Optional isolation level for a coordinator-owned transaction. It cannot be supplied when joining an existing transaction.
cancellationTokenCancellationTokenA token that can cancel the operation.
Returns
- Task<ApplicationAuditedTransactionResult>
The completed transaction result.