This commit is contained in:
2024-03-13 16:18:05 +01:00
commit 34451515da
15 changed files with 845 additions and 0 deletions
+35
View File
@@ -0,0 +1,35 @@
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;
}
}