Ejemplo n.º 1
0
        public static IRecaptchaBuilder AddInMemoryConfigurationStore(this IRecaptchaBuilder builder,
                                                                      IConfiguration configuration)
        {
            var configurations = configuration.Get <Dictionary <string, RecaptchaConfiguration> >();

            return(builder.AddInMemoryConfigurationStore(configurations));
        }
Ejemplo n.º 2
0
 public static IRecaptchaBuilder AddInMemoryConfigurationStore(this IRecaptchaBuilder builder,
                                                               IDictionary <string, RecaptchaConfiguration> configurations)
 {
     builder.Services.AddSingleton <IRecaptchaConfigurationStore, InMemoryRecaptchaConfigurationStore>(
         _ => new InMemoryRecaptchaConfigurationStore(configurations));
     return(builder);
 }
Ejemplo n.º 3
0
        /// <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());
        }
Ejemplo n.º 4
0
        /// <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());
        }
Ejemplo n.º 5
0
        /// <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);
        }
Ejemplo n.º 6
0
 /// <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));
 }
Ejemplo n.º 7
0
 /// <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);
 }
Ejemplo n.º 8
0
 /// <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);
 }
Ejemplo n.º 9
0
 internal static IRecaptchaBuilder AddTokenHeaderProviderInner(this IRecaptchaBuilder builder)
 {
     builder.Services.AddSingleton <IRecaptchaTokenProvider, RecaptchaTokenHeaderProvider>();
     return(builder);
 }