btcpayserver-plugin-builder/PluginBuilder/Util/Extensions/ConfigurationExtensions.cs
2025-06-11 19:50:22 +02:00

29 lines
732 B
C#

namespace PluginBuilder.Util.Extensions;
public class ConfigurationRequiredException : ConfigurationException
{
public ConfigurationRequiredException(string key) : base(key, "Required environment variable")
{
}
}
public class ConfigurationException : Exception
{
public ConfigurationException(string key, string message) : base($"[{key}] {message}")
{
Key = key;
}
public string Key { get; }
}
public static class ConfigurationExtensions
{
public static string GetRequired(this IConfiguration configuration, string key)
{
if (configuration[key] is string v && !string.IsNullOrWhiteSpace(v))
return v;
throw new ConfigurationRequiredException(key);
}
}