< Summary

Information
Class: Elsa.Workflows.Runtime.Filters.BookmarkQueueDeadLetterFilter
Assembly: Elsa.Workflows.Runtime
File(s): /home/runner/work/elsa-core/elsa-core/src/modules/Elsa.Workflows.Runtime/Filters/BookmarkQueueDeadLetterFilter.cs
Line coverage
93%
Covered lines: 14
Uncovered lines: 1
Coverable lines: 15
Total lines: 60
Line coverage: 93.3%
Branch coverage
83%
Covered branches: 10
Total branches: 12
Branch coverage: 83.3%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
get_Id()100%11100%
get_Ids()100%11100%
get_OriginalQueueItemId()100%11100%
get_OriginalQueueItemIds()100%11100%
get_WorkflowInstanceId()100%11100%
get_DeadLetteredAtLessThan()100%11100%
get_TenantAgnostic()100%210%
Apply(...)83.33%1212100%

File(s)

/home/runner/work/elsa-core/elsa-core/src/modules/Elsa.Workflows.Runtime/Filters/BookmarkQueueDeadLetterFilter.cs

#LineLine coverage
 1using Elsa.Workflows.Runtime.Entities;
 2
 3namespace Elsa.Workflows.Runtime.Filters;
 4
 5/// <summary>
 6/// A filter for bookmark queue dead-letter items.
 7/// </summary>
 8public class BookmarkQueueDeadLetterFilter
 9{
 10    /// <summary>
 11    /// Gets or sets the ID of the dead-letter item.
 12    /// </summary>
 5313    public string? Id { get; set; }
 14
 15    /// <summary>
 16    /// Gets or sets the IDs of the dead-letter items.
 17    /// </summary>
 4518    public IEnumerable<string>? Ids { get; set; }
 19
 20    /// <summary>
 21    /// Gets or sets the original queue item ID.
 22    /// </summary>
 4323    public string? OriginalQueueItemId { get; set; }
 24
 25    /// <summary>
 26    /// Gets or sets the original queue item IDs.
 27    /// </summary>
 5828    public IEnumerable<string>? OriginalQueueItemIds { get; set; }
 29
 30    /// <summary>
 31    /// Gets or sets the ID of the workflow instance.
 32    /// </summary>
 4333    public string? WorkflowInstanceId { get; set; }
 34
 35    /// <summary>
 36    /// The timestamp less than which the dead-letter item was created.
 37    /// </summary>
 6338    public DateTimeOffset? DeadLetteredAtLessThan { get; set; }
 39
 40    /// <summary>
 41    /// Gets or sets a value indicating whether the filter is tenant agnostic.
 42    /// </summary>
 043    public bool TenantAgnostic { get; set; }
 44
 45    /// <summary>
 46    /// Applies the filter to the specified query.
 47    /// </summary>
 48    public IQueryable<BookmarkQueueDeadLetterItem> Apply(IQueryable<BookmarkQueueDeadLetterItem> query)
 49    {
 4350        var filter = this;
 4851        if (filter.Id != null) query = query.Where(x => x.Id == filter.Id);
 4452        if (filter.Ids != null) query = query.Where(x => filter.Ids.Contains(x.Id));
 4353        if (filter.OriginalQueueItemId != null) query = query.Where(x => x.OriginalQueueItemId == filter.OriginalQueueIt
 5554        if (filter.OriginalQueueItemIds != null) query = query.Where(x => filter.OriginalQueueItemIds.Contains(x.Origina
 4355        if (filter.WorkflowInstanceId != null) query = query.Where(x => x.WorkflowInstanceId == filter.WorkflowInstanceI
 5556        if (filter.DeadLetteredAtLessThan != null) query = query.Where(x => x.DeadLetteredAt < filter.DeadLetteredAtLess
 57
 4358        return query;
 59    }
 60}