diff --git a/src/apps/Elsa.Server.Web/appsettings.json b/src/apps/Elsa.Server.Web/appsettings.json index 0b38df416..0ef45c380 100644 --- a/src/apps/Elsa.Server.Web/appsettings.json +++ b/src/apps/Elsa.Server.Web/appsettings.json @@ -2,10 +2,9 @@ "Logging": { "LogLevel": { "Default": "Information", - "OpenTelemetry": "Debug", "Microsoft.Hosting.Lifetime": "Information", - "Elsa": "Information", - "Elsa.Workflows.Runtime.Middleware.Workflows.WorkflowHeartbeatMiddleware": "Debug" + "Elsa": "Warning", + "Elsa.Workflows.Runtime.Middleware.Workflows.WorkflowHeartbeatMiddleware": "Warning" } }, "HostBuilder": { @@ -26,7 +25,7 @@ "RabbitMq": "amqp://guest:guest@localhost:5672", "Redis": "localhost:6379,abortConnect=false" }, - "DatabaseProvider": "Sqlite", + "DatabaseProvider": "SqlServer", "Multitenancy": { "Tenants": [ { diff --git a/src/modules/Elsa.MongoDb/Modules/Runtime/TriggerStore.cs b/src/modules/Elsa.MongoDb/Modules/Runtime/TriggerStore.cs index 7f83792ae..1015481b4 100644 --- a/src/modules/Elsa.MongoDb/Modules/Runtime/TriggerStore.cs +++ b/src/modules/Elsa.MongoDb/Modules/Runtime/TriggerStore.cs @@ -1,4 +1,6 @@ +using Elsa.Common.Entities; using Elsa.Common.Models; +using Elsa.Extensions; using Elsa.MongoDb.Common; using Elsa.Workflows.Runtime; using Elsa.Workflows.Runtime.Entities; @@ -6,6 +8,7 @@ using Elsa.Workflows.Runtime.Filters; using Elsa.Workflows.Runtime.OrderDefinitions; using JetBrains.Annotations; using MongoDB.Driver.Linq; +using Open.Linq.AsyncExtensions; namespace Elsa.MongoDb.Modules.Runtime; @@ -37,14 +40,16 @@ public class MongoTriggerStore(MongoDbStore mongoDbStore) : ITrig return await mongoDbStore.FindManyAsync(query => Filter(query, filter), filter.TenantAgnostic, cancellationToken); } - public ValueTask> FindManyAsync(TriggerFilter filter, PageArgs pageArgs, CancellationToken cancellationToken = default) + public async ValueTask> FindManyAsync(TriggerFilter filter, PageArgs pageArgs, CancellationToken cancellationToken = default) { - throw new NotImplementedException(); + return await FindManyAsync(filter, pageArgs, new StoredTriggerOrder(x => x.Id, OrderDirection.Ascending), cancellationToken); } public async ValueTask> FindManyAsync(TriggerFilter filter, PageArgs pageArgs, StoredTriggerOrder order, CancellationToken cancellationToken = default) { - throw new NotImplementedException(); + var count = await mongoDbStore.CountAsync(queryable => Filter(queryable, filter), cancellationToken); + var results = await mongoDbStore.FindManyAsync(queryable => Paginate(Order(Filter(queryable, filter), order), pageArgs), cancellationToken).ToList(); + return new(results, count); } /// @@ -73,4 +78,14 @@ public class MongoTriggerStore(MongoDbStore mongoDbStore) : ITrig { return filter.Apply(queryable); } + + private IQueryable Order(IQueryable queryable, StoredTriggerOrder order) + { + return queryable.OrderBy(order); + } + + private IQueryable Paginate(IQueryable queryable, PageArgs pageArgs) + { + return queryable.Paginate(pageArgs); + } } \ No newline at end of file diff --git a/src/modules/Elsa.Workflows.Runtime/Services/WorkflowCancellationService.cs b/src/modules/Elsa.Workflows.Runtime/Services/WorkflowCancellationService.cs index 77aaa3c83..838b6d3ec 100644 --- a/src/modules/Elsa.Workflows.Runtime/Services/WorkflowCancellationService.cs +++ b/src/modules/Elsa.Workflows.Runtime/Services/WorkflowCancellationService.cs @@ -97,7 +97,7 @@ public class WorkflowCancellationService( var childInstances = (await workflowInstanceStore.FindManyAsync(filter, cancellationToken)).ToList(); if (childInstances.Any()) - tasks.AddRange(CancelWorkflows(childInstances, cancellationToken)); + tasks.Add(CancelWorkflows(childInstances, cancellationToken)); } await Task.WhenAll(tasks);