< 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
 51611public class DefaultCommitStateHandler(
 51612    IWorkflowInstanceManager workflowInstanceManager,
 51613    IBookmarksPersister bookmarkPersister,
 51614    IVariablePersistenceManager variablePersistenceManager,
 51615    IMediator mediator,
 51616    ILogRecordSink<ActivityExecutionRecord> activityExecutionLogRecordSink,
 51617    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    {
 54127        var updateBookmarksRequest = new UpdateBookmarksRequest(workflowExecutionContext, workflowExecutionContext.Bookm
 54128        await bookmarkPersister.PersistBookmarksAsync(updateBookmarksRequest);
 54129        await activityExecutionLogRecordSink.PersistExecutionLogsAsync(workflowExecutionContext, cancellationToken);
 54130        await workflowExecutionLogRecordSink.PersistExecutionLogsAsync(workflowExecutionContext, cancellationToken);
 54131        await variablePersistenceManager.SaveVariablesAsync(workflowExecutionContext);
 54132        var workflowInstance = await workflowInstanceManager.SaveAsync(workflowState, cancellationToken);
 54133        workflowExecutionContext.ExecutionLog.Clear();
 54134        workflowExecutionContext.ClearCompletedActivityExecutionContexts();
 54135        await workflowExecutionContext.ExecuteDeferredTasksAsync();
 54136        await mediator.SendAsync(new WorkflowStateCommitted(workflowExecutionContext, workflowState, workflowInstance), 
 54137    }
 38}