diff --git a/Directory.Packages.props b/Directory.Packages.props
index d3e0f5472..938266c0a 100644
--- a/Directory.Packages.props
+++ b/Directory.Packages.props
@@ -6,14 +6,14 @@
-
-
-
-
-
+
+
+
+
+
-
-
+
+
@@ -22,96 +22,94 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
-
+
+
-
-
-
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
+
-
+
-
-
-
-
+
+
+
+
-
+
-
+
-
+
+
@@ -141,12 +139,14 @@
-
+
-
+
+
+
@@ -183,6 +183,8 @@
-
+
+
+
\ No newline at end of file
diff --git a/build/_build.csproj b/build/_build.csproj
index 4617e6f76..cdb02ddd5 100644
--- a/build/_build.csproj
+++ b/build/_build.csproj
@@ -24,11 +24,11 @@
-
-
+
+
-
+
diff --git a/src/modules/Elsa.MongoDb/Common/MongoDbStore.cs b/src/modules/Elsa.MongoDb/Common/MongoDbStore.cs
index 12ae9e437..296f0bd14 100644
--- a/src/modules/Elsa.MongoDb/Common/MongoDbStore.cs
+++ b/src/modules/Elsa.MongoDb/Common/MongoDbStore.cs
@@ -164,7 +164,7 @@ public class MongoDbStore(IMongoCollection collection, ITe
/// The query to use
/// The cancellation token
/// The document if found, otherwise null
- public async Task FindAsync(Func, IMongoQueryable> query, CancellationToken cancellationToken = default)
+ public async Task FindAsync(Func, IQueryable> query, CancellationToken cancellationToken = default)
{
return await FindAsync(query, false, cancellationToken);
}
@@ -176,7 +176,7 @@ public class MongoDbStore(IMongoCollection collection, ITe
/// Whether to include results across tenants
/// The cancellation token
/// The document if found, otherwise null
- public async Task FindAsync(Func, IMongoQueryable> query, bool tenantAgnostic = false, CancellationToken cancellationToken = default)
+ public async Task FindAsync(Func, IQueryable> query, bool tenantAgnostic = false, CancellationToken cancellationToken = default)
{
var queryable = GetQueryableCollection(tenantAgnostic);
return await query(queryable).FirstOrDefaultAsync(cancellationToken);
@@ -202,7 +202,7 @@ public class MongoDbStore(IMongoCollection collection, ITe
///
/// Queries the database using a query and a selector.
///
- public async Task> FindManyAsync(Func, IMongoQueryable> query, Expression> selector, CancellationToken cancellationToken = default)
+ public async Task> FindManyAsync(Func, IQueryable> query, Expression> selector, CancellationToken cancellationToken = default)
{
return await FindManyAsync(query, selector, false, cancellationToken);
}
@@ -210,7 +210,7 @@ public class MongoDbStore(IMongoCollection collection, ITe
///
/// Queries the database using a query and a selector.
///
- public async Task> FindManyAsync(Func, IMongoQueryable> query, Expression> selector, bool tenantAgnostic = false, CancellationToken cancellationToken = default)
+ public async Task> FindManyAsync(Func, IQueryable> query, Expression> 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(IMongoCollection collection, ITe
///
/// Finds a list of documents using a query
///
- public async Task> FindManyAsync(Func, IMongoQueryable> query, CancellationToken cancellationToken = default)
+ public async Task> FindManyAsync(Func, IQueryable> query, CancellationToken cancellationToken = default)
{
return await FindManyAsync(query, false, cancellationToken);
}
@@ -227,7 +227,7 @@ public class MongoDbStore(IMongoCollection collection, ITe
///
/// Finds a list of documents using a query
///
- public async Task> FindManyAsync(Func, IMongoQueryable> query, bool tenantAgnostic = false, CancellationToken cancellationToken = default)
+ public async Task> FindManyAsync(Func, IQueryable> query, bool tenantAgnostic = false, CancellationToken cancellationToken = default)
{
var queryable = GetQueryableCollection(tenantAgnostic);
return await query(queryable).ToListAsync(cancellationToken);
@@ -236,7 +236,7 @@ public class MongoDbStore(IMongoCollection collection, ITe
///
/// Queries the database using a query and a selector.
///
- public async Task> FindMany(Func, IMongoQueryable> query, Expression> selector, CancellationToken cancellationToken = default)
+ public async Task> FindMany(Func, IQueryable> query, Expression> selector, CancellationToken cancellationToken = default)
{
return await FindMany(query, selector, false, cancellationToken);
}
@@ -244,7 +244,7 @@ public class MongoDbStore(IMongoCollection collection, ITe
///
/// Queries the database using a query and a selector.
///
- public async Task> FindMany(Func, IMongoQueryable> query, Expression> selector, bool tenantAgnostic = false, CancellationToken cancellationToken = default)
+ public async Task> FindMany(Func, IQueryable> query, Expression> 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(IMongoCollection collection, ITe
///
/// Counts documents in the collection using a filter.
///
- public async Task CountAsync(Func, IMongoQueryable> query, CancellationToken cancellationToken = default)
+ public async Task CountAsync(Func, IQueryable> query, CancellationToken cancellationToken = default)
{
return await CountAsync(query, false, cancellationToken);
}
@@ -261,7 +261,7 @@ public class MongoDbStore(IMongoCollection collection, ITe
///
/// Counts documents in the collection using a filter.
///
- public async Task CountAsync(Func, IMongoQueryable> query, bool tenantAgnostic = false, CancellationToken cancellationToken = default)
+ public async Task CountAsync(Func, IQueryable> query, bool tenantAgnostic = false, CancellationToken cancellationToken = default)
{
var queryable = GetQueryableCollection(tenantAgnostic);
return await query(queryable).LongCountAsync(cancellationToken);
@@ -270,7 +270,7 @@ public class MongoDbStore(IMongoCollection collection, ITe
///
/// Counts documents in the collection using a filter and distinct by a key selector.
///
- public async Task CountAsync(Func, IMongoQueryable> query, Expression> propertySelector, CancellationToken cancellationToken = default)
+ public async Task CountAsync(Func, IQueryable> query, Expression> propertySelector, CancellationToken cancellationToken = default)
{
return await CountAsync(query, propertySelector, false, cancellationToken);
}
@@ -278,10 +278,10 @@ public class MongoDbStore(IMongoCollection collection, ITe
///
/// Counts documents in the collection using a filter and distinct by a key selector.
///
- public async Task CountAsync(Func, IMongoQueryable> query, Expression> propertySelector, bool tenantAgnostic = false, CancellationToken cancellationToken = default)
+ public async Task CountAsync(Func, IQueryable> query, Expression> propertySelector, bool tenantAgnostic = false, CancellationToken cancellationToken = default)
{
var queryable = GetQueryableCollection(tenantAgnostic);
- return await query((IMongoQueryable)queryable.DistinctBy(propertySelector)).LongCountAsync(cancellationToken);
+ return await query((IQueryable)queryable.DistinctBy(propertySelector)).LongCountAsync(cancellationToken);
}
///
@@ -347,7 +347,7 @@ public class MongoDbStore(IMongoCollection collection, ITe
/// Deletes documents using a query.
///
/// The number of documents deleted.
- public async Task DeleteWhereAsync(Func, IMongoQueryable> query, Expression> keySelector, CancellationToken cancellationToken = default)
+ public async Task DeleteWhereAsync(Func, IQueryable> query, Expression> keySelector, CancellationToken cancellationToken = default)
{
return await DeleteWhereAsync(query, keySelector, false, cancellationToken);
}
@@ -356,7 +356,7 @@ public class MongoDbStore(IMongoCollection collection, ITe
/// Deletes documents using a query.
///
/// The number of documents deleted.
- public async Task DeleteWhereAsync(Func, IMongoQueryable> query, Expression> keySelector, bool tenantAgnostic = false, CancellationToken cancellationToken = default)
+ public async Task DeleteWhereAsync(Func, IQueryable> query, Expression> 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(IMongoCollection collection, ITe
/// Deletes documents using a query.
///
/// The number of documents deleted.
- public async Task DeleteWhereAsync(Func, IMongoQueryable> query, string key = nameof(Entity.Id), CancellationToken cancellationToken = default)
+ public async Task DeleteWhereAsync(Func, IQueryable> query, string key = nameof(Entity.Id), CancellationToken cancellationToken = default)
{
return await DeleteWhereAsync(query, key, false, cancellationToken);
}
@@ -375,7 +375,7 @@ public class MongoDbStore(IMongoCollection collection, ITe
/// Deletes documents using a query.
///
/// The number of documents deleted.
- public async Task DeleteWhereAsync(Func, IMongoQueryable> query, string key = nameof(Entity.Id), bool tenantAgnostic = false, CancellationToken cancellationToken = default)
+ public async Task DeleteWhereAsync(Func, IQueryable> 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(IMongoCollection collection, ITe
return count;
}
- private IMongoQueryable GetQueryableCollection(bool tenantAgnostic = false)
+ private IQueryable GetQueryableCollection(bool tenantAgnostic = false)
{
var queryable = collection.AsQueryable();
diff --git a/src/modules/Elsa.MongoDb/Elsa.MongoDb.csproj b/src/modules/Elsa.MongoDb/Elsa.MongoDb.csproj
index 2a84690bf..d19673d26 100644
--- a/src/modules/Elsa.MongoDb/Elsa.MongoDb.csproj
+++ b/src/modules/Elsa.MongoDb/Elsa.MongoDb.csproj
@@ -8,27 +8,30 @@
-
-
-
-
+
+
+
+
-
+
-
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
diff --git a/src/modules/Elsa.MongoDb/Extensions/QueryableExtensions.cs b/src/modules/Elsa.MongoDb/Extensions/QueryableExtensions.cs
index f48e5b83a..316d27fd6 100644
--- a/src/modules/Elsa.MongoDb/Extensions/QueryableExtensions.cs
+++ b/src/modules/Elsa.MongoDb/Extensions/QueryableExtensions.cs
@@ -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
///
/// Returns a paged result from the specified query.
///
- public static async Task> PaginateAsync(this IMongoQueryable queryable, PageArgs? pageArgs = default)
+ public static async Task> PaginateAsync(this IQueryable queryable, PageArgs? pageArgs = default)
{
var count = await queryable.CountAsync();
if (pageArgs?.Offset != null) queryable = queryable.Skip(pageArgs.Offset.Value);
diff --git a/src/modules/Elsa.MongoDb/Features/MongoDbFeature.cs b/src/modules/Elsa.MongoDb/Features/MongoDbFeature.cs
index a4408e13c..09c7afba3 100644
--- a/src/modules/Elsa.MongoDb/Features/MongoDbFeature.cs
+++ b/src/modules/Elsa.MongoDb/Features/MongoDbFeature.cs
@@ -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;
///
/// Configures MongoDb.
///
-public class MongoDbFeature : FeatureBase
+public class MongoDbFeature(IModule module) : FeatureBase(module)
{
- ///
- public MongoDbFeature(IModule module) : base(module)
- {
- }
-
///
/// The MongoDB connection string.
///
@@ -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;
+ }
}
\ No newline at end of file
diff --git a/src/modules/Elsa.MongoDb/Modules/Alterations/AlterationJobStore.cs b/src/modules/Elsa.MongoDb/Modules/Alterations/AlterationJobStore.cs
index ba609c4cb..342328e29 100644
--- a/src/modules/Elsa.MongoDb/Modules/Alterations/AlterationJobStore.cs
+++ b/src/modules/Elsa.MongoDb/Modules/Alterations/AlterationJobStore.cs
@@ -57,7 +57,6 @@ public class MongoAlterationJobStore : IAlterationJobStore
{
await _mongoDbStore.SaveManyAsync(jobs.Select(i => i), cancellationToken);
}
-
- private static IMongoQueryable Filter(IMongoQueryable queryable, AlterationJobFilter filter) =>
- (filter.Apply(queryable) as IMongoQueryable)!;
+
+ private static IQueryable Filter(IQueryable queryable, AlterationJobFilter filter) => filter.Apply(queryable);
}
\ No newline at end of file
diff --git a/src/modules/Elsa.MongoDb/Modules/Alterations/AlterationPlanStore.cs b/src/modules/Elsa.MongoDb/Modules/Alterations/AlterationPlanStore.cs
index a0ddb98af..ca9ad4217 100644
--- a/src/modules/Elsa.MongoDb/Modules/Alterations/AlterationPlanStore.cs
+++ b/src/modules/Elsa.MongoDb/Modules/Alterations/AlterationPlanStore.cs
@@ -51,9 +51,9 @@ public class MongoAlterationPlanStore : IAlterationPlanStore
await _mongoDbStore.SaveAsync(document, cancellationToken);
}
- private static IMongoQueryable Filter(IMongoQueryable queryable, AlterationPlanFilter filter)
+ private static IQueryable Filter(IQueryable queryable, AlterationPlanFilter filter)
{
- return (Apply(queryable, filter) as IMongoQueryable)!;
+ return Apply(queryable, filter);
}
private static IQueryable Apply(IQueryable queryable, AlterationPlanFilter filter)
diff --git a/src/modules/Elsa.MongoDb/Modules/Identity/ApplicationStore.cs b/src/modules/Elsa.MongoDb/Modules/Identity/ApplicationStore.cs
index 8baa38cd5..c5ac2d0fb 100644
--- a/src/modules/Elsa.MongoDb/Modules/Identity/ApplicationStore.cs
+++ b/src/modules/Elsa.MongoDb/Modules/Identity/ApplicationStore.cs
@@ -31,8 +31,8 @@ public class MongoApplicationStore(MongoDbStore applicationMongoDbS
return applicationMongoDbStore.FindAsync(query => Filter(query, filter), cancellationToken);
}
- private static IMongoQueryable Filter(IQueryable query, ApplicationFilter filter)
+ private static IQueryable Filter(IQueryable query, ApplicationFilter filter)
{
- return (filter.Apply(query) as IMongoQueryable)!;
+ return filter.Apply(query);
}
}
\ No newline at end of file
diff --git a/src/modules/Elsa.MongoDb/Modules/Identity/RoleStore.cs b/src/modules/Elsa.MongoDb/Modules/Identity/RoleStore.cs
index ec3eedfb3..56c4cd48b 100644
--- a/src/modules/Elsa.MongoDb/Modules/Identity/RoleStore.cs
+++ b/src/modules/Elsa.MongoDb/Modules/Identity/RoleStore.cs
@@ -43,8 +43,8 @@ public class MongoRoleStore(MongoDbStore roleMongoDbStore) : IRoleStore
return roleMongoDbStore.FindManyAsync(queryable => Filter(queryable, filter), cancellationToken);
}
- private static IMongoQueryable Filter(IQueryable query, RoleFilter filter)
+ private static IQueryable Filter(IQueryable query, RoleFilter filter)
{
- return (filter.Apply(query) as IMongoQueryable)!;
+ return filter.Apply(query);
}
}
\ No newline at end of file
diff --git a/src/modules/Elsa.MongoDb/Modules/Identity/UserStore.cs b/src/modules/Elsa.MongoDb/Modules/Identity/UserStore.cs
index 6346b1438..e3880720f 100644
--- a/src/modules/Elsa.MongoDb/Modules/Identity/UserStore.cs
+++ b/src/modules/Elsa.MongoDb/Modules/Identity/UserStore.cs
@@ -29,8 +29,8 @@ public class MongoUserStore(MongoDbStore userMongoDbStore) : IUserStore
return userMongoDbStore.FindAsync(query => Filter(query, filter), cancellationToken);
}
- private static IMongoQueryable Filter(IQueryable query, UserFilter filter)
+ private static IQueryable Filter(IQueryable query, UserFilter filter)
{
- return (filter.Apply(query) as IMongoQueryable)!;
+ return filter.Apply(query);
}
}
\ No newline at end of file
diff --git a/src/modules/Elsa.MongoDb/Modules/Labels/LabelStore.cs b/src/modules/Elsa.MongoDb/Modules/Labels/LabelStore.cs
index 7e4a38adc..31bf6d4f0 100644
--- a/src/modules/Elsa.MongoDb/Modules/Labels/LabelStore.cs
+++ b/src/modules/Elsa.MongoDb/Modules/Labels/LabelStore.cs
@@ -80,8 +80,8 @@ public class MongoLabelStore : ILabelStore
return await _labelMongoDbStore.DeleteWhereAsync(x => idList.Contains(x.Id), cancellationToken);
}
- private static IMongoQueryable