public static IXabarilBuilder AddXabarilInMemoryStore(this IXabarilBuilder xabarilBuilder, Action <InMemoryOptions> configure) { var options = new InMemoryOptions(); var setup = configure ?? (opts => { }); setup(options); xabarilBuilder .Services .AddMemoryCache() .AddSingleton <IFeaturesStore, InMemoryFeaturesStore>(provider => { var logger = provider.GetService <ILogger <XabarilModule> >(); var cache = provider.GetService <IMemoryCache>(); var store = new InMemoryFeaturesStore(logger, cache); if (options.FeatureConfiguration != null) { store.PersistConfiguratioAsync(options.FeatureConfiguration); } return(store); }); return(xabarilBuilder); }
public static IXabarilBuilder AddRedisStore(this IXabarilBuilder builder, Action <RedisOptions> configurer) { var options = new RedisOptions(); var setup = configurer ?? (opts => { }); setup(options); builder.Services .AddSingleton <IRedisClientsManager>(new RedisManagerPool(options.RedisHost)); builder.Services.AddSingleton <IFeaturesStore, RedisFeaturesStore>(provider => { var logger = provider.GetService <ILogger <XabarilModule> >(); var redisClientManager = provider.GetService <IRedisClientsManager>(); var libraries = DependencyContext.Default.CompileLibraries .Select(c => c.Name); var store = new RedisFeaturesStore(logger, redisClientManager, libraries); if (options.FeatureConfiguration != null) { store.PersistConfiguratioAsync(options.FeatureConfiguration); } return(store); }); return(builder); }
public static IXabarilBuilder AddRoleProvider <TRoleProvider>(this IXabarilBuilder builder) where TRoleProvider : class, IRoleProvider { builder.Services .AddScoped <IRoleProvider, TRoleProvider>(); return(builder); }
public static IXabarilBuilder AddUserProvider <TUserProvider>(this IXabarilBuilder builder) where TUserProvider : class, IUserProvider { builder.Services .AddScoped <IUserProvider, TUserProvider>(); return(builder); }
public static IXabarilBuilder AddGeoLocationProvider <TGeoLocationProvider>(this IXabarilBuilder builder) where TGeoLocationProvider : class, IGeoLocationProvider { builder.Services .AddScoped <IGeoLocationProvider, TGeoLocationProvider>(); return(builder); }
public static IXabarilBuilder AddXabarilOptions(this IXabarilBuilder builder, Action <XabarilOptions> setup) { if (setup == null) { throw new ArgumentNullException(nameof(setup)); } builder.Services .Configure <XabarilOptions>(setup); return(builder); }
public static IXabarilBuilder AddCustomActivators(this IXabarilBuilder builder, Assembly assembly) { if (assembly != null) { var activators = assembly.GetTypes() .Where(type => typeof(IFeatureActivator).GetTypeInfo().IsAssignableFrom(type)); foreach (var item in activators) { builder.Services .AddTransient(item); } } return(builder); }
public static IXabarilBuilder AddRedisStore(this IXabarilBuilder builder) { return(AddRedisStore(builder, options => { })); }
public static IXabarilBuilder AddXabarilInMemoryStore(this IXabarilBuilder xabarilBuilder) { return(AddXabarilInMemoryStore(xabarilBuilder, options => { })); }