public static IRecaptchaBuilder AddInMemoryConfigurationStore(this IRecaptchaBuilder builder, IConfiguration configuration) { var configurations = configuration.Get <Dictionary <string, RecaptchaConfiguration> >(); return(builder.AddInMemoryConfigurationStore(configurations)); }
public static IRecaptchaBuilder AddInMemoryConfigurationStore(this IRecaptchaBuilder builder, IDictionary <string, RecaptchaConfiguration> configurations) { builder.Services.AddSingleton <IRecaptchaConfigurationStore, InMemoryRecaptchaConfigurationStore>( _ => new InMemoryRecaptchaConfigurationStore(configurations)); return(builder); }
/// <summary> /// Specifies that configuration should be passed in http header. /// </summary> /// <param name="builder"></param> /// <param name="configuration"></param> /// <returns></returns> public static IRecaptchaBuilder AddConfigurationHeaderProvider(this IRecaptchaBuilder builder, IConfiguration configuration) { if (builder is null) { throw new ArgumentNullException(nameof(builder)); } if (configuration is null) { throw new ArgumentNullException(nameof(configuration)); } builder.Services.Configure <RecaptchaConfigurationHeaderProvider.Options>(configuration); return(builder.AddConfigurationHeaderProviderInner()); }
/// <summary> /// Specifies that configuration should be passed in http header. /// </summary> /// <param name="builder"></param> /// <param name="setupOptions"></param> /// <returns></returns> public static IRecaptchaBuilder AddConfigurationHeaderProvider(this IRecaptchaBuilder builder, Action <RecaptchaConfigurationHeaderProvider.Options> setupOptions = null) { if (builder is null) { throw new ArgumentNullException(nameof(builder)); } if (setupOptions is null) { setupOptions = _ => { }; } builder.Services.Configure(setupOptions); return(builder.AddConfigurationHeaderProviderInner()); }
/// <summary> /// Adds <see cref="IRecaptchaHttpClient"/> implementation. /// </summary> /// <typeparam name="T"><see cref="IRecaptchaHttpClient"/> implementation.</typeparam> /// <param name="builder"></param> /// <param name="name"></param> /// <param name="configureClient"></param> /// <param name="configureHttpBuilder">You can configure retry policies here.</param> /// <returns></returns> public static IRecaptchaBuilder AddRecaptchaHttpClient <T>(this IRecaptchaBuilder builder, string name = null, Action <HttpClient> configureClient = null, Action <IHttpClientBuilder> configureHttpBuilder = null) where T : class, IRecaptchaHttpClient { var httpBuilder = name is null ? configureClient is null ? builder.Services.AddHttpClient <IRecaptchaHttpClient, T>() : builder.Services.AddHttpClient <IRecaptchaHttpClient, T>(configureClient) : configureClient is null ? builder.Services.AddHttpClient <IRecaptchaHttpClient, T>(name) : builder.Services.AddHttpClient <IRecaptchaHttpClient, T>(name, configureClient); if (!(configureHttpBuilder is null)) { configureHttpBuilder(httpBuilder); } return(builder); }
/// <summary> /// Adds <see cref="IRecaptchaHttpClient"/> implementation. /// </summary> /// <param name="builder"></param> /// <param name="name"></param> /// <param name="configureClient"></param> /// <param name="configureHttpBuilder">You can configure retry policies here.</param> /// <returns></returns> public static IRecaptchaBuilder AddRecaptchaHttpClient(this IRecaptchaBuilder builder, string name = null, Action <HttpClient> configureClient = null, Action <IHttpClientBuilder> configureHttpBuilder = null) { return(builder.AddRecaptchaHttpClient <RecaptchaHttpClient>(name, configureClient, configureHttpBuilder)); }
/// <summary> /// Provides <see cref="RecaptchaDefaults.GlobalVerifyUrl"/> to <see cref="IRecaptchaHttpClient"/>. /// </summary> /// <param name="builder"></param> /// <returns></returns> public static IRecaptchaBuilder UseGlobalUrl(this IRecaptchaBuilder builder) { builder.Services.AddSingleton <IVerifyUrlProvider>(sp => new VerifyUrlProvider(RecaptchaDefaults.GlobalVerifyUrl)); return(builder); }
/// <summary> /// Provides custom url to <see cref="IRecaptchaHttpClient"/>. /// </summary> /// <param name="builder"></param> /// <param name="url">custom url.</param> /// <returns></returns> public static IRecaptchaBuilder UseCustomUrl(this IRecaptchaBuilder builder, string url) { builder.Services.AddSingleton <IVerifyUrlProvider>(sp => new VerifyUrlProvider(url)); return(builder); }
internal static IRecaptchaBuilder AddTokenHeaderProviderInner(this IRecaptchaBuilder builder) { builder.Services.AddSingleton <IRecaptchaTokenProvider, RecaptchaTokenHeaderProvider>(); return(builder); }