< 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
 51911public class DefaultCommitStateHandler(
 51912    IWorkflowInstanceManager workflowInstanceManager,
 51913    IBookmarksPersister bookmarkPersister,
 51914    IVariablePersistenceManager variablePersistenceManager,
 51915    IMediator mediator,
 51916    ILogRecordSink<ActivityExecutionRecord> activityExecutionLogRecordSink,
 51917    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    {
 54027        var updateBookmarksRequest = new UpdateBookmarksRequest(workflowExecutionContext, workflowExecutionContext.Bookm
 54028        await bookmarkPersister.PersistBookmarksAsync(updateBookmarksRequest);
 54029        await activityExecutionLogRecordSink.PersistExecutionLogsAsync(workflowExecutionContext, cancellationToken);
 54030        await workflowExecutionLogRecordSink.PersistExecutionLogsAsync(workflowExecutionContext, cancellationToken);
 54031        await variablePersistenceManager.SaveVariablesAsync(workflowExecutionContext);
 54032        var workflowInstance = await workflowInstanceManager.SaveAsync(workflowState, cancellationToken);
 54033        workflowExecutionContext.ExecutionLog.Clear();
 54034        workflowExecutionContext.ClearCompletedActivityExecutionContexts();
 54035        await workflowExecutionContext.ExecuteDeferredTasksAsync();
 54036        await mediator.SendAsync(new WorkflowStateCommitted(workflowExecutionContext, workflowState, workflowInstance), 
 54037    }
 38}