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 FeatureServiceBuilder WithInMemoryStore() { var loggerFactory = new LoggerFactory(); var logger = loggerFactory.CreateLogger <XabarilModule>(); var store = new InMemoryFeaturesStore( logger, new MemoryCache(new MemoryCacheOptions())); _featuresStore = store; return(this); }
public IFeaturesStore Build() { var loggerFactory = new LoggerFactory(); var logger = loggerFactory.CreateLogger <XabarilModule>(); var store = new InMemoryFeaturesStore(logger, new MemoryCache(new MemoryCacheOptions())); if (_configurer != null) { store.PersistConfiguratioAsync(new List <FeatureConfigurer>() { _configurer }); } return(store); }