diff --git a/src/core/Elsa.Core/Persistence/Specifications/WorkflowInstances/CorrelationIdsSpecification.cs b/src/core/Elsa.Core/Persistence/Specifications/WorkflowInstances/CorrelationIdsSpecification.cs new file mode 100644 index 000000000..3115b5dc3 --- /dev/null +++ b/src/core/Elsa.Core/Persistence/Specifications/WorkflowInstances/CorrelationIdsSpecification.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Linq.Expressions; +using Elsa.Models; + +namespace Elsa.Persistence.Specifications.WorkflowInstances +{ + public class CorrelationIdsSpecification : Specification + { + public CorrelationIdsSpecification(string workflowDefinitionId, IEnumerable correlationIds) + { + WorkflowDefinitionId = workflowDefinitionId; + CorrelationIds = correlationIds; + } + + public string WorkflowDefinitionId { get; } + public IEnumerable CorrelationIds { get; } + public override Expression> ToExpression() => workflowInstance => workflowInstance.DefinitionId == WorkflowDefinitionId && CorrelationIds.Contains(workflowInstance.CorrelationId); + } +} \ No newline at end of file