public static IAggregatorConfiguration ReadConfiguration(Microsoft.Extensions.Configuration.IConfiguration config) { var ac = new Model.AggregatorConfiguration(); Enum.TryParse(config["Aggregator_VstsTokenType"], out DevOpsTokenType vtt); ac.DevOpsTokenType = vtt; ac.DevOpsToken = config["Aggregator_VstsToken"]; ac.SaveMode = Enum.TryParse(config["Aggregator_SaveMode"], out SaveMode sm) ? sm : SaveMode.Default; ac.DryRun = false; return(ac); }
public static async Task <IAggregatorConfiguration> ReadConfiguration(Microsoft.Azure.Management.AppService.Fluent.IWebApp webApp) { (string ruleName, string key) SplitRuleNameKey(string input) { int idx = input.LastIndexOf('.'); return(input.Substring(0, idx), input.Substring(idx + 1)); } var settings = await webApp.GetAppSettingsAsync(); var ac = new Model.AggregatorConfiguration(); foreach (var ruleSetting in settings.Where(kvp => kvp.Key.StartsWith(RULE_SETTINGS_PREFIX)).Select(kvp => new { ruleNameKey = kvp.Key.Substring(RULE_SETTINGS_PREFIX.Length), value = kvp.Value.Value })) { var(ruleName, key) = SplitRuleNameKey(ruleSetting.ruleNameKey); var ruleConfig = ac.GetRuleConfiguration(ruleName); if (string.Equals("Disabled", key, StringComparison.OrdinalIgnoreCase)) { ruleConfig.IsDisabled = Boolean.TryParse(ruleSetting.value, out bool result) && result; } if (string.Equals("Impersonate", key, StringComparison.OrdinalIgnoreCase)) { ruleConfig.Impersonate = string.Equals("onBehalfOfInitiator", ruleSetting.value, StringComparison.OrdinalIgnoreCase); } } Enum.TryParse(settings.GetValueOrDefault("Aggregator_VstsTokenType")?.Value, out DevOpsTokenType vtt); ac.DevOpsTokenType = vtt; ac.DevOpsToken = settings.GetValueOrDefault("Aggregator_VstsToken")?.Value; ac.SaveMode = Enum.TryParse(settings.GetValueOrDefault("Aggregator_SaveMode")?.Value, out SaveMode sm) ? sm : SaveMode.Default; ac.DryRun = false; return(ac); }