public static IFixerBuilder AddFabio(this IFixerBuilder builder,
                                             Func <IFabioOptionsBuilder, IFabioOptionsBuilder> buildOptions,
                                             Func <IConsulOptionsBuilder, IConsulOptionsBuilder> buildConsulOptions,
                                             HttpClientOptions httpClientOptions)
        {
            var fabioOptions = buildOptions(new FabioOptionsBuilder()).Build();

            return(builder.AddFabio(fabioOptions, httpClientOptions,
                                    b => b.AddConsul(buildConsulOptions, httpClientOptions)));
        }
        public static IFixerBuilder AddFabio(this IFixerBuilder builder, string sectionName = SectionName,
                                             string consulSectionName = "consul", string httpClientSectionName = "httpClient")
        {
            var fabioOptions      = builder.GetOptions <FabioOptions>(sectionName);
            var consulOptions     = builder.GetOptions <ConsulOptions>(consulSectionName);
            var httpClientOptions = builder.GetOptions <HttpClientOptions>(httpClientSectionName);

            return(builder.AddFabio(fabioOptions, httpClientOptions,
                                    b => b.AddConsul(consulOptions, httpClientOptions)));
        }
 public static IFixerBuilder AddFabio(this IFixerBuilder builder, FabioOptions fabioOptions,
                                      ConsulOptions consulOptions, HttpClientOptions httpClientOptions)
 => builder.AddFabio(fabioOptions, httpClientOptions, b => b.AddConsul(consulOptions, httpClientOptions));