Simplify queries thanks to fix in YesSQL

This commit is contained in:
Sipke Schoorstra 2020-12-04 12:23:45 +01:00
parent 8572f1e6d7
commit 245d6e9bbc
2 changed files with 6 additions and 23 deletions

View file

@ -59,17 +59,10 @@ namespace Elsa.Activities.Timers.Jobs
private async Task<bool> GetWorkflowIsAlreadyExecutingAsync(string? tenantId, string workflowDefinitionId, CancellationToken cancellationToken)
{
// See https://github.com/sebastienros/yessql/issues/298
Expression<Func<WorkflowInstanceIndex, bool>> query = tenantId == null
? index =>
index.WorkflowDefinitionId == workflowDefinitionId
&& index.TenantId == null
&& (index.WorkflowStatus == WorkflowStatus.Running || index.WorkflowStatus == WorkflowStatus.Suspended)
: index =>
index.WorkflowDefinitionId == workflowDefinitionId
&& index.TenantId == tenantId
&& (index.WorkflowStatus == WorkflowStatus.Running || index.WorkflowStatus == WorkflowStatus.Suspended);
Expression<Func<WorkflowInstanceIndex, bool>> query = index =>
index.WorkflowDefinitionId == workflowDefinitionId
&& index.TenantId == tenantId
&& (index.WorkflowStatus == WorkflowStatus.Running || index.WorkflowStatus == WorkflowStatus.Suspended);
var workflowInstance = await _workflowInstanceManager.Query(query).FirstOrDefaultAsync();
return workflowInstance != null;

View file

@ -24,12 +24,7 @@ namespace Elsa.Extensions
WorkflowStatus workflowStatus,
CancellationToken cancellationToken = default)
{
// See: https://github.com/sebastienros/yessql/issues/298
Expression<Func<WorkflowInstanceIndex, bool>> query = tenantId == null
? x => x.WorkflowDefinitionId == workflowDefinitionId && x.TenantId == null && x.WorkflowStatus == workflowStatus
: x => x.WorkflowDefinitionId == workflowDefinitionId && x.TenantId == tenantId && x.WorkflowStatus == workflowStatus;
return manager.Query(query).ListAsync();
return manager.Query<WorkflowInstanceIndex>(x => x.WorkflowDefinitionId == workflowDefinitionId && x.TenantId == tenantId && x.WorkflowStatus == workflowStatus).ListAsync();
}
public static Task<IEnumerable<WorkflowInstance>> ListByDefinitionAndStatusAsync(
@ -45,12 +40,7 @@ namespace Elsa.Extensions
string? tenantId,
CancellationToken cancellationToken = default)
{
// See: https://github.com/sebastienros/yessql/issues/298
Expression<Func<WorkflowInstanceIndex, bool>> query = tenantId == null
? x => x.WorkflowDefinitionId == workflowDefinitionId && x.TenantId == null
: x => x.WorkflowDefinitionId == workflowDefinitionId && x.TenantId == tenantId;
return manager.Query(query).ListAsync();
return manager.Query<WorkflowInstanceIndex>(x => x.WorkflowDefinitionId == workflowDefinitionId && x.TenantId == tenantId).ListAsync();
}
public static Task<IEnumerable<WorkflowInstance>> ListByDefinitionAsync(