private static void BindApiProviders(ContainerBuilder ioc) { ioc.RegisterType <LykkeHttpClientHandler>().SingleInstance(); ioc.Register(x => { var resolver = x.Resolve <IComponentContext>(); var lykkyHttpClientHandler = resolver.Resolve <LykkeHttpClientHandler>(); var client = new HttpClient(lykkyHttpClientHandler) { Timeout = TimeSpan.FromMinutes(5), BaseAddress = new Uri("https://bitcoinfees.21.co/api/v1") }; return(RestClient.For <IFeeRateApiProvider>(client)); }).As <IFeeRateApiProvider>().SingleInstance(); ioc.Register(x => { var resolver = x.Resolve <IComponentContext>(); var lykkyHttpClientHandler = resolver.Resolve <LykkeHttpClientHandler>(); var settings = resolver.Resolve <BaseSettings>(); var client = new HttpClient(lykkyHttpClientHandler) { BaseAddress = new Uri(settings.LykkeJobsUrl) }; return(RestClient.For <ILykkeApiProvider>(client)); }).As <ILykkeApiProvider>().SingleInstance(); ioc.Register <Func <SignatureApiProviderType, ISignatureApi> >(x => { var resolver = x.Resolve <IComponentContext>(); var settings = resolver.Resolve <BaseSettings>(); return(type => { var lykkyHttpClientHandler = resolver.Resolve <LykkeHttpClientHandler>(); var client = new HttpClient(lykkyHttpClientHandler) { Timeout = TimeSpan.FromMinutes(5), BaseAddress = new Uri(type == SignatureApiProviderType.Client ? settings.ClientSignatureProviderUrl : settings.SignatureProviderUrl) }; return RestClient.For <ISignatureApi>(client); }); }).SingleInstance(); ioc.Register <Func <SignatureApiProviderType, ISignatureApiProvider> >(x => { var resolver = x.Resolve <IComponentContext>(); var factory = resolver.Resolve <Func <SignatureApiProviderType, ISignatureApi> >(); return(type => new SignatureApiProvider(factory(type))); }).SingleInstance(); }
private static void BindApiProviders(ContainerBuilder ioc) { ioc.Register(x => { var client = new HttpClient { Timeout = TimeSpan.FromMinutes(5), BaseAddress = new Uri("https://bitcoinfees.21.co/api/v1") }; return(RestClient.For <IFeeRateApiProvider>(client)); }).As <IFeeRateApiProvider>().SingleInstance(); ioc.Register(x => { var resolver = x.Resolve <IComponentContext>(); var settings = resolver.Resolve <BaseSettings>(); var client = new HttpClient { BaseAddress = new Uri(settings.BitcoinCallbackUrl) }; return(RestClient.For <ILykkeApiProvider>(client)); }).As <ILykkeApiProvider>().SingleInstance(); ioc.Register(x => { var resolver = x.Resolve <IComponentContext>(); var settings = resolver.Resolve <BaseSettings>(); var api = RestClient.For <ISignatureApi>(new HttpClient { BaseAddress = new Uri(settings.SignatureProviderUrl) }); api.ApiKey = settings.SigningServiceApiKey; return(api); }).As <ISignatureApi>().SingleInstance(); ioc.RegisterType <SignatureApiProvider>().As <ISignatureApiProvider>().SingleInstance(); }