public static IHttpClientFactoryBuilder AddHttpClient(this IHttpClientFactoryDependency dependency,
                                                              string name,
                                                              Action <HttpClient> configureClientAction
                                                              )
        {
            if (dependency == null)
            {
                throw new ArgumentNullException(nameof(dependency));
            }
            if (name == null)
            {
                throw new ArgumentNullException(nameof(name));
            }
            if (configureClientAction == null)
            {
                throw new ArgumentNullException(nameof(configureClientAction));
            }

            dependency.AddHttpClient();

            var builder = new DefaultHttpClientFactoryBuilder(name, dependency);

            builder.ConfigureHttpClient(configureClientAction);

            return(builder);
        }
        public static IHttpClientFactoryDependency AddHttpClient(this IHttpClientFactoryDependency dependency)
        {
            if (dependency == null)
            {
                throw new ArgumentNullException(nameof(dependency));
            }


            dependency.IocContainer.Register(

                Component.For <IHttpMessageHandlerBuilder, DefaultHttpMessageHandlerBuilder>().LifestyleTransient(),

                Component.For <IHttpClientFactory, DefaultHttpClientFactory>().LifestyleSingleton()

                );

            if (!dependency.IsRegistered <IHttpMessageHandlerBuilderFilter>())
            {
                dependency.IocContainer.Register(
                    Component.For <IHttpMessageHandlerBuilderFilter, LoggingHttpMessageHandlerBuilderFilter>().LifestyleSingleton()
                    );
            }

            return(dependency);
        }
        public static IHttpClientFactoryBuilder AddHttpClient(this IHttpClientFactoryDependency dependency,
                                                              string name)
        {
            if (dependency == null)
            {
                throw new ArgumentNullException(nameof(dependency));
            }
            if (name == null)
            {
                throw new ArgumentNullException(nameof(name));
            }

            dependency.AddHttpClient();

            return(new DefaultHttpClientFactoryBuilder(name, dependency));
        }
 public DefaultHttpClientFactoryBuilder(string name, IHttpClientFactoryDependency services)
 {
     Name     = name;
     Services = services;
 }
 internal static bool IsRegistered(this IHttpClientFactoryDependency dependency, string componentName)
 {
     return(dependency.IocContainer.Kernel.HasComponent(componentName));
 }
 internal static bool IsRegistered <TType>(this IHttpClientFactoryDependency dependency)
 {
     return(dependency.IocContainer.Kernel.HasComponent(typeof(TType)));
 }