/// <summary> /// Schedules a rule to be run over different environments. /// </summary> private void OncePerEnvironment(Func <MultiStampRuleArguments, IEnumerable <Instantiation> > generator, Watchlist watchlist) { var tableNames = watchlist.Entries.Select(kvp => (kvp.Key.Environment, kvp.Value.CacheTableName)).Distinct() .ToDictionary(keySelector: pair => pair.Environment, elementSelector: pair => pair.CacheTableName); foreach (var kvp in tableNames) { var configuration = new MultiStampRuleConfiguration( _clock, _logger, _alertNotifier, _kustoClient, _icmClient, _configuration.Environments[kvp.Key].KustoDatabaseName, kvp.Value, kvp.Key, watchlist); var request = new MultiStampRuleArguments { BaseConfiguration = configuration, EnvironmentResources = _environmentResources[kvp.Key], }; foreach (var rule in generator(request)) { Contract.AssertNotNull(rule.Rule); _scheduler.Add(rule.Rule, rule.PollingPeriod, rule.ForceRun); } } }
public MultipleStampRuleBase(MultiStampRuleConfiguration configuration) : base(configuration) { _configuration = configuration; }
public Configuration(MultiStampRuleConfiguration kustoRuleConfiguration) : base(kustoRuleConfiguration) { }
public Configuration(MultiStampRuleConfiguration other) : base(other) { }