Esempio n. 1
0
        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();
        }
Esempio n. 2
0
        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();
        }