< Summary

Information
Class: Elsa.Workflows.Api.Endpoints.ActivityExecutions.List.List
Assembly: Elsa.Workflows.Api
File(s): /home/runner/work/elsa-core/elsa-core/src/modules/Elsa.Workflows.Api/Endpoints/ActivityExecutions/List/Endpoint.cs
Line coverage
37%
Covered lines: 6
Uncovered lines: 10
Coverable lines: 16
Total lines: 47
Line coverage: 37.5%
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%
Configure()100%11100%
ExecuteAsync()100%210%

File(s)

/home/runner/work/elsa-core/elsa-core/src/modules/Elsa.Workflows.Api/Endpoints/ActivityExecutions/List/Endpoint.cs

#LineLine coverage
 1using Elsa.Authorization;
 2using Elsa.Abstractions;
 3using Elsa.Common.Entities;
 4using Elsa.Models;
 5using Elsa.Workflows.Runtime;
 6using Elsa.Workflows.Runtime.Entities;
 7using Elsa.Workflows.Runtime.Filters;
 8using Elsa.Workflows.Runtime.OrderDefinitions;
 9using JetBrains.Annotations;
 10
 11namespace Elsa.Workflows.Api.Endpoints.ActivityExecutions.List;
 12
 13/// <summary>
 14/// Lists the executions for a given activity.
 15/// </summary>
 16[PublicAPI]
 17internal class List : ElsaEndpoint<Request, ListResponse<ActivityExecutionRecord>>
 18{
 19    private readonly IActivityExecutionStore _store;
 20
 21    /// <inheritdoc />
 322    public List(IActivityExecutionStore store)
 23    {
 324        _store = store;
 325    }
 26
 27    /// <inheritdoc />
 28    public override void Configure()
 29    {
 330        Get("/activity-executions/list");
 331        RequirePermission(Elsa.Workflows.Api.Permissions.WorkflowPermissions.ActivityExecutions, CoreVerbs.View);
 332    }
 33
 34    /// <inheritdoc />
 35    public override async Task<ListResponse<ActivityExecutionRecord>> ExecuteAsync(Request request, CancellationToken ca
 36    {
 037        var filter = new ActivityExecutionRecordFilter
 038        {
 039            WorkflowInstanceId = request.WorkflowInstanceId,
 040            ActivityNodeId = request.ActivityNodeId,
 041            Completed = request.Completed
 042        };
 043        var order = new ActivityExecutionRecordOrder<DateTimeOffset>(x => x.StartedAt, OrderDirection.Ascending);
 044        var records = (await _store.FindManyAsync(filter, order, cancellationToken)).ToList();
 045        return new ListResponse<ActivityExecutionRecord>(records);
 046    }
 47}