public FilterTest() { var settings = new AutoQueryableSettings(); _profile = new AutoQueryableProfile(settings); _queryStringAccessor = new SimpleQueryStringAccessor(); var selectClauseHandler = new DefaultSelectClauseHandler(); var orderByClauseHandler = new DefaultOrderByClauseHandler(); var wrapWithClauseHandler = new DefaultWrapWithClauseHandler(); var clauseMapManager = new ClauseMapManager(selectClauseHandler, orderByClauseHandler, wrapWithClauseHandler); var clauseValueManager = new ClauseValueManager(selectClauseHandler, orderByClauseHandler, wrapWithClauseHandler, _profile); var criteriaFilterManager = new CriteriaFilterManager(); var defaultAutoQueryHandler = new AutoQueryHandler(_queryStringAccessor, criteriaFilterManager, clauseMapManager, clauseValueManager, _profile); _autoQueryableContext = new AutoQueryableContext(defaultAutoQueryHandler); }
public static void RegisterAutoQueryable(this TinyIoCContainer container, Action <AutoQueryableSettings> handler = null) { var settings = new AutoQueryableSettings(); handler?.Invoke(settings); container.Register <IAutoQueryableContext, AutoQueryableContext>(); container.Register(settings); container.Register <IAutoQueryableProfile, AutoQueryableProfile>(); container.Register <IAutoQueryHandler, AutoQueryHandler>(); container.Register <IClauseValueManager, ClauseValueManager>(); container.Register <ICriteriaFilterManager, CriteriaFilterManager>(); container.Register <IClauseMapManager, ClauseMapManager>(); container.Register <ISelectClauseHandler, DefaultSelectClauseHandler>(); container.Register <IOrderByClauseHandler, DefaultOrderByClauseHandler>(); container.Register <IWrapWithClauseHandler, DefaultWrapWithClauseHandler>(); }
public static void RegisterAutoQueryable(this ContainerBuilder builder, Action <AutoQueryableSettings> handler = null) { var settings = new AutoQueryableSettings(); handler?.Invoke(settings); builder.RegisterType <AutoQueryableContext>().AsImplementedInterfaces().InstancePerLifetimeScope(); builder.Register(c => settings).As <AutoQueryableSettings>().SingleInstance(); builder.RegisterType <AutoQueryableProfile>().AsImplementedInterfaces().InstancePerLifetimeScope(); builder.RegisterType <AutoQueryHandler>().AsImplementedInterfaces().InstancePerLifetimeScope(); builder.RegisterType <ClauseValueManager>().AsImplementedInterfaces().InstancePerLifetimeScope(); builder.RegisterType <CriteriaFilterManager>().AsImplementedInterfaces().InstancePerLifetimeScope(); builder.RegisterType <ClauseMapManager>().AsImplementedInterfaces().InstancePerLifetimeScope(); builder.RegisterType <DefaultSelectClauseHandler>().AsImplementedInterfaces().InstancePerLifetimeScope(); builder.RegisterType <DefaultOrderByClauseHandler>().AsImplementedInterfaces().InstancePerLifetimeScope(); builder.RegisterType <DefaultWrapWithClauseHandler>().AsImplementedInterfaces().InstancePerLifetimeScope(); builder.RegisterType <AspNetQueryStringAccessor>().As <IQueryStringAccessor>().InstancePerLifetimeScope(); }
/// <summary> /// Adds the minimum essential AutoQueryable services to the specified <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection" />. Additional services /// including default clause handlers. /// </summary> /// <param name="services">The <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection" /> to add services to.</param> /// <param name="handler">An <see cref="T:System.Action`1" /> to configure the provided <see cref="T:AutoQueryable.Core.Models.AutoQueryableProfile" />.</param> /// <returns>An <see cref="T:Microsoft.Extensions.DependencyInjection.IServiceCollection" /> that can be used to further other services.</returns> public static IServiceCollection AddAutoQueryable(this IServiceCollection services, Action <AutoQueryableSettings> handler = null) { var settings = new AutoQueryableSettings(); handler?.Invoke(settings); services.TryAddSingleton <IHttpContextAccessor, HttpContextAccessor>(); return(services.AddScoped <IAutoQueryableContext, AutoQueryableContext>() .AddSingleton(_ => settings) .AddScoped <IAutoQueryableProfile, AutoQueryableProfile>() .AddScoped <IAutoQueryHandler, AutoQueryHandler>() .AddScoped <IClauseValueManager, ClauseValueManager>() .AddScoped <ICriteriaFilterManager, CriteriaFilterManager>() .AddScoped <IClauseMapManager, ClauseMapManager>() .AddScoped <ISelectClauseHandler, DefaultSelectClauseHandler>() .AddScoped <IOrderByClauseHandler, DefaultOrderByClauseHandler>() .AddScoped <IWrapWithClauseHandler, DefaultWrapWithClauseHandler>() .AddScoped <IQueryStringAccessor, AspNetCoreQueryStringAccessor>() .AddScoped <AutoQueryableFilter>()); }