Files

36 lines
1.3 KiB
C#
Raw Permalink Normal View History

2024-03-13 16:18:05 +01:00
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.DependencyInjection.Extensions;
namespace TurnstileTag;
public static class TurnstileServiceCollectionExtensions
{
public static IServiceCollection AddTurnstile(this IServiceCollection services)
{
services.TryAddSingleton<ITurnstile, Turnstile>();
services.TryAddSingleton<ValidateTurnstileAuthorizationFilter>();
services.AddOptions<TurnstileOptions>().BindConfiguration("Turnstile");
return services;
}
public static IServiceCollection AddTurnstile(this IServiceCollection services, Action<TurnstileOptions> configure)
{
services.TryAddSingleton<ITurnstile, Turnstile>();
services.TryAddSingleton<ValidateTurnstileAuthorizationFilter>();
services.AddOptions<TurnstileOptions>().BindConfiguration("Turnstile");
services.PostConfigure(configure);
return services;
}
public static IServiceCollection AddTurnstile(this IServiceCollection services, string configName, IConfiguration namedConfigurationSection)
{
services.TryAddSingleton<ITurnstile, Turnstile>();
services.TryAddSingleton<ValidateTurnstileAuthorizationFilter>();
services.AddOptions<TurnstileOptions>(configName).Bind(namedConfigurationSection);
return services;
}
}