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);
        }
Exemple #3
0
            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);
            }