public static string ConfigureByOption(this IConfiguration config, string path, Alternatives options) { var value = config.GetRequiredValue(path); if (options.TryGetValue(value, out var action)) { action(); } else { var error = new ConfigurationError($"Unsupported value '{value}', supported: {string.Join(" ", options.Keys)}.", path); throw new ConfigurationException(error); } return(value); }
public static string ConfigureByOption(this IConfiguration config, string path, Alternatives options) { var value = config.GetRequiredValue(path); if (options.TryGetValue(value, out var action)) { action(); } else if (options.Default != null) { options.Default(); } else { throw new ConfigurationException($"Unsupported value '{value}' for '{path}', supported: {string.Join(" ", options.Keys)}."); } return(value); }