public void StartBackgroundServices() { using (_Logger.LogScope(LogLevel.Debug, "Starting background services")) { lock (_Lock) { if (_Tasks.Any()) { return; } foreach (IBackgroundService backgroundService in _BackgroundServices) { Type backgroundServiceType = backgroundService.GetType(); IFeatureToggleWithDefault featureToggle = _FeatureToggles.GetByKey($"Services/{backgroundServiceType.FullName}").WithDefault(true); var monitor = new BackgroundServiceMonitor( featureToggle, backgroundService, _ApplicationLifetimeManager, _Logger, _TypeHelper); _Tasks.Add(monitor.RunAsync()); } } } }
public static bool?IsEnabled([NotNull] this IFeatureToggles featureToggles, [NotNull] string key) => featureToggles.GetByKey(key).IsEnabled;