well advanced registration will use alter queryable service soon.
This commit is contained in:
		
							parent
							
								
									30e15e310c
								
							
						
					
					
						commit
						972a4060ca
					
				| @ -62,8 +62,8 @@ namespace Demo | |||||||
|         private void AddDynamicQueries(IServiceCollection services) |         private void AddDynamicQueries(IServiceCollection services) | ||||||
|         { |         { | ||||||
|             services.AddTransient<IQueryableProvider<Contact>, ContactQueryableProvider>(); |             services.AddTransient<IQueryableProvider<Contact>, ContactQueryableProvider>(); | ||||||
|             services.AddDynamicQuery<Contact, Contact>(); |             services.AddDynamicQuery<Contact>(); | ||||||
|             services.AddDynamicQueryWithParams<Contact, Contact, SearchContactParams>(name: "SearchContacts"); |             services.AddDynamicQueryWithParams<Contact, SearchContactParams>(name: "SearchContacts"); | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         private void AddCommands(IServiceCollection services) |         private void AddCommands(IServiceCollection services) | ||||||
|  | |||||||
| @ -0,0 +1,18 @@ | |||||||
|  | using System; | ||||||
|  | using System.Collections.Generic; | ||||||
|  | using System.Linq; | ||||||
|  | using System.Text; | ||||||
|  | using System.Threading.Tasks; | ||||||
|  | 
 | ||||||
|  | namespace PoweredSoft.CQRS.DynamicQuery.Abstractions | ||||||
|  | { | ||||||
|  |     public interface IAlterQueryableService<TSource, TDestination> | ||||||
|  |     { | ||||||
|  |         Task<IQueryable<TSource>> AlterQueryableAsync(IQueryable<TSource> query, IDynamicQuery dynamicQuery); | ||||||
|  |     } | ||||||
|  |     public interface IAlterQueryableService<TSource, TDestination, TParams> | ||||||
|  |         where TParams : class | ||||||
|  |     { | ||||||
|  |         Task<IQueryable<TSource>> AlterQueryableAsync(IQueryable<TSource> query, IDynamicQueryParams<TParams> dynamicQuery); | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -12,6 +12,10 @@ namespace PoweredSoft.CQRS.DynamicQuery | |||||||
| { | { | ||||||
|     public static class ServiceCollectionExtensions |     public static class ServiceCollectionExtensions | ||||||
|     { |     { | ||||||
|  |         public static IServiceCollection AddDynamicQuery<TSourceAndDestination>(this IServiceCollection services, string name = null) | ||||||
|  |             where TSourceAndDestination : class | ||||||
|  |             => AddDynamicQuery<TSourceAndDestination, TSourceAndDestination>(services, name: name); | ||||||
|  | 
 | ||||||
|         public static IServiceCollection AddDynamicQuery<TSource, TDestination>(this IServiceCollection services, string name = null) |         public static IServiceCollection AddDynamicQuery<TSource, TDestination>(this IServiceCollection services, string name = null) | ||||||
|             where TSource : class |             where TSource : class | ||||||
|             where TDestination : class |             where TDestination : class | ||||||
| @ -33,6 +37,11 @@ namespace PoweredSoft.CQRS.DynamicQuery | |||||||
|             return services; |             return services; | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|  |         public static IServiceCollection AddDynamicQueryWithParams<TSourceAndDestination, TParams>(this IServiceCollection services, string name = null) | ||||||
|  |             where TSourceAndDestination : class | ||||||
|  |             where TParams : class | ||||||
|  |             => AddDynamicQueryWithParams<TSourceAndDestination, TSourceAndDestination, TParams>(services, name: name); | ||||||
|  | 
 | ||||||
|             public static IServiceCollection AddDynamicQueryWithParams<TSource, TDestination, TParams>(this IServiceCollection services, string name = null) |             public static IServiceCollection AddDynamicQueryWithParams<TSource, TDestination, TParams>(this IServiceCollection services, string name = null) | ||||||
|             where TSource : class |             where TSource : class | ||||||
|             where TDestination : class |             where TDestination : class | ||||||
| @ -57,5 +66,33 @@ namespace PoweredSoft.CQRS.DynamicQuery | |||||||
| 
 | 
 | ||||||
|             return services; |             return services; | ||||||
|         } |         } | ||||||
|  | 
 | ||||||
|  |         public static IServiceCollection AddAlterQueryable<TSourceAndDestination, TService>(this IServiceCollection services) | ||||||
|  |             where TService : class, IAlterQueryableService<TSourceAndDestination, TSourceAndDestination> | ||||||
|  |         { | ||||||
|  |             return services.AddTransient<IAlterQueryableService<TSourceAndDestination, TSourceAndDestination>, TService>(); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         public static IServiceCollection AddAlterQueryable<TSource, TDestination, TService>(this IServiceCollection services) | ||||||
|  |             where TService : class, IAlterQueryableService<TSource, TDestination> | ||||||
|  |         { | ||||||
|  |             return services.AddTransient<IAlterQueryableService<TSource, TDestination>, TService>(); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         public static IServiceCollection AddAlterQueryableWithParams<TSourceAndTDestination, TParams, TService> | ||||||
|  |             (this IServiceCollection services) | ||||||
|  |             where TParams : class | ||||||
|  |             where TService : class, IAlterQueryableService<TSourceAndTDestination, TSourceAndTDestination, TParams> | ||||||
|  |         { | ||||||
|  |             return services.AddTransient<IAlterQueryableService< TSourceAndTDestination, TSourceAndTDestination, TParams>, TService>(); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         public static IServiceCollection AddAlterQueryableWithParams<TSource, TDestination, TParams, TService> | ||||||
|  |             (this IServiceCollection services) | ||||||
|  |             where TParams : class | ||||||
|  |             where TService : class, IAlterQueryableService<TSource, TDestination, TParams> | ||||||
|  |         { | ||||||
|  |             return services.AddTransient<IAlterQueryableService<TSource, TDestination, TParams>, TService>(); | ||||||
|  |         } | ||||||
|     } |     } | ||||||
| } | } | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user