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,6 +37,11 @@ namespace PoweredSoft.CQRS.DynamicQuery
|
||||
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)
|
||||
where TSource : class
|
||||
where TDestination : 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