< Summary

Information
Class: Elsa.Persistence.EFCore.Modules.Runtime.EFCoreWorkflowCommitTransaction
Assembly: Elsa.Persistence.EFCore
File(s): /home/runner/work/elsa-core/elsa-core/src/modules/Elsa.Persistence.EFCore/Modules/Runtime/EFCoreWorkflowCommitTransaction.cs
Line coverage
100%
Covered lines: 9
Uncovered lines: 0
Coverable lines: 9
Total lines: 24
Line coverage: 100%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
ExecuteAsync()100%11100%

File(s)

/home/runner/work/elsa-core/elsa-core/src/modules/Elsa.Persistence.EFCore/Modules/Runtime/EFCoreWorkflowCommitTransaction.cs

#LineLine coverage
 1using System.Transactions;
 2using Elsa.Workflows.Runtime;
 3
 4namespace Elsa.Persistence.EFCore.Modules.Runtime;
 5
 6/// <summary>
 7/// Wraps workflow commit persistence operations in an ambient transaction so EF Core stores enlist automatically.
 8/// </summary>
 9public class EFCoreWorkflowCommitTransaction : IWorkflowCommitTransaction
 10{
 11    /// <inheritdoc />
 12    public async Task ExecuteAsync(Func<CancellationToken, Task> operation, CancellationToken cancellationToken = defaul
 13    {
 38114        var transactionOptions = new TransactionOptions
 38115        {
 38116            IsolationLevel = IsolationLevel.ReadCommitted,
 38117            Timeout = TransactionManager.MaximumTimeout
 38118        };
 19
 38120        using var scope = new TransactionScope(TransactionScopeOption.Required, transactionOptions, TransactionScopeAsyn
 38121        await operation(cancellationToken);
 38122        scope.Complete();
 38123    }
 24}

Methods/Properties

ExecuteAsync()