diff --git a/src/Directory.Build.props b/src/Directory.Build.props
index e05c1d5..3752165 100644
--- a/src/Directory.Build.props
+++ b/src/Directory.Build.props
@@ -5,10 +5,15 @@
0.8.0
- -preview-1
+
8.0.2
9.0.5
+
+ 1.0.2
+ 1.0.0
+ 1.0.0-preview-4.3
+
diff --git a/src/RoyalCode.SmartSearch.Abstractions/AllEntitiesExtensions.cs b/src/RoyalCode.SmartSearch.Abstractions/AllEntitiesExtensions.cs
deleted file mode 100644
index 269a2f1..0000000
--- a/src/RoyalCode.SmartSearch.Abstractions/AllEntitiesExtensions.cs
+++ /dev/null
@@ -1,180 +0,0 @@
-using System.Linq.Expressions;
-
-namespace RoyalCode.SmartSearch.Abstractions;
-
-///
-/// Extension methods for .
-///
-public static class AllEntitiesExtensions
-{
- ///
- /// Apply the filters and sorting and update all entities that meet the criteria.
- ///
- ///
- ///
- ///
- ///
- ///
- public static void UpdateAll(
- this IAllEntities allEntities,
- ICollection data,
- Action updateAction)
- where TEntity : class
- where TData : class
- {
- UpdateAllWithHelper.Execute(allEntities, data, updateAction);
- }
-
- ///
- /// Apply the filters and sorting and update all entities that meet the criteria.
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- public static Task UpdateAllWith(
- this IAllEntities allEntities,
- ICollection data,
- Action updateAction)
- where TEntity : class
- where TData : class
- {
- return UpdateAllWithHelper.ExecuteAsync(allEntities, data, updateAction);
- }
-
- private static class UpdateAllWithHelper
- where TEntity : class
- where TData : class
- {
- private static Action, ICollection, Action>? execute;
- private static Func, ICollection, Action, Task>? executeAsync;
-
- public static void Execute(
- IAllEntities allEntities,
- ICollection data,
- Action updateAction)
- {
- execute ??= Create();
- execute(allEntities, data, updateAction);
- }
-
- public static Task ExecuteAsync(
- IAllEntities allEntities,
- ICollection data,
- Action updateAction)
- {
- executeAsync ??= CreateAsync();
- return executeAsync(allEntities, data, updateAction);
- }
-
- private static Action, ICollection, Action> Create()
- {
- // get the property Id from TEntity
- var idProperty = typeof(TEntity).GetProperty("Id")
- ?? throw new InvalidOperationException("The entity does not have a property Id.");
-
- // get the property Id from TData
- var dataIdProperty = typeof(TData).GetProperty("Id")
- ?? throw new InvalidOperationException("The data does not have a property Id.");
-
- // validate types of the id properties
- if (idProperty.PropertyType != dataIdProperty.PropertyType)
- throw new InvalidOperationException("The type of the id properties are different.");
-
- // create a function expression to get the id from TEntity
- var entityParameter = Expression.Parameter(typeof(TEntity), "entity");
- var lambdaType = typeof(Func<,>).MakeGenericType(typeof(TEntity), idProperty.PropertyType);
- var entityLambda = Expression.Lambda(lambdaType,
- Expression.Property(entityParameter, idProperty),
- entityParameter);
-
- // create a function expression to get the id from TData
- var dataParameter = Expression.Parameter(typeof(TData), "data");
- var dataLambda = Expression.Lambda(lambdaType,
- Expression.Property(dataParameter, dataIdProperty),
- dataParameter);
-
- // create expression paramters for allEntities, data, and updateAction
- var allEntitiesParameter = Expression.Parameter(typeof(IAllEntities), "allEntities");
- dataParameter = Expression.Parameter(typeof(ICollection), "data");
- var updateActionParameter = Expression.Parameter(typeof(Action), "updateAction");
-
- // create a call to the UpdateAll method
- var updateAllMethod = typeof(IAllEntities).GetMethods()
- .First(m => m.Name == nameof(IAllEntities