Update packages (#6058)
* Update dependencies and refactor MongoDB usages to IQueryable Updated MongoDB-related methods to use IQueryable instead of IMongoQueryable for better compatibility and cleaner code. Additionally, upgraded several dependencies and packages to newer versions, ensuring enhanced security and performance. * Remove TargetFramework from MongoDb project file The TargetFramework property has been removed from Elsa.MongoDb.csproj. This change is likely to allow for a more flexible build configuration or to delegate framework specification to a higher-level configuration. * Update package versions in _build.csproj Upgraded Azure.Identity to 1.13.1, NuGet.Packaging to 6.11.1, and Microsoft.Identity.Client to 4.66.1. These updates address vulnerabilities and ensure compatibility with dependencies.
This commit is contained in:
parent
fd92557469
commit
7edfe188a7
|
|
@ -6,14 +6,14 @@
|
|||
<ItemGroup>
|
||||
<PackageVersion Include="Antlr4.Runtime.Standard" Version="4.13.1" />
|
||||
<PackageVersion Include="AutoMapper" Version="13.0.1" PrivateAssets="All" />
|
||||
<PackageVersion Include="Azure.Identity" Version="1.12.0" />
|
||||
<PackageVersion Include="Azure.Messaging.ServiceBus" Version="7.18.0" />
|
||||
<PackageVersion Include="Azure.ResourceManager" Version="1.12.0" />
|
||||
<PackageVersion Include="Azure.ResourceManager.AppContainers" Version="1.2.0" />
|
||||
<PackageVersion Include="Azure.ResourceManager.Resources" Version="1.8.0" />
|
||||
<PackageVersion Include="Azure.Identity" Version="1.13.1" />
|
||||
<PackageVersion Include="Azure.Messaging.ServiceBus" Version="7.18.2" />
|
||||
<PackageVersion Include="Azure.ResourceManager" Version="1.13.0" />
|
||||
<PackageVersion Include="Azure.ResourceManager.AppContainers" Version="1.3.0" />
|
||||
<PackageVersion Include="Azure.ResourceManager.Resources" Version="1.9.0" />
|
||||
<PackageVersion Include="Azure.ResourceManager.ServiceBus" Version="1.0.1" />
|
||||
<PackageVersion Include="BenchmarkDotNet" Version="0.13.12" />
|
||||
<PackageVersion Include="Bogus" Version="35.5.1" />
|
||||
<PackageVersion Include="BenchmarkDotNet" Version="0.14.0" />
|
||||
<PackageVersion Include="Bogus" Version="35.6.1" />
|
||||
<PackageVersion Include="ConfigureAwait.Fody" Version="3.3.2" PrivateAssets="All" />
|
||||
<PackageVersion Include="coverlet.collector" Version="6.0.2" PrivateAssets="All" />
|
||||
<PackageVersion Include="Cronos" Version="0.8.4" />
|
||||
|
|
@ -22,96 +22,94 @@
|
|||
<PackageVersion Include="DistributedLock.FileSystem" Version="1.0.2" />
|
||||
<PackageVersion Include="DistributedLock.Postgres" Version="1.2.0" />
|
||||
<PackageVersion Include="DistributedLock.Redis" Version="1.0.3" />
|
||||
<PackageVersion Include="Elastic.Clients.Elasticsearch" Version="8.14.6" />
|
||||
<PackageVersion Include="Elsa.Studio" Version="3.3.0-preview.561" />
|
||||
<PackageVersion Include="Elsa.Studio.Core.BlazorWasm" Version="3.3.0-preview.561" />
|
||||
<PackageVersion Include="Elsa.Studio.Login.BlazorWasm" Version="3.3.0-preview.561" />
|
||||
<PackageVersion Include="Elsa.Studio.Agents" Version="3.3.0-preview.561" />
|
||||
<PackageVersion Include="FastEndpoints" Version="5.27.0" />
|
||||
<PackageVersion Include="FastEndpoints.Security" Version="5.27.0" />
|
||||
<PackageVersion Include="FastEndpoints.Swagger" Version="5.27.0" />
|
||||
<PackageVersion Include="FluentMigrator" Version="5.2.0" />
|
||||
<PackageVersion Include="FluentMigrator.Runner" Version="5.2.0" />
|
||||
<PackageVersion Include="FluentStorage" Version="5.4.3" />
|
||||
<PackageVersion Include="FluentStorage.Azure.Blobs" Version="5.2.3" />
|
||||
<PackageVersion Include="Fluid.Core" Version="2.11.0" />
|
||||
<PackageVersion Include="Fody" Version="6.8.1" />
|
||||
<PackageVersion Include="Elastic.Clients.Elasticsearch" Version="8.15.10" />
|
||||
<PackageVersion Include="Elsa.Studio" Version="3.3.0-preview.600" />
|
||||
<PackageVersion Include="Elsa.Studio.Core.BlazorWasm" Version="3.3.0-preview.600" />
|
||||
<PackageVersion Include="Elsa.Studio.Login.BlazorWasm" Version="3.3.0-preview.600" />
|
||||
<PackageVersion Include="Elsa.Studio.Agents" Version="3.3.0-preview.600" />
|
||||
<PackageVersion Include="FastEndpoints" Version="5.30.0" />
|
||||
<PackageVersion Include="FastEndpoints.Security" Version="5.30.0" />
|
||||
<PackageVersion Include="FastEndpoints.Swagger" Version="5.30.0" />
|
||||
<PackageVersion Include="FluentMigrator" Version="6.2.0" />
|
||||
<PackageVersion Include="FluentMigrator.Runner" Version="6.2.0" />
|
||||
<PackageVersion Include="FluentStorage" Version="5.6.0" />
|
||||
<PackageVersion Include="FluentStorage.Azure.Blobs" Version="5.3.0" />
|
||||
<PackageVersion Include="Fluid.Core" Version="2.11.1" />
|
||||
<PackageVersion Include="Fody" Version="6.8.2" />
|
||||
<PackageVersion Include="GitHubActionsTestLogger" Version="2.4.1" />
|
||||
<PackageVersion Include="Google.Protobuf" Version="3.27.2" />
|
||||
<PackageVersion Include="Google.Protobuf" Version="3.28.3" />
|
||||
<PackageVersion Include="Grpc.Net.Client" Version="2.66.0" />
|
||||
<PackageVersion Include="Grpc.Tools" Version="2.66.0" />
|
||||
<PackageVersion Include="Hangfire" Version="1.8.14" />
|
||||
<PackageVersion Include="Grpc.Tools" Version="2.67.0" />
|
||||
<PackageVersion Include="Hangfire" Version="1.8.15" />
|
||||
<PackageVersion Include="Hangfire.MemoryStorage" Version="1.8.1.1" />
|
||||
<PackageVersion Include="Hangfire.Storage.SQLite" Version="0.4.2" />
|
||||
<PackageVersion Include="Humanizer.Core" Version="2.14.1" />
|
||||
<PackageVersion Include="IronCompress" Version="1.5.2" />
|
||||
<PackageVersion Include="JetBrains.Annotations" Version="2024.2.0" />
|
||||
<PackageVersion Include="Jint" Version="4.0.1" />
|
||||
<PackageVersion Include="IronCompress" Version="1.6.3" />
|
||||
<PackageVersion Include="JetBrains.Annotations" Version="2024.3.0" />
|
||||
<PackageVersion Include="Jint" Version="4.0.3" />
|
||||
<PackageVersion Include="LinqKit.Core" Version="1.2.5" />
|
||||
<PackageVersion Include="MailKit" Version="4.7.1.1" />
|
||||
<PackageVersion Include="MassTransit" Version="8.2.3" />
|
||||
<PackageVersion Include="MassTransit.Azure.ServiceBus.Core" Version="8.2.3" />
|
||||
<PackageVersion Include="MassTransit.RabbitMQ" Version="8.2.3" />
|
||||
<PackageVersion Include="Microsoft.AspNetCore.Mvc.Testing" Version="8.0.7" />
|
||||
<PackageVersion Include="Microsoft.CodeAnalysis.CSharp.Scripting" Version="4.10.0" />
|
||||
<PackageVersion Include="MailKit" Version="4.8.0" />
|
||||
<PackageVersion Include="MassTransit" Version="8.3.0" />
|
||||
<PackageVersion Include="MassTransit.Azure.ServiceBus.Core" Version="8.3.0" />
|
||||
<PackageVersion Include="MassTransit.RabbitMQ" Version="8.3.0" />
|
||||
<PackageVersion Include="Microsoft.AspNetCore.Mvc.Testing" Version="8.0.10" />
|
||||
<PackageVersion Include="Microsoft.CodeAnalysis.CSharp.Scripting" Version="4.11.0" />
|
||||
<PackageVersion Include="Microsoft.EntityFrameworkCore.Sqlite.Design" Version="1.1.6" />
|
||||
<PackageVersion Include="Microsoft.Identity.Client" Version="4.61.3" />
|
||||
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.10.0" />
|
||||
<PackageVersion Include="Microsoft.Identity.Client" Version="4.66.1" />
|
||||
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.11.1" />
|
||||
<PackageVersion Include="Microsoft.SourceLink.GitHub" Version="8.0.0" />
|
||||
<PackageVersion Include="Microsoft.SemanticKernel" Version="1.18.2" />
|
||||
<PackageVersion Include="MongoDB.Driver" Version="2.27.0" />
|
||||
<PackageVersion Include="MongoDB.Driver.Core.Extensions.DiagnosticSources" Version="1.4.0" />
|
||||
<PackageVersion Include="Microsoft.SemanticKernel" Version="1.25.0" />
|
||||
<PackageVersion Include="MongoDB.Driver" Version="3.0.0" />
|
||||
<!-- <PackageVersion Include="MongoDB.Driver.Core.Extensions.DiagnosticSources" Version="1.5.0" />-->
|
||||
<PackageVersion Include="MongoDB.Driver.Extensions" Version="2.0.2" />
|
||||
<PackageVersion Include="Newtonsoft.Json" Version="13.0.3" />
|
||||
<PackageVersion Include="NSubstitute" Version="5.1.0" />
|
||||
<PackageVersion Include="NuGet.Packaging" Version="6.10.1" />
|
||||
<PackageVersion Include="NuGet.Protocol" Version="6.10.1" />
|
||||
<PackageVersion Include="Nuke.Components" Version="8.1.0" />
|
||||
<PackageVersion Include="NuGet.Packaging" Version="6.11.1" />
|
||||
<PackageVersion Include="NuGet.Protocol" Version="6.11.1" />
|
||||
<PackageVersion Include="Nuke.Components" Version="8.1.2" />
|
||||
<PackageVersion Include="Open.Linq.AsyncExtensions" Version="1.2.0" />
|
||||
<PackageVersion Include="Polly.Extensions.Http" Version="3.0.0" />
|
||||
<PackageVersion Include="PolySharp" Version="1.14.1" />
|
||||
<PackageVersion Include="Proto.Actor" Version="1.6.0" />
|
||||
<PackageVersion Include="Proto.Cluster" Version="1.6.0" />
|
||||
<PackageVersion Include="Proto.Cluster.CodeGen" Version="1.6.0" />
|
||||
<PackageVersion Include="Proto.Cluster.Kubernetes" Version="1.6.0" />
|
||||
<PackageVersion Include="Proto.Cluster.TestProvider" Version="1.6.0" />
|
||||
<PackageVersion Include="Proto.Cluster.AzureContainerApps" Version="1.6.0" />
|
||||
<PackageVersion Include="Proto.OpenTelemetry" Version="1.6.0" />
|
||||
<PackageVersion Include="Proto.Persistence" Version="1.6.0" />
|
||||
<PackageVersion Include="Proto.Persistence.Sqlite" Version="1.6.0" />
|
||||
<PackageVersion Include="Proto.Persistence.SqlServer" Version="1.6.0" />
|
||||
<PackageVersion Include="Proto.Remote" Version="1.6.0" />
|
||||
<PackageVersion Include="pythonnet" Version="3.0.3" />
|
||||
<PackageVersion Include="Proto.Actor" Version="1.7.0" />
|
||||
<PackageVersion Include="Proto.Cluster" Version="1.7.0" />
|
||||
<PackageVersion Include="Proto.Cluster.CodeGen" Version="1.7.0" />
|
||||
<PackageVersion Include="Proto.Cluster.Kubernetes" Version="1.7.0" />
|
||||
<PackageVersion Include="Proto.Cluster.TestProvider" Version="1.7.0" />
|
||||
<PackageVersion Include="Proto.Cluster.AzureContainerApps" Version="1.7.0" />
|
||||
<PackageVersion Include="Proto.OpenTelemetry" Version="1.7.0" />
|
||||
<PackageVersion Include="Proto.Persistence" Version="1.7.0" />
|
||||
<PackageVersion Include="Proto.Persistence.Sqlite" Version="1.7.0" />
|
||||
<PackageVersion Include="Proto.Persistence.SqlServer" Version="1.7.0" />
|
||||
<PackageVersion Include="Proto.Remote" Version="1.7.0" />
|
||||
<PackageVersion Include="pythonnet" Version="3.0.4" />
|
||||
<PackageVersion Include="Quartz.Extensions.Hosting" Version="3.13.0" />
|
||||
<PackageVersion Include="Quartz.Serialization.Json" Version="3.13.0" />
|
||||
<PackageVersion Include="Refit" Version="7.1.2" />
|
||||
<PackageVersion Include="Refit.HttpClientFactory" Version="7.0.0" />
|
||||
<PackageVersion Include="Scrutor" Version="4.2.2" />
|
||||
<PackageVersion Include="ShortGuid" Version="2.0.1" />
|
||||
<PackageVersion Include="StackExchange.Redis" Version="2.8.0" />
|
||||
<PackageVersion Include="StackExchange.Redis" Version="2.8.16" />
|
||||
<PackageVersion Include="System.CommandLine" Version="2.0.0-beta4.22272.1" />
|
||||
<PackageVersion Include="System.Data.SqlClient" Version="4.8.6" />
|
||||
<PackageVersion Include="System.Formats.Asn1" Version="8.0.1" />
|
||||
<PackageVersion Include="System.Linq.Async" Version="6.0.1" />
|
||||
<PackageVersion Include="System.Linq.Dynamic.Core" Version="1.4.3" />
|
||||
<PackageVersion Include="System.Linq.Dynamic.Core" Version="1.4.6" />
|
||||
<PackageVersion Include="System.Net.Http" Version="4.3.4" />
|
||||
<PackageVersion Include="System.Text.RegularExpressions" Version="4.3.1" />
|
||||
<PackageVersion Include="Testcontainers" Version="3.9.0" />
|
||||
<PackageVersion Include="Testcontainers.RabbitMq" Version="3.9.0" />
|
||||
<PackageVersion Include="Testcontainers.Redis" Version="3.9.0" />
|
||||
<PackageVersion Include="Testcontainers.PostgreSql" Version="3.9.0" />
|
||||
<PackageVersion Include="Testcontainers" Version="3.10.0" />
|
||||
<PackageVersion Include="Testcontainers.RabbitMq" Version="3.10.0" />
|
||||
<PackageVersion Include="Testcontainers.Redis" Version="3.10.0" />
|
||||
<PackageVersion Include="Testcontainers.PostgreSql" Version="3.10.0" />
|
||||
<PackageVersion Include="ThrottleDebounce" Version="2.0.0" />
|
||||
<PackageVersion Include="WebhooksCore" Version="0.0.1-preview.17" />
|
||||
<PackageVersion Include="xunit" Version="2.9.0" />
|
||||
<PackageVersion Include="xunit" Version="2.9.2" />
|
||||
<PackageVersion Include="xunit.abstractions" Version="2.0.3" />
|
||||
<PackageVersion Include="xunit.extensibility.core" Version="2.9.0" />
|
||||
<PackageVersion Include="xunit.extensibility.core" Version="2.9.2" />
|
||||
<PackageVersion Include="xunit.runner.visualstudio" Version="2.8.2" />
|
||||
<PackageVersion Include="Yarp.ReverseProxy" Version="2.1.0" />
|
||||
<PackageVersion Include="Yarp.ReverseProxy" Version="2.2.0" />
|
||||
<PackageVersion Include="AppAny.Quartz.EntityFrameworkCore.Migrations" Version="0.5.1" />
|
||||
<PackageVersion Include="AppAny.Quartz.EntityFrameworkCore.Migrations.MySql" Version="0.5.1" />
|
||||
<PackageVersion Include="AppAny.Quartz.EntityFrameworkCore.Migrations.PostgreSQL" Version="0.5.1" />
|
||||
<PackageVersion Include="AppAny.Quartz.EntityFrameworkCore.Migrations.SQLite" Version="0.5.1" />
|
||||
<PackageVersion Include="AppAny.Quartz.EntityFrameworkCore.Migrations.SqlServer" Version="0.5.1" />
|
||||
<PackageVersion Include="System.Text.Json" Version="$(SystemTextJsonVersion)" />
|
||||
</ItemGroup>
|
||||
<ItemGroup Condition="'$(TargetFramework)' == 'net6.0'">
|
||||
<PackageVersion Include="AspNetCore.Authentication.ApiKey" Version="7.0.0" />
|
||||
|
|
@ -141,12 +139,14 @@
|
|||
<PackageVersion Include="Microsoft.Extensions.Logging.Console" Version="7.0.0" />
|
||||
<PackageVersion Include="Microsoft.Extensions.Options" Version="7.0.1" />
|
||||
<PackageVersion Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="7.0.0" />
|
||||
<PackageVersion Include="Npgsql" Version="7.0.7" />
|
||||
<PackageVersion Include="Npgsql" Version="7.0.8" />
|
||||
<PackageVersion Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="7.0.18" />
|
||||
<PackageVersion Include="Oracle.EntityFrameworkCore" Version="7.21.13" />
|
||||
<PackageVersion Include="Polly" Version="7.2.4" />
|
||||
<PackageVersion Include="Pomelo.EntityFrameworkCore.MySql" Version="7.0.0" />
|
||||
<PackageVersion Include="System.Text.Json" Version="$(SystemTextJsonVersion)" />
|
||||
<PackageVersion Include="Refit" Version="7.1.2" />
|
||||
<PackageVersion Include="Refit.HttpClientFactory" Version="7.0.0" />
|
||||
<PackageVersion Include="Scrutor" Version="4.2.2" />
|
||||
</ItemGroup>
|
||||
<ItemGroup Condition="'$(TargetFramework)' == 'net8.0'">
|
||||
<PackageVersion Include="AspNetCore.Authentication.ApiKey" Version="8.0.1" />
|
||||
|
|
@ -183,6 +183,8 @@
|
|||
<PackageVersion Include="Polly" Version="8.4.2" />
|
||||
<PackageVersion Include="Pomelo.EntityFrameworkCore.MySql" Version="8.0.2" />
|
||||
<PackageVersion Include="Microsoft.Extensions.DependencyModel" Version="8.0.2" />
|
||||
<PackageVersion Include="System.Text.Json" Version="$(SystemTextJsonVersion)" />
|
||||
<PackageVersion Include="Refit" Version="7.2.1" />
|
||||
<PackageVersion Include="Refit.HttpClientFactory" Version="7.2.1" />
|
||||
<PackageVersion Include="Scrutor" Version="5.0.1" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
|
|
@ -24,11 +24,11 @@
|
|||
|
||||
<!--Overridden for vulnerability reasons with dependencies referencing older versions.-->
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Azure.Identity" Version="1.12.0" />
|
||||
<PackageReference Include="NuGet.Packaging" Version="6.10.1" />
|
||||
<PackageReference Include="Azure.Identity" Version="1.13.1" />
|
||||
<PackageReference Include="NuGet.Packaging" Version="6.11.1" />
|
||||
<PackageReference Include="System.Formats.Asn1" Version="8.0.1" />
|
||||
<PackageReference Include="System.Text.Json" Version="8.0.5" />
|
||||
<PackageReference Include="Microsoft.Identity.Client" VersionOverride="4.65.0" />
|
||||
<PackageReference Include="Microsoft.Identity.Client" VersionOverride="4.66.1" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
|
|
|||
|
|
@ -164,7 +164,7 @@ public class MongoDbStore<TDocument>(IMongoCollection<TDocument> collection, ITe
|
|||
/// <param name="query">The query to use</param>
|
||||
/// <param name="cancellationToken">The cancellation token</param>
|
||||
/// <returns>The document if found, otherwise <c>null</c></returns>
|
||||
public async Task<TDocument?> FindAsync(Func<IMongoQueryable<TDocument>, IMongoQueryable<TDocument>> query, CancellationToken cancellationToken = default)
|
||||
public async Task<TDocument?> FindAsync(Func<IQueryable<TDocument>, IQueryable<TDocument>> query, CancellationToken cancellationToken = default)
|
||||
{
|
||||
return await FindAsync(query, false, cancellationToken);
|
||||
}
|
||||
|
|
@ -176,7 +176,7 @@ public class MongoDbStore<TDocument>(IMongoCollection<TDocument> collection, ITe
|
|||
/// <param name="tenantAgnostic">Whether to include results across tenants</param>
|
||||
/// <param name="cancellationToken">The cancellation token</param>
|
||||
/// <returns>The document if found, otherwise <c>null</c></returns>
|
||||
public async Task<TDocument?> FindAsync(Func<IMongoQueryable<TDocument>, IMongoQueryable<TDocument>> query, bool tenantAgnostic = false, CancellationToken cancellationToken = default)
|
||||
public async Task<TDocument?> FindAsync(Func<IQueryable<TDocument>, IQueryable<TDocument>> query, bool tenantAgnostic = false, CancellationToken cancellationToken = default)
|
||||
{
|
||||
var queryable = GetQueryableCollection(tenantAgnostic);
|
||||
return await query(queryable).FirstOrDefaultAsync(cancellationToken);
|
||||
|
|
@ -202,7 +202,7 @@ public class MongoDbStore<TDocument>(IMongoCollection<TDocument> collection, ITe
|
|||
/// <summary>
|
||||
/// Queries the database using a query and a selector.
|
||||
/// </summary>
|
||||
public async Task<IEnumerable<TResult>> FindManyAsync<TResult>(Func<IMongoQueryable<TDocument>, IMongoQueryable<TDocument>> query, Expression<Func<TDocument, TResult>> selector, CancellationToken cancellationToken = default)
|
||||
public async Task<IEnumerable<TResult>> FindManyAsync<TResult>(Func<IQueryable<TDocument>, IQueryable<TDocument>> query, Expression<Func<TDocument, TResult>> selector, CancellationToken cancellationToken = default)
|
||||
{
|
||||
return await FindManyAsync(query, selector, false, cancellationToken);
|
||||
}
|
||||
|
|
@ -210,7 +210,7 @@ public class MongoDbStore<TDocument>(IMongoCollection<TDocument> collection, ITe
|
|||
/// <summary>
|
||||
/// Queries the database using a query and a selector.
|
||||
/// </summary>
|
||||
public async Task<IEnumerable<TResult>> FindManyAsync<TResult>(Func<IMongoQueryable<TDocument>, IMongoQueryable<TDocument>> query, Expression<Func<TDocument, TResult>> selector, bool tenantAgnostic = false, CancellationToken cancellationToken = default)
|
||||
public async Task<IEnumerable<TResult>> FindManyAsync<TResult>(Func<IQueryable<TDocument>, IQueryable<TDocument>> query, Expression<Func<TDocument, TResult>> selector, bool tenantAgnostic = false, CancellationToken cancellationToken = default)
|
||||
{
|
||||
var queryable = GetQueryableCollection(tenantAgnostic);
|
||||
return await query(queryable).Select(selector).ToListAsync(cancellationToken);
|
||||
|
|
@ -219,7 +219,7 @@ public class MongoDbStore<TDocument>(IMongoCollection<TDocument> collection, ITe
|
|||
/// <summary>
|
||||
/// Finds a list of documents using a query
|
||||
/// </summary>
|
||||
public async Task<IEnumerable<TDocument>> FindManyAsync(Func<IMongoQueryable<TDocument>, IMongoQueryable<TDocument>> query, CancellationToken cancellationToken = default)
|
||||
public async Task<IEnumerable<TDocument>> FindManyAsync(Func<IQueryable<TDocument>, IQueryable<TDocument>> query, CancellationToken cancellationToken = default)
|
||||
{
|
||||
return await FindManyAsync(query, false, cancellationToken);
|
||||
}
|
||||
|
|
@ -227,7 +227,7 @@ public class MongoDbStore<TDocument>(IMongoCollection<TDocument> collection, ITe
|
|||
/// <summary>
|
||||
/// Finds a list of documents using a query
|
||||
/// </summary>
|
||||
public async Task<IEnumerable<TDocument>> FindManyAsync(Func<IMongoQueryable<TDocument>, IMongoQueryable<TDocument>> query, bool tenantAgnostic = false, CancellationToken cancellationToken = default)
|
||||
public async Task<IEnumerable<TDocument>> FindManyAsync(Func<IQueryable<TDocument>, IQueryable<TDocument>> query, bool tenantAgnostic = false, CancellationToken cancellationToken = default)
|
||||
{
|
||||
var queryable = GetQueryableCollection(tenantAgnostic);
|
||||
return await query(queryable).ToListAsync(cancellationToken);
|
||||
|
|
@ -236,7 +236,7 @@ public class MongoDbStore<TDocument>(IMongoCollection<TDocument> collection, ITe
|
|||
/// <summary>
|
||||
/// Queries the database using a query and a selector.
|
||||
/// </summary>
|
||||
public async Task<IEnumerable<TResult>> FindMany<TResult>(Func<IMongoQueryable<TDocument>, IMongoQueryable<TDocument>> query, Expression<Func<TDocument, TResult>> selector, CancellationToken cancellationToken = default)
|
||||
public async Task<IEnumerable<TResult>> FindMany<TResult>(Func<IQueryable<TDocument>, IQueryable<TDocument>> query, Expression<Func<TDocument, TResult>> selector, CancellationToken cancellationToken = default)
|
||||
{
|
||||
return await FindMany(query, selector, false, cancellationToken);
|
||||
}
|
||||
|
|
@ -244,7 +244,7 @@ public class MongoDbStore<TDocument>(IMongoCollection<TDocument> collection, ITe
|
|||
/// <summary>
|
||||
/// Queries the database using a query and a selector.
|
||||
/// </summary>
|
||||
public async Task<IEnumerable<TResult>> FindMany<TResult>(Func<IMongoQueryable<TDocument>, IMongoQueryable<TDocument>> query, Expression<Func<TDocument, TResult>> selector, bool tenantAgnostic = false, CancellationToken cancellationToken = default)
|
||||
public async Task<IEnumerable<TResult>> FindMany<TResult>(Func<IQueryable<TDocument>, IQueryable<TDocument>> query, Expression<Func<TDocument, TResult>> selector, bool tenantAgnostic = false, CancellationToken cancellationToken = default)
|
||||
{
|
||||
var queryable = GetQueryableCollection(tenantAgnostic);
|
||||
return await query(queryable).Select(selector).ToListAsync(cancellationToken);
|
||||
|
|
@ -253,7 +253,7 @@ public class MongoDbStore<TDocument>(IMongoCollection<TDocument> collection, ITe
|
|||
/// <summary>
|
||||
/// Counts documents in the collection using a filter.
|
||||
/// </summary>
|
||||
public async Task<long> CountAsync(Func<IMongoQueryable<TDocument>, IMongoQueryable<TDocument>> query, CancellationToken cancellationToken = default)
|
||||
public async Task<long> CountAsync(Func<IQueryable<TDocument>, IQueryable<TDocument>> query, CancellationToken cancellationToken = default)
|
||||
{
|
||||
return await CountAsync(query, false, cancellationToken);
|
||||
}
|
||||
|
|
@ -261,7 +261,7 @@ public class MongoDbStore<TDocument>(IMongoCollection<TDocument> collection, ITe
|
|||
/// <summary>
|
||||
/// Counts documents in the collection using a filter.
|
||||
/// </summary>
|
||||
public async Task<long> CountAsync(Func<IMongoQueryable<TDocument>, IMongoQueryable<TDocument>> query, bool tenantAgnostic = false, CancellationToken cancellationToken = default)
|
||||
public async Task<long> CountAsync(Func<IQueryable<TDocument>, IQueryable<TDocument>> query, bool tenantAgnostic = false, CancellationToken cancellationToken = default)
|
||||
{
|
||||
var queryable = GetQueryableCollection(tenantAgnostic);
|
||||
return await query(queryable).LongCountAsync(cancellationToken);
|
||||
|
|
@ -270,7 +270,7 @@ public class MongoDbStore<TDocument>(IMongoCollection<TDocument> collection, ITe
|
|||
/// <summary>
|
||||
/// Counts documents in the collection using a filter and distinct by a key selector.
|
||||
/// </summary>
|
||||
public async Task<long> CountAsync<TProperty>(Func<IMongoQueryable<TDocument>, IMongoQueryable<TDocument>> query, Expression<Func<TDocument, TProperty>> propertySelector, CancellationToken cancellationToken = default)
|
||||
public async Task<long> CountAsync<TProperty>(Func<IQueryable<TDocument>, IQueryable<TDocument>> query, Expression<Func<TDocument, TProperty>> propertySelector, CancellationToken cancellationToken = default)
|
||||
{
|
||||
return await CountAsync(query, propertySelector, false, cancellationToken);
|
||||
}
|
||||
|
|
@ -278,10 +278,10 @@ public class MongoDbStore<TDocument>(IMongoCollection<TDocument> collection, ITe
|
|||
/// <summary>
|
||||
/// Counts documents in the collection using a filter and distinct by a key selector.
|
||||
/// </summary>
|
||||
public async Task<long> CountAsync<TProperty>(Func<IMongoQueryable<TDocument>, IMongoQueryable<TDocument>> query, Expression<Func<TDocument, TProperty>> propertySelector, bool tenantAgnostic = false, CancellationToken cancellationToken = default)
|
||||
public async Task<long> CountAsync<TProperty>(Func<IQueryable<TDocument>, IQueryable<TDocument>> query, Expression<Func<TDocument, TProperty>> propertySelector, bool tenantAgnostic = false, CancellationToken cancellationToken = default)
|
||||
{
|
||||
var queryable = GetQueryableCollection(tenantAgnostic);
|
||||
return await query((IMongoQueryable<TDocument>)queryable.DistinctBy(propertySelector)).LongCountAsync(cancellationToken);
|
||||
return await query((IQueryable<TDocument>)queryable.DistinctBy(propertySelector)).LongCountAsync(cancellationToken);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
|
@ -347,7 +347,7 @@ public class MongoDbStore<TDocument>(IMongoCollection<TDocument> collection, ITe
|
|||
/// Deletes documents using a query.
|
||||
/// </summary>
|
||||
/// <returns>The number of documents deleted.</returns>
|
||||
public async Task<long> DeleteWhereAsync<TKey>(Func<IMongoQueryable<TDocument>, IMongoQueryable<TDocument>> query, Expression<Func<TDocument, TKey>> keySelector, CancellationToken cancellationToken = default)
|
||||
public async Task<long> DeleteWhereAsync<TKey>(Func<IQueryable<TDocument>, IQueryable<TDocument>> query, Expression<Func<TDocument, TKey>> keySelector, CancellationToken cancellationToken = default)
|
||||
{
|
||||
return await DeleteWhereAsync(query, keySelector, false, cancellationToken);
|
||||
}
|
||||
|
|
@ -356,7 +356,7 @@ public class MongoDbStore<TDocument>(IMongoCollection<TDocument> collection, ITe
|
|||
/// Deletes documents using a query.
|
||||
/// </summary>
|
||||
/// <returns>The number of documents deleted.</returns>
|
||||
public async Task<long> DeleteWhereAsync<TKey>(Func<IMongoQueryable<TDocument>, IMongoQueryable<TDocument>> query, Expression<Func<TDocument, TKey>> keySelector, bool tenantAgnostic = false, CancellationToken cancellationToken = default)
|
||||
public async Task<long> DeleteWhereAsync<TKey>(Func<IQueryable<TDocument>, IQueryable<TDocument>> query, Expression<Func<TDocument, TKey>> keySelector, bool tenantAgnostic = false, CancellationToken cancellationToken = default)
|
||||
{
|
||||
var key = keySelector.GetPropertyName();
|
||||
return await DeleteWhereAsync(query, key, tenantAgnostic, cancellationToken);
|
||||
|
|
@ -366,7 +366,7 @@ public class MongoDbStore<TDocument>(IMongoCollection<TDocument> collection, ITe
|
|||
/// Deletes documents using a query.
|
||||
/// </summary>
|
||||
/// <returns>The number of documents deleted.</returns>
|
||||
public async Task<long> DeleteWhereAsync(Func<IMongoQueryable<TDocument>, IMongoQueryable<TDocument>> query, string key = nameof(Entity.Id), CancellationToken cancellationToken = default)
|
||||
public async Task<long> DeleteWhereAsync(Func<IQueryable<TDocument>, IQueryable<TDocument>> query, string key = nameof(Entity.Id), CancellationToken cancellationToken = default)
|
||||
{
|
||||
return await DeleteWhereAsync(query, key, false, cancellationToken);
|
||||
}
|
||||
|
|
@ -375,7 +375,7 @@ public class MongoDbStore<TDocument>(IMongoCollection<TDocument> collection, ITe
|
|||
/// Deletes documents using a query.
|
||||
/// </summary>
|
||||
/// <returns>The number of documents deleted.</returns>
|
||||
public async Task<long> DeleteWhereAsync(Func<IMongoQueryable<TDocument>, IMongoQueryable<TDocument>> query, string key = nameof(Entity.Id), bool tenantAgnostic = false, CancellationToken cancellationToken = default)
|
||||
public async Task<long> DeleteWhereAsync(Func<IQueryable<TDocument>, IQueryable<TDocument>> query, string key = nameof(Entity.Id), bool tenantAgnostic = false, CancellationToken cancellationToken = default)
|
||||
{
|
||||
var queryable = GetQueryableCollection(tenantAgnostic);
|
||||
var documentsToDelete = await query(queryable).ToListAsync(cancellationToken);
|
||||
|
|
@ -386,7 +386,7 @@ public class MongoDbStore<TDocument>(IMongoCollection<TDocument> collection, ITe
|
|||
return count;
|
||||
}
|
||||
|
||||
private IMongoQueryable<TDocument> GetQueryableCollection(bool tenantAgnostic = false)
|
||||
private IQueryable<TDocument> GetQueryableCollection(bool tenantAgnostic = false)
|
||||
{
|
||||
var queryable = collection.AsQueryable();
|
||||
|
||||
|
|
|
|||
|
|
@ -8,27 +8,30 @@
|
|||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.Extensions.Options" />
|
||||
<PackageReference Include="MongoDB.Driver" />
|
||||
<PackageReference Include="MongoDB.Driver.Core.Extensions.DiagnosticSources" />
|
||||
<PackageReference Include="MongoDB.Driver.Extensions" />
|
||||
<PackageReference Include="Microsoft.Extensions.Options"/>
|
||||
<PackageReference Include="MongoDB.Driver"/>
|
||||
<!--
|
||||
TODO: Uncomment once https://github.com/jbogard/MongoDB.Driver.Core.Extensions.DiagnosticSources/pull/41 is merged and deployed.
|
||||
<PackageReference Include="MongoDB.Driver.Core.Extensions.DiagnosticSources" />
|
||||
-->
|
||||
<PackageReference Include="MongoDB.Driver.Extensions"/>
|
||||
</ItemGroup>
|
||||
|
||||
|
||||
<!--Overridden for vulnaribility reasons with dependencies referencing older versions.-->
|
||||
<ItemGroup>
|
||||
<PackageReference Include="System.Text.Json" VersionOverride="$(SystemTextJsonVersion)" />
|
||||
<PackageReference Include="System.Text.Json" VersionOverride="$(SystemTextJsonVersion)"/>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\..\common\Elsa.Features\Elsa.Features.csproj" />
|
||||
<ProjectReference Include="..\Elsa.Alterations.Core\Elsa.Alterations.Core.csproj" />
|
||||
<ProjectReference Include="..\Elsa.Alterations\Elsa.Alterations.csproj" />
|
||||
<ProjectReference Include="..\Elsa.Common\Elsa.Common.csproj" />
|
||||
<ProjectReference Include="..\Elsa.Http\Elsa.Http.csproj" />
|
||||
<ProjectReference Include="..\Elsa.Identity\Elsa.Identity.csproj" />
|
||||
<ProjectReference Include="..\Elsa.Labels\Elsa.Labels.csproj" />
|
||||
<ProjectReference Include="..\Elsa.Workflows.Management\Elsa.Workflows.Management.csproj" />
|
||||
<ProjectReference Include="..\Elsa.Workflows.Runtime\Elsa.Workflows.Runtime.csproj" />
|
||||
<ProjectReference Include="..\..\common\Elsa.Features\Elsa.Features.csproj"/>
|
||||
<ProjectReference Include="..\Elsa.Alterations.Core\Elsa.Alterations.Core.csproj"/>
|
||||
<ProjectReference Include="..\Elsa.Alterations\Elsa.Alterations.csproj"/>
|
||||
<ProjectReference Include="..\Elsa.Common\Elsa.Common.csproj"/>
|
||||
<ProjectReference Include="..\Elsa.Http\Elsa.Http.csproj"/>
|
||||
<ProjectReference Include="..\Elsa.Identity\Elsa.Identity.csproj"/>
|
||||
<ProjectReference Include="..\Elsa.Labels\Elsa.Labels.csproj"/>
|
||||
<ProjectReference Include="..\Elsa.Workflows.Management\Elsa.Workflows.Management.csproj"/>
|
||||
<ProjectReference Include="..\Elsa.Workflows.Runtime\Elsa.Workflows.Runtime.csproj"/>
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
using Elsa.Common.Models;
|
||||
using MongoDB.Driver;
|
||||
using MongoDB.Driver.Linq;
|
||||
|
||||
namespace Elsa.MongoDb.Extensions;
|
||||
|
|
@ -9,7 +8,7 @@ public static class QueryableExtensions
|
|||
/// <summary>
|
||||
/// Returns a paged result from the specified query.
|
||||
/// </summary>
|
||||
public static async Task<Page<T>> PaginateAsync<T>(this IMongoQueryable<T> queryable, PageArgs? pageArgs = default)
|
||||
public static async Task<Page<T>> PaginateAsync<T>(this IQueryable<T> queryable, PageArgs? pageArgs = default)
|
||||
{
|
||||
var count = await queryable.CountAsync();
|
||||
if (pageArgs?.Offset != null) queryable = queryable.Skip(pageArgs.Offset.Value);
|
||||
|
|
|
|||
|
|
@ -9,7 +9,6 @@ using Elsa.MongoDb.Options;
|
|||
using Elsa.MongoDb.Serializers;
|
||||
using Elsa.Workflows.Memory;
|
||||
using Elsa.Workflows.Runtime.Entities;
|
||||
using Elsa.Workflows.Services;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.Extensions.DependencyInjection.Extensions;
|
||||
using Microsoft.Extensions.Options;
|
||||
|
|
@ -17,20 +16,14 @@ using MongoDB.Bson;
|
|||
using MongoDB.Bson.Serialization;
|
||||
using MongoDB.Bson.Serialization.Serializers;
|
||||
using MongoDB.Driver;
|
||||
using MongoDB.Driver.Core.Extensions.DiagnosticSources;
|
||||
|
||||
namespace Elsa.MongoDb.Features;
|
||||
|
||||
/// <summary>
|
||||
/// Configures MongoDb.
|
||||
/// </summary>
|
||||
public class MongoDbFeature : FeatureBase
|
||||
public class MongoDbFeature(IModule module) : FeatureBase(module)
|
||||
{
|
||||
/// <inheritdoc />
|
||||
public MongoDbFeature(IModule module) : base(module)
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// The MongoDB connection string.
|
||||
/// </summary>
|
||||
|
|
@ -104,7 +97,9 @@ public class MongoDbFeature : FeatureBase
|
|||
|
||||
var settings = MongoClientSettings.FromUrl(mongoUrl);
|
||||
|
||||
settings.ClusterConfigurator = cb => cb.Subscribe(new DiagnosticsActivityEventSubscriber());
|
||||
// TODO: Uncomment once https://github.com/jbogard/MongoDB.Driver.Core.Extensions.DiagnosticSources/pull/41 is merged and deployed.
|
||||
//settings.ClusterConfigurator = cb => cb.Subscribe(new DiagnosticsActivityEventSubscriber());
|
||||
|
||||
settings.ApplicationName = GetApplicationName(settings);
|
||||
settings.WriteConcern = options.WriteConcern;
|
||||
settings.ReadConcern = options.ReadConcern;
|
||||
|
|
@ -122,6 +117,8 @@ public class MongoDbFeature : FeatureBase
|
|||
return client.GetDatabase(mongoUrl.DatabaseName);
|
||||
}
|
||||
|
||||
private static string GetApplicationName(MongoClientSettings settings) =>
|
||||
string.IsNullOrWhiteSpace(settings.ApplicationName) ? "elsa_workflows" : settings.ApplicationName;
|
||||
private static string GetApplicationName(MongoClientSettings settings)
|
||||
{
|
||||
return string.IsNullOrWhiteSpace(settings.ApplicationName) ? "elsa_workflows" : settings.ApplicationName;
|
||||
}
|
||||
}
|
||||
|
|
@ -57,7 +57,6 @@ public class MongoAlterationJobStore : IAlterationJobStore
|
|||
{
|
||||
await _mongoDbStore.SaveManyAsync(jobs.Select(i => i), cancellationToken);
|
||||
}
|
||||
|
||||
private static IMongoQueryable<AlterationJob> Filter(IMongoQueryable<AlterationJob> queryable, AlterationJobFilter filter) =>
|
||||
(filter.Apply(queryable) as IMongoQueryable<AlterationJob>)!;
|
||||
|
||||
private static IQueryable<AlterationJob> Filter(IQueryable<AlterationJob> queryable, AlterationJobFilter filter) => filter.Apply(queryable);
|
||||
}
|
||||
|
|
@ -51,9 +51,9 @@ public class MongoAlterationPlanStore : IAlterationPlanStore
|
|||
await _mongoDbStore.SaveAsync(document, cancellationToken);
|
||||
}
|
||||
|
||||
private static IMongoQueryable<AlterationPlanDocument> Filter(IMongoQueryable<AlterationPlanDocument> queryable, AlterationPlanFilter filter)
|
||||
private static IQueryable<AlterationPlanDocument> Filter(IQueryable<AlterationPlanDocument> queryable, AlterationPlanFilter filter)
|
||||
{
|
||||
return (Apply(queryable, filter) as IMongoQueryable<AlterationPlanDocument>)!;
|
||||
return Apply(queryable, filter);
|
||||
}
|
||||
|
||||
private static IQueryable<AlterationPlanDocument> Apply(IQueryable<AlterationPlanDocument> queryable, AlterationPlanFilter filter)
|
||||
|
|
|
|||
|
|
@ -31,8 +31,8 @@ public class MongoApplicationStore(MongoDbStore<Application> applicationMongoDbS
|
|||
return applicationMongoDbStore.FindAsync(query => Filter(query, filter), cancellationToken);
|
||||
}
|
||||
|
||||
private static IMongoQueryable<Application> Filter(IQueryable<Application> query, ApplicationFilter filter)
|
||||
private static IQueryable<Application> Filter(IQueryable<Application> query, ApplicationFilter filter)
|
||||
{
|
||||
return (filter.Apply(query) as IMongoQueryable<Application>)!;
|
||||
return filter.Apply(query);
|
||||
}
|
||||
}
|
||||
|
|
@ -43,8 +43,8 @@ public class MongoRoleStore(MongoDbStore<Role> roleMongoDbStore) : IRoleStore
|
|||
return roleMongoDbStore.FindManyAsync(queryable => Filter(queryable, filter), cancellationToken);
|
||||
}
|
||||
|
||||
private static IMongoQueryable<Role> Filter(IQueryable<Role> query, RoleFilter filter)
|
||||
private static IQueryable<Role> Filter(IQueryable<Role> query, RoleFilter filter)
|
||||
{
|
||||
return (filter.Apply(query) as IMongoQueryable<Role>)!;
|
||||
return filter.Apply(query);
|
||||
}
|
||||
}
|
||||
|
|
@ -29,8 +29,8 @@ public class MongoUserStore(MongoDbStore<User> userMongoDbStore) : IUserStore
|
|||
return userMongoDbStore.FindAsync(query => Filter(query, filter), cancellationToken);
|
||||
}
|
||||
|
||||
private static IMongoQueryable<User> Filter(IQueryable<User> query, UserFilter filter)
|
||||
private static IQueryable<User> Filter(IQueryable<User> query, UserFilter filter)
|
||||
{
|
||||
return (filter.Apply(query) as IMongoQueryable<User>)!;
|
||||
return filter.Apply(query);
|
||||
}
|
||||
}
|
||||
|
|
@ -80,8 +80,8 @@ public class MongoLabelStore : ILabelStore
|
|||
return await _labelMongoDbStore.DeleteWhereAsync(x => idList.Contains(x.Id), cancellationToken);
|
||||
}
|
||||
|
||||
private static IMongoQueryable<Label> Paginate(IMongoQueryable<Label> queryable, PageArgs pageArgs)
|
||||
private static IQueryable<Label> Paginate(IQueryable<Label> queryable, PageArgs pageArgs)
|
||||
{
|
||||
return (queryable.Paginate(pageArgs) as IMongoQueryable<Label>)!;
|
||||
return queryable.Paginate(pageArgs);
|
||||
}
|
||||
}
|
||||
|
|
@ -66,7 +66,7 @@ public class MongoWorkflowDefinitionStore(MongoDbStore<WorkflowDefinition> mongo
|
|||
var collection = mongoDbStore.GetCollection();
|
||||
var queryable = Filter(collection.AsQueryable(), filter);
|
||||
var count = queryable.LongCount();
|
||||
queryable = (queryable.Paginate(pageArgs) as IMongoQueryable<WorkflowDefinition>)!;
|
||||
queryable = queryable.Paginate(pageArgs)!;
|
||||
var documents = await queryable.Select(ExpressionHelpers.WorkflowDefinitionSummary).ToListAsync(cancellationToken);
|
||||
|
||||
return Page.Of(documents, count);
|
||||
|
|
@ -78,7 +78,7 @@ public class MongoWorkflowDefinitionStore(MongoDbStore<WorkflowDefinition> mongo
|
|||
var collection = mongoDbStore.GetCollection();
|
||||
var queryable = Order(Filter(collection.AsQueryable(), filter), order);
|
||||
var count = queryable.LongCount();
|
||||
var mongoQueryable = (queryable.Paginate(pageArgs) as IMongoQueryable<WorkflowDefinition>)!;
|
||||
var mongoQueryable = queryable.Paginate(pageArgs)!;
|
||||
var documents = await mongoQueryable.Select(ExpressionHelpers.WorkflowDefinitionSummary).ToListAsync(cancellationToken);
|
||||
|
||||
return Page.Of(documents, count);
|
||||
|
|
@ -154,22 +154,22 @@ public class MongoWorkflowDefinitionStore(MongoDbStore<WorkflowDefinition> mongo
|
|||
return !exists;
|
||||
}
|
||||
|
||||
private IMongoQueryable<WorkflowDefinition> Filter(IMongoQueryable<WorkflowDefinition> queryable, WorkflowDefinitionFilter filter)
|
||||
private IQueryable<WorkflowDefinition> Filter(IQueryable<WorkflowDefinition> queryable, WorkflowDefinitionFilter filter)
|
||||
{
|
||||
return (filter.Apply(queryable) as IMongoQueryable<WorkflowDefinition>)!;
|
||||
return filter.Apply(queryable)!;
|
||||
}
|
||||
|
||||
private IMongoQueryable<WorkflowDefinition> Order<TOrderBy>(IMongoQueryable<WorkflowDefinition> queryable, WorkflowDefinitionOrder<TOrderBy> order)
|
||||
private IQueryable<WorkflowDefinition> Order<TOrderBy>(IQueryable<WorkflowDefinition> queryable, WorkflowDefinitionOrder<TOrderBy> order)
|
||||
{
|
||||
return (queryable.OrderBy(order) as IMongoQueryable<WorkflowDefinition>)!;
|
||||
return queryable.OrderBy(order)!;
|
||||
}
|
||||
|
||||
private IMongoQueryable<WorkflowDefinition> Paginate(IMongoQueryable<WorkflowDefinition> queryable, PageArgs pageArgs) =>
|
||||
private IQueryable<WorkflowDefinition> Paginate(IQueryable<WorkflowDefinition> queryable, PageArgs pageArgs) =>
|
||||
|
||||
(queryable.Paginate(pageArgs) as IMongoQueryable<WorkflowDefinition>)!;
|
||||
queryable.Paginate(pageArgs)!;
|
||||
|
||||
private IMongoQueryable<WorkflowDefinition> OrderAndPaginate<TOrderBy>(IMongoQueryable<WorkflowDefinition> queryable, WorkflowDefinitionOrder<TOrderBy> order, PageArgs pageArgs)
|
||||
private IQueryable<WorkflowDefinition> OrderAndPaginate<TOrderBy>(IQueryable<WorkflowDefinition> queryable, WorkflowDefinitionOrder<TOrderBy> order, PageArgs pageArgs)
|
||||
{
|
||||
return (queryable.OrderBy(order).Paginate(pageArgs) as IMongoQueryable<WorkflowDefinition>)!;
|
||||
return queryable.OrderBy(order).Paginate(pageArgs)!;
|
||||
}
|
||||
}
|
||||
|
|
@ -74,7 +74,7 @@ public class MongoWorkflowInstanceStore(MongoDbStore<WorkflowInstance> mongoDbSt
|
|||
var collection = mongoDbStore.GetCollection();
|
||||
var queryable = Order(Filter(collection.AsQueryable(), filter), order);
|
||||
var count = queryable.LongCount();
|
||||
var mongoQueryable = (queryable.Paginate(pageArgs) as IMongoQueryable<WorkflowInstance>)!;
|
||||
var mongoQueryable = queryable.Paginate(pageArgs);
|
||||
var documents = await mongoQueryable.Select(ExpressionHelpers.WorkflowInstanceSummary).ToListAsync(cancellationToken);
|
||||
|
||||
return Page.Of(documents, count);
|
||||
|
|
@ -146,23 +146,23 @@ public class MongoWorkflowInstanceStore(MongoDbStore<WorkflowInstance> mongoDbSt
|
|||
}
|
||||
|
||||
[RequiresUnreferencedCode("Calls Elsa.Workflows.Management.Filters.WorkflowInstanceFilter.Apply(IQueryable<WorkflowInstance>)")]
|
||||
private IMongoQueryable<WorkflowInstance> Filter(IQueryable<WorkflowInstance> queryable, WorkflowInstanceFilter filter)
|
||||
private IQueryable<WorkflowInstance> Filter(IQueryable<WorkflowInstance> queryable, WorkflowInstanceFilter filter)
|
||||
{
|
||||
return (filter.Apply(queryable.Select(i => i)) as IMongoQueryable<WorkflowInstance>)!;
|
||||
return filter.Apply(queryable.Select(i => i));
|
||||
}
|
||||
|
||||
private IMongoQueryable<WorkflowInstance> Order<TOrderBy>(IMongoQueryable<WorkflowInstance> queryable, WorkflowInstanceOrder<TOrderBy> order)
|
||||
private IQueryable<WorkflowInstance> Order<TOrderBy>(IQueryable<WorkflowInstance> queryable, WorkflowInstanceOrder<TOrderBy> order)
|
||||
{
|
||||
return (queryable.OrderBy(order) as IMongoQueryable<WorkflowInstance>)!;
|
||||
return queryable.OrderBy(order);
|
||||
}
|
||||
|
||||
private IMongoQueryable<WorkflowInstance> Paginate(IMongoQueryable<WorkflowInstance> queryable, PageArgs pageArgs)
|
||||
private IQueryable<WorkflowInstance> Paginate(IQueryable<WorkflowInstance> queryable, PageArgs pageArgs)
|
||||
{
|
||||
return (queryable.Paginate(pageArgs) as IMongoQueryable<WorkflowInstance>)!;
|
||||
return queryable.Paginate(pageArgs);
|
||||
}
|
||||
|
||||
private IMongoQueryable<WorkflowInstance> OrderAndPaginate<TOrderBy>(IMongoQueryable<WorkflowInstance> queryable, WorkflowInstanceOrder<TOrderBy> order, PageArgs pageArgs)
|
||||
private IQueryable<WorkflowInstance> OrderAndPaginate<TOrderBy>(IQueryable<WorkflowInstance> queryable, WorkflowInstanceOrder<TOrderBy> order, PageArgs pageArgs)
|
||||
{
|
||||
return (queryable.OrderBy(order).Paginate(pageArgs) as IMongoQueryable<WorkflowInstance>)!;
|
||||
return queryable.OrderBy(order).Paginate(pageArgs);
|
||||
}
|
||||
}
|
||||
|
|
@ -69,18 +69,18 @@ public class MongoActivityExecutionLogStore(MongoDbStore<ActivityExecutionRecord
|
|||
return mongoDbStore.DeleteWhereAsync<string>(queryable => Filter(queryable, filter), x => x.Id, cancellationToken);
|
||||
}
|
||||
|
||||
private IMongoQueryable<ActivityExecutionRecord> Filter(IMongoQueryable<ActivityExecutionRecord> queryable, ActivityExecutionRecordFilter filter)
|
||||
private IQueryable<ActivityExecutionRecord> Filter(IQueryable<ActivityExecutionRecord> queryable, ActivityExecutionRecordFilter filter)
|
||||
{
|
||||
return (filter.Apply(queryable) as IMongoQueryable<ActivityExecutionRecord>)!;
|
||||
return filter.Apply(queryable);
|
||||
}
|
||||
|
||||
private IMongoQueryable<ActivityExecutionRecord> Order<TOrderBy>(IMongoQueryable<ActivityExecutionRecord> queryable, ActivityExecutionRecordOrder<TOrderBy> order)
|
||||
private IQueryable<ActivityExecutionRecord> Order<TOrderBy>(IQueryable<ActivityExecutionRecord> queryable, ActivityExecutionRecordOrder<TOrderBy> order)
|
||||
{
|
||||
return (queryable.OrderBy(order) as IMongoQueryable<ActivityExecutionRecord>)!;
|
||||
return queryable.OrderBy(order);
|
||||
}
|
||||
|
||||
private IMongoQueryable<ActivityExecutionRecord> Paginate(IMongoQueryable<ActivityExecutionRecord> queryable, PageArgs pageArgs)
|
||||
private IQueryable<ActivityExecutionRecord> Paginate(IQueryable<ActivityExecutionRecord> queryable, PageArgs pageArgs)
|
||||
{
|
||||
return (queryable.Paginate(pageArgs) as IMongoQueryable<ActivityExecutionRecord>)!;
|
||||
return queryable.Paginate(pageArgs);
|
||||
}
|
||||
}
|
||||
|
|
@ -45,18 +45,18 @@ public class MongoBookmarkQueueStore(MongoDbStore<BookmarkQueueItem> mongoDbStor
|
|||
return await mongoDbStore.DeleteWhereAsync<string>(query => Filter(query, filter), x => x.Id, cancellationToken);
|
||||
}
|
||||
|
||||
private IMongoQueryable<BookmarkQueueItem> Filter(IMongoQueryable<BookmarkQueueItem> queryable, BookmarkQueueFilter filter)
|
||||
private IQueryable<BookmarkQueueItem> Filter(IQueryable<BookmarkQueueItem> queryable, BookmarkQueueFilter filter)
|
||||
{
|
||||
return (filter.Apply(queryable) as IMongoQueryable<BookmarkQueueItem>)!;
|
||||
return filter.Apply(queryable);
|
||||
}
|
||||
|
||||
private IMongoQueryable<BookmarkQueueItem> Order<TOrderBy>(IMongoQueryable<BookmarkQueueItem> queryable, BookmarkQueueItemOrder<TOrderBy> order)
|
||||
private IQueryable<BookmarkQueueItem> Order<TOrderBy>(IQueryable<BookmarkQueueItem> queryable, BookmarkQueueItemOrder<TOrderBy> order)
|
||||
{
|
||||
return (queryable.OrderBy(order) as IMongoQueryable<BookmarkQueueItem>)!;
|
||||
return queryable.OrderBy(order);
|
||||
}
|
||||
|
||||
private IMongoQueryable<BookmarkQueueItem> Paginate(IMongoQueryable<BookmarkQueueItem> queryable, PageArgs pageArgs)
|
||||
private IQueryable<BookmarkQueueItem> Paginate(IQueryable<BookmarkQueueItem> queryable, PageArgs pageArgs)
|
||||
{
|
||||
return (queryable.Paginate(pageArgs) as IMongoQueryable<BookmarkQueueItem>)!;
|
||||
return queryable.Paginate(pageArgs);
|
||||
}
|
||||
}
|
||||
|
|
@ -53,8 +53,8 @@ public class MongoBookmarkStore : IBookmarkStore
|
|||
return await _mongoDbStore.DeleteWhereAsync<string>(query => Filter(query, filter), x => x.Id, filter.TenantAgnostic, cancellationToken);
|
||||
}
|
||||
|
||||
private IMongoQueryable<StoredBookmark> Filter(IMongoQueryable<StoredBookmark> queryable, BookmarkFilter filter)
|
||||
private IQueryable<StoredBookmark> Filter(IQueryable<StoredBookmark> queryable, BookmarkFilter filter)
|
||||
{
|
||||
return (filter.Apply(queryable) as IMongoQueryable<StoredBookmark>)!;
|
||||
return filter.Apply(queryable);
|
||||
}
|
||||
}
|
||||
|
|
@ -37,8 +37,8 @@ public class MongoKeyValueStore(MongoDbStore<SerializedKeyValuePair> keyValueMon
|
|||
return keyValueMongoDbStore.DeleteWhereAsync(x => x.Key == key, cancellationToken);
|
||||
}
|
||||
|
||||
private IMongoQueryable<SerializedKeyValuePair> Filter(IMongoQueryable<SerializedKeyValuePair> queryable, KeyValueFilter filter)
|
||||
private IQueryable<SerializedKeyValuePair> Filter(IQueryable<SerializedKeyValuePair> queryable, KeyValueFilter filter)
|
||||
{
|
||||
return (filter.Apply(queryable) as IMongoQueryable<SerializedKeyValuePair>)!;
|
||||
return filter.Apply(queryable);
|
||||
}
|
||||
}
|
||||
|
|
@ -57,8 +57,8 @@ public class MongoTriggerStore(MongoDbStore<StoredTrigger> mongoDbStore) : ITrig
|
|||
return await mongoDbStore.DeleteWhereAsync<string>(query => Filter(query, filter), x => x.Id, filter.TenantAgnostic, cancellationToken);
|
||||
}
|
||||
|
||||
private static IMongoQueryable<StoredTrigger> Filter(IMongoQueryable<StoredTrigger> queryable, TriggerFilter filter)
|
||||
private static IQueryable<StoredTrigger> Filter(IQueryable<StoredTrigger> queryable, TriggerFilter filter)
|
||||
{
|
||||
return (filter.Apply(queryable) as IMongoQueryable<StoredTrigger>)!;
|
||||
return filter.Apply(queryable);
|
||||
}
|
||||
}
|
||||
|
|
@ -73,18 +73,18 @@ public class MongoWorkflowExecutionLogStore(MongoDbStore<WorkflowExecutionLogRec
|
|||
return mongoDbStore.DeleteWhereAsync<string>(queryable => Filter(queryable, filter), x => x.Id, cancellationToken);
|
||||
}
|
||||
|
||||
private IMongoQueryable<WorkflowExecutionLogRecord> Filter(IMongoQueryable<WorkflowExecutionLogRecord> queryable, WorkflowExecutionLogRecordFilter filter)
|
||||
private IQueryable<WorkflowExecutionLogRecord> Filter(IQueryable<WorkflowExecutionLogRecord> queryable, WorkflowExecutionLogRecordFilter filter)
|
||||
{
|
||||
return (filter.Apply(queryable) as IMongoQueryable<WorkflowExecutionLogRecord>)!;
|
||||
return filter.Apply(queryable);
|
||||
}
|
||||
|
||||
private IMongoQueryable<WorkflowExecutionLogRecord> Order<TOrderBy>(IMongoQueryable<WorkflowExecutionLogRecord> queryable, WorkflowExecutionLogRecordOrder<TOrderBy> order)
|
||||
private IQueryable<WorkflowExecutionLogRecord> Order<TOrderBy>(IQueryable<WorkflowExecutionLogRecord> queryable, WorkflowExecutionLogRecordOrder<TOrderBy> order)
|
||||
{
|
||||
return (queryable.OrderBy(order) as IMongoQueryable<WorkflowExecutionLogRecord>)!;
|
||||
return queryable.OrderBy(order);
|
||||
}
|
||||
|
||||
private IMongoQueryable<WorkflowExecutionLogRecord> Paginate(IMongoQueryable<WorkflowExecutionLogRecord> queryable, PageArgs pageArgs)
|
||||
private IQueryable<WorkflowExecutionLogRecord> Paginate(IQueryable<WorkflowExecutionLogRecord> queryable, PageArgs pageArgs)
|
||||
{
|
||||
return (queryable.Paginate(pageArgs) as IMongoQueryable<WorkflowExecutionLogRecord>)!;
|
||||
return queryable.Paginate(pageArgs);
|
||||
}
|
||||
}
|
||||
Loading…
Reference in a new issue