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(); services.TryAddSingleton(); services.AddOptions().BindConfiguration("Turnstile"); return services; } public static IServiceCollection AddTurnstile(this IServiceCollection services, Action configure) { services.TryAddSingleton(); services.TryAddSingleton(); services.AddOptions().BindConfiguration("Turnstile"); services.PostConfigure(configure); return services; } public static IServiceCollection AddTurnstile(this IServiceCollection services, string configName, IConfiguration namedConfigurationSection) { services.TryAddSingleton(); services.TryAddSingleton(); services.AddOptions(configName).Bind(namedConfigurationSection); return services; } }