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:
Sipke Schoorstra 2024-10-25 22:38:41 +02:00 committed by GitHub
parent fd92557469
commit 7edfe188a7
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
20 changed files with 173 additions and 173 deletions

View file

@ -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>

View file

@ -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>

View file

@ -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();

View file

@ -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>

View file

@ -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);

View file

@ -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;
}
}

View file

@ -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);
}

View file

@ -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)

View file

@ -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);
}
}

View file

@ -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);
}
}

View file

@ -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);
}
}

View file

@ -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);
}
}

View file

@ -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)!;
}
}

View file

@ -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);
}
}

View file

@ -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);
}
}

View file

@ -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);
}
}

View file

@ -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);
}
}

View file

@ -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);
}
}

View file

@ -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);
}
}

View file

@ -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);
}
}