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) | ||||
|         { | ||||
|             services.AddTransient<IQueryableProvider<Contact>, ContactQueryableProvider>(); | ||||
|             services.AddDynamicQuery<Contact, Contact>(); | ||||
|             services.AddDynamicQueryWithParams<Contact, Contact, SearchContactParams>(name: "SearchContacts"); | ||||
|             services.AddDynamicQuery<Contact>(); | ||||
|             services.AddDynamicQueryWithParams<Contact, SearchContactParams>(name: "SearchContacts"); | ||||
|         } | ||||
| 
 | ||||
|         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 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) | ||||
|             where TSource : class | ||||
|             where TDestination : class | ||||
| @ -33,7 +37,12 @@ namespace PoweredSoft.CQRS.DynamicQuery | ||||
|             return services; | ||||
|         } | ||||
| 
 | ||||
|         public static IServiceCollection AddDynamicQueryWithParams<TSource, TDestination, TParams>(this IServiceCollection services, string name = null) | ||||
|         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) | ||||
|             where TSource : class | ||||
|             where TDestination : class | ||||
|             where TParams : class | ||||
| @ -57,5 +66,33 @@ namespace PoweredSoft.CQRS.DynamicQuery | ||||
| 
 | ||||
|             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