public static void AddFeatureFlags(this IServiceCollection services, Action <FeatureFlagsConfig> config) { var theConfig = new FeatureFlagsConfig(); config(theConfig); if (theConfig.BootstrapConfigurationSection != null) { var dstore = (IDynamicFeatureStore)theConfig.Store; dstore.BootstrapFromConfig(theConfig.BootstrapConfigurationSection); } services.AddSingleton <IHttpContextAccessor, HttpContextAccessor>(); services.AddSingleton <IFeatureStore>(theConfig.Store); services.AddSingleton <IFeatures, Features>(); foreach (var additionnalAccessor in theConfig.AdditionnalAccessors) { services.AddSingleton(additionnalAccessor.Key, additionnalAccessor.Value); } }
public static FeatureFlagsConfig AddAccessor <T>(this FeatureFlagsConfig config) where T : class { config.AdditionnalAccessors.Add(typeof(T), FeatureFlagAccessor.Build <T>()); return(config); }
public static FeatureFlagsConfig BootstrapFromConfig(this FeatureFlagsConfig config, IConfigurationSection section) { config.BootstrapConfigurationSection = section; return(config); }