< Summary

Information
Class: Elsa.Workflows.Runtime.DefaultCommitStateHandler
Assembly: Elsa.Workflows.Runtime
File(s): /home/runner/work/elsa-core/elsa-core/src/modules/Elsa.Workflows.Runtime/Services/DefaultCommitStateHandler.cs
Line coverage
85%
Covered lines: 18
Uncovered lines: 3
Coverable lines: 21
Total lines: 38
Line coverage: 85.7%
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
.ctor(...)100%11100%
CommitAsync()100%210%
CommitAsync()100%11100%

File(s)

/home/runner/work/elsa-core/elsa-core/src/modules/Elsa.Workflows.Runtime/Services/DefaultCommitStateHandler.cs

#LineLine coverage
 1using Elsa.Mediator.Contracts;
 2using Elsa.Workflows.CommitStates;
 3using Elsa.Workflows.Management;
 4using Elsa.Workflows.Runtime.Entities;
 5using Elsa.Workflows.Runtime.Notifications;
 6using Elsa.Workflows.Runtime.Requests;
 7using Elsa.Workflows.State;
 8
 9namespace Elsa.Workflows.Runtime;
 10
 51811public class DefaultCommitStateHandler(
 51812    IWorkflowInstanceManager workflowInstanceManager,
 51813    IBookmarksPersister bookmarkPersister,
 51814    IVariablePersistenceManager variablePersistenceManager,
 51815    IMediator mediator,
 51816    ILogRecordSink<ActivityExecutionRecord> activityExecutionLogRecordSink,
 51817    ILogRecordSink<WorkflowExecutionLogRecord> workflowExecutionLogRecordSink) : ICommitStateHandler
 18{
 19    public async Task CommitAsync(WorkflowExecutionContext workflowExecutionContext, CancellationToken cancellationToken
 20    {
 021        var workflowState = workflowInstanceManager.ExtractWorkflowState(workflowExecutionContext);
 022        await CommitAsync(workflowExecutionContext, workflowState, cancellationToken);
 023    }
 24
 25    public async Task CommitAsync(WorkflowExecutionContext workflowExecutionContext, WorkflowState workflowState, Cancel
 26    {
 54227        var updateBookmarksRequest = new UpdateBookmarksRequest(workflowExecutionContext, workflowExecutionContext.Bookm
 54228        await bookmarkPersister.PersistBookmarksAsync(updateBookmarksRequest);
 54229        await activityExecutionLogRecordSink.PersistExecutionLogsAsync(workflowExecutionContext, cancellationToken);
 54230        await workflowExecutionLogRecordSink.PersistExecutionLogsAsync(workflowExecutionContext, cancellationToken);
 54231        await variablePersistenceManager.SaveVariablesAsync(workflowExecutionContext);
 54232        var workflowInstance = await workflowInstanceManager.SaveAsync(workflowState, cancellationToken);
 54233        workflowExecutionContext.ExecutionLog.Clear();
 54234        workflowExecutionContext.ClearCompletedActivityExecutionContexts();
 54235        await workflowExecutionContext.ExecuteDeferredTasksAsync();
 54236        await mediator.SendAsync(new WorkflowStateCommitted(workflowExecutionContext, workflowState, workflowInstance), 
 54237    }
 38}