Class ApplicationAuditedTransaction
- Namespace
- ProjectTemplate.Infrastructure.Data.Auditing
- Assembly
- ProjectTemplate.Infrastructure.dll
Coordinates an application mutation, NCAT audit persistence, generated-value audit completion, and an optional local completion handoff inside one relational database transaction boundary.
public sealed class ApplicationAuditedTransaction : IApplicationAuditedTransaction
- Inheritance
-
ApplicationAuditedTransaction
- Implements
- Inherited Members
Constructors
ApplicationAuditedTransaction(ApplicationDbContext, IApplicationMutationAuditReceiptAccessor)
Initializes a new instance of the ApplicationAuditedTransaction class.
public ApplicationAuditedTransaction(ApplicationDbContext dbContext, IApplicationMutationAuditReceiptAccessor receiptAccessor)
Parameters
dbContextApplicationDbContextreceiptAccessorIApplicationMutationAuditReceiptAccessor
Methods
Execute(Action<ApplicationDbContext>, Action<ApplicationDbContext, ApplicationMutationAuditReceipt>?, IsolationLevel?)
Executes a synchronous mutation and optional local completion persistence operation.
public 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.
public 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.