Fix order of Order and Pagination (#6727)

* Refactor query composition to ensure consistent ordering and pagination logic.

Reordered method calls for `OrderBy` and `Paginate` across multiple stores to enhance readability and maintain consistent execution. Simplified redundant query operations for improved clarity and performance.

* Updates Elsa Studio version to 3.4.0

Updates the Elsa Studio version to the stable release.

Removes the preview tag from the version number.

* Move `ElsaStudioVersion` property to `Directory.Packages.props` for centralized management.
This commit is contained in:
Sipke Schoorstra 2025-06-12 09:25:43 +02:00 committed by GitHub
parent c817320d66
commit 623b75ed2c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
7 changed files with 14 additions and 13 deletions

View file

@ -36,7 +36,4 @@
<!-- IL trimming warnings -->
<NoWarn>$(NoWarn);IL2026;IL2046;IL2057;IL2067;IL2070;IL2072;IL2075;IL2087;IL2091</NoWarn>
</PropertyGroup>
<PropertyGroup>
<ElsaStudioVersion>3.4.0-preview.1025</ElsaStudioVersion>
</PropertyGroup>
</Project>

View file

@ -3,6 +3,9 @@
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
<CentralPackageTransitivePinningEnabled>true</CentralPackageTransitivePinningEnabled>
</PropertyGroup>
<PropertyGroup>
<ElsaStudioVersion>3.4.0</ElsaStudioVersion>
</PropertyGroup>
<ItemGroup>
<PackageVersion Include="Antlr4.Runtime.Standard" Version="4.13.1"/>
<PackageVersion Include="AppAny.Quartz.EntityFrameworkCore.Migrations" Version="0.5.1"/>

View file

@ -45,8 +45,8 @@ public class EFCoreWorkflowDefinitionStore(EntityStore<ManagementElsaDbContext,
/// <inheritdoc />
public async Task<Page<WorkflowDefinition>> FindManyAsync<TOrderBy>(WorkflowDefinitionFilter filter, WorkflowDefinitionOrder<TOrderBy> order, PageArgs pageArgs, CancellationToken cancellationToken = default)
{
var count = await store.QueryAsync(queryable => Filter(queryable, filter).OrderBy(order), cancellationToken).LongCount();
var results = await store.QueryAsync(queryable => Paginate(Filter(queryable, filter), pageArgs), OnLoadAsync, filter.TenantAgnostic, cancellationToken).ToList();
var count = await store.QueryAsync(queryable => Filter(queryable, filter), cancellationToken).LongCount();
var results = await store.QueryAsync(queryable => Filter(queryable, filter).OrderBy(order).Paginate(pageArgs), OnLoadAsync, filter.TenantAgnostic, cancellationToken).ToList();
return new(results, count);
}

View file

@ -43,14 +43,14 @@ public class EFBookmarkQueueStore(Store<RuntimeElsaDbContext, BookmarkQueueItem>
public async Task<Page<BookmarkQueueItem>> PageAsync<TOrderBy>(PageArgs pageArgs, BookmarkQueueItemOrder<TOrderBy> orderBy, CancellationToken cancellationToken = default)
{
var count = await store.QueryAsync(queryable => queryable.OrderBy(orderBy), cancellationToken).LongCount();
var results = await store.QueryAsync(queryable => queryable.Paginate(pageArgs), OnLoadAsync, cancellationToken).ToList();
var count = await store.QueryAsync(queryable => queryable, cancellationToken).LongCount();
var results = await store.QueryAsync(queryable => queryable.OrderBy(orderBy).Paginate(pageArgs), OnLoadAsync, cancellationToken).ToList();
return new(results, count);
}
public async Task<Page<BookmarkQueueItem>> PageAsync<TOrderBy>(PageArgs pageArgs, BookmarkQueueFilter filter, BookmarkQueueItemOrder<TOrderBy> orderBy, CancellationToken cancellationToken = default)
{
var count = await store.QueryAsync(queryable => filter.Apply(queryable).OrderBy(orderBy), cancellationToken).LongCount();
var count = await store.QueryAsync(filter.Apply, cancellationToken).LongCount();
var results = await store.QueryAsync(queryable => filter.Apply(queryable).OrderBy(orderBy).Paginate(pageArgs), OnLoadAsync, cancellationToken).ToList();
return new(results, count);
}

View file

@ -61,7 +61,7 @@ public class EFCoreWorkflowExecutionLogStore(EntityStore<RuntimeElsaDbContext, W
public async Task<Page<WorkflowExecutionLogRecord>> FindManyAsync<TOrderBy>(WorkflowExecutionLogRecordFilter filter, PageArgs pageArgs, WorkflowExecutionLogRecordOrder<TOrderBy> order, CancellationToken cancellationToken = default)
{
var count = await store.QueryAsync(queryable => Filter(queryable, filter), cancellationToken).LongCount();
var results = await store.QueryAsync(queryable => Filter(queryable, filter).Paginate(pageArgs).OrderBy(order), OnLoadAsync, cancellationToken).ToList();
var results = await store.QueryAsync(queryable => Filter(queryable, filter).OrderBy(order).Paginate(pageArgs), OnLoadAsync, cancellationToken).ToList();
return new(results, count);
}
@ -71,10 +71,11 @@ public class EFCoreWorkflowExecutionLogStore(EntityStore<RuntimeElsaDbContext, W
return await store.DeleteWhereAsync(queryable => Filter(queryable, filter), cancellationToken);
}
private async ValueTask OnSaveAsync(RuntimeElsaDbContext dbContext, WorkflowExecutionLogRecord entity, CancellationToken cancellationToken)
private ValueTask OnSaveAsync(RuntimeElsaDbContext dbContext, WorkflowExecutionLogRecord entity, CancellationToken cancellationToken)
{
entity = entity.SanitizeLogMessage();
dbContext.Entry(entity).Property("SerializedPayload").CurrentValue = ShouldSerializePayload(entity) ? safeSerializer.Serialize(entity.Payload) : null;
return ValueTask.CompletedTask;
}
private async ValueTask OnLoadAsync(RuntimeElsaDbContext dbContext, WorkflowExecutionLogRecord? entity, CancellationToken cancellationToken)

View file

@ -10,8 +10,8 @@ public class MemorySecretStore(MemoryStore<Secret> memoryStore) : ISecretStore
{
public Task<Page<Secret>> FindManyAsync<TOrderBy>(SecretFilter filter, SecretOrder<TOrderBy> order, PageArgs pageArgs, CancellationToken cancellationToken = default)
{
var count = memoryStore.Query(query => Filter(query, filter).OrderBy(order)).LongCount();
var result = memoryStore.Query(query => Filter(query, filter).Paginate(pageArgs)).ToList();
var count = memoryStore.Query(query => Filter(query, filter)).LongCount();
var result = memoryStore.Query(query => Filter(query, filter).OrderBy(order).Paginate(pageArgs)).ToList();
return Task.FromResult(Page.Of(result, count));
}

View file

@ -16,7 +16,7 @@ public class EFCoreSecretStore(EntityStore<SecretsDbContext, Secret> store) : IS
public async Task<Page<Secret>> FindManyAsync<TOrderBy>(SecretFilter filter, SecretOrder<TOrderBy> order, PageArgs pageArgs, CancellationToken cancellationToken = default)
{
var count = await store.QueryAsync(query => Filter(query, filter), cancellationToken).LongCount();
var secrets = await store.QueryAsync(query => Filter(query, filter).Paginate(pageArgs).OrderBy(order), cancellationToken).ToList();
var secrets = await store.QueryAsync(query => Filter(query, filter).OrderBy(order).Paginate(pageArgs), cancellationToken).ToList();
return new(secrets, count);
}