private void BindMatchingEngineChannel(ContainerBuilder container)
        {
            var socketLog = new SocketLogDynamic(i => { },
                                                 str => Console.WriteLine(DateTime.UtcNow.ToIsoDateTime() + ": " + str));

            container.BindMeClient(_settings.TxDetectorJob.MatchingEngine.IpEndpoint.GetClientIpEndPoint(), socketLog);
        }
示例#2
0
        public static void BindMatchingEngineChannel(this ContainerBuilder container, IPEndPoint ipEndPoint)
        {
            var socketLog = new SocketLogDynamic(i => { },
                                                 str => Console.WriteLine(DateTime.UtcNow.ToIsoDateTime() + ": " + str)
                                                 );

            var tcpClient = new TcpClientMatchingEngineConnector(ipEndPoint, socketLog);

            container.RegisterInstance <IMatchingEngineConnector>(tcpClient);
            tcpClient.Start();
        }
        protected override void Load(ContainerBuilder builder)
        {
            // TODO: Do not register entire settings in container, pass necessary settings to services which requires them
            // ex:
            //  builder.RegisterType<QuotesPublisher>()
            //      .As<IQuotesPublisher>()
            //      .WithParameter(TypedParameter.From(_settings.CurrentValue.QuotesPublication))

            builder.RegisterInstance(_log)
            .As <ILog>()
            .SingleInstance();

            builder.RegisterType <HealthService>()
            .As <IHealthService>()
            .SingleInstance();

            builder.RegisterType <StartupManager>()
            .As <IStartupManager>();

            builder.RegisterType <ShutdownManager>()
            .As <IShutdownManager>();

            var socketLog = new SocketLogDynamic(i => { },
                                                 str => Console.WriteLine(DateTime.UtcNow.ToIsoDateTime() + ": " + str));

            if (!IPAddress.TryParse(_settings.CurrentValue.MatchingEngine.IpEndpoint.Host, out var address))
            {
                address = Dns.GetHostAddressesAsync(_settings.CurrentValue.MatchingEngine.IpEndpoint.Host).Result[0];
            }

            var endPoint = new IPEndPoint(address, _settings.CurrentValue.MatchingEngine.IpEndpoint.Port);

            builder
            .RegisterInstance <OrderRepository>(
                new OrderRepository(
                    AzureTableStorage <OrderEntity> .Create(_settings.Nested(o => o.Db.DataConnString), "PlaceOrderSpotOrders", _log)))
            .SingleInstance();

            builder.RegisterType <LykkeTradeSubscruber>()
            .As <IStartable>()
            .As <IStopable>()
            .AutoActivate()
            .SingleInstance();

            builder.RegisterBalancesClient(_balanceClientSetting.CurrentValue.ServiceUrl, _log);

            builder.BindMeClient(endPoint, socketLog);

            builder.Populate(_services);
        }
示例#4
0
        protected override void Load(ContainerBuilder builder)
        {
            builder.RegisterClientAccountClient(_settings.ClientAccountServiceUrl);

            builder.RegisterHftInternalClient(_settings.HftInternalServiceUrl);

            builder.RegisterType <LykkeMarketProfileServiceAPI>()
            .As <ILykkeMarketProfileServiceAPI>()
            .WithParameter("baseUri", new Uri(_settings.MarketProfileUrl));

            builder.RegisterOperationsClient(_settings.OperationsUrl);

            builder.RegisterType <LykkeRegistrationClient>()
            .As <ILykkeRegistrationClient>()
            .WithParameter("serviceUrl", _settings.RegistrationUrl);

            builder.RegisterClientSessionClient(new SessionServiceClientSettings {
                ServiceUrl = _apiSettings.CurrentValue.WalletApiv2.Services.SessionUrl
            });

            builder.RegisterType <PersonalDataService>().As <IPersonalDataService>()
            .WithParameter(TypedParameter.From(_apiSettings.CurrentValue.PersonalDataServiceSettings));

            builder.RegisterInstance(
                new KycStatusServiceClient(_apiSettings.CurrentValue.KycServiceClient, _log))
            .As <IKycStatusService>()
            .SingleInstance();

            builder.RegisterInstance(
                new KycProfileServiceClient(_apiSettings.CurrentValue.KycServiceClient, _log))
            .As <IKycProfileService>()
            .SingleInstance();

            builder.RegisterInstance <IAssetDisclaimersClient>(
                new AssetDisclaimersClient(_apiSettings.CurrentValue.AssetDisclaimersServiceClient));

            _services.RegisterAssetsClient(AssetServiceSettings.Create(
                                               new Uri(_settings.AssetsServiceUrl),
                                               TimeSpan.FromMinutes(60)), _log);


            builder.RegisterClientDictionariesClient(_apiSettings.CurrentValue.ClientDictionariesServiceClient, _log);

            var socketLog = new SocketLogDynamic(
                i => { },
                s => _log.WriteInfo("MeClient", null, s));

            builder.BindMeClient(_apiSettings.CurrentValue.MatchingEngineClient.IpEndpoint.GetClientIpEndPoint(), socketLog, ignoreErrors: true);

            builder.RegisterFeeCalculatorClient(_apiSettings.CurrentValue.FeeCalculatorServiceClient.ServiceUrl, _log);

            builder.RegisterAffiliateClient(_settings.AffiliateServiceClient.ServiceUrl, _log);

            builder.RegisterIndicesFacadeClient(new IndicesFacadeServiceClientSettings {
                ServiceUrl = _settings.IndicesFacadeServiceUrl
            }, null);

            builder.RegisterInstance <IAssetDisclaimersClient>(new AssetDisclaimersClient(_apiSettings.CurrentValue.AssetDisclaimersServiceClient));

            builder.RegisterPaymentSystemClient(_apiSettings.CurrentValue.PaymentSystemServiceClient.ServiceUrl, _log);

            builder.RegisterLimitationsServiceClient(_apiSettings.CurrentValue.LimitationServiceClient.ServiceUrl);

            builder.RegisterClientDialogsClient(_apiSettings.CurrentValue.ClientDialogsServiceClient);

            builder.Register(ctx => new BlockchainWalletsClient(_apiSettings.CurrentValue.BlockchainWalletsServiceClient.ServiceUrl, _log, new BlockchainWalletsApiFactory()))
            .As <IBlockchainWalletsClient>()
            .SingleInstance();

            builder.RegisterSwiftCredentialsClient(_apiSettings.CurrentValue.SwiftCredentialsServiceClient);

            builder.RegisterHistoryClient(new HistoryServiceClientSettings {
                ServiceUrl = _settings.HistoryServiceUrl
            });

            builder.RegisterConfirmationCodesClient(_apiSettings.Nested(r => r.ConfirmationCodesClient).CurrentValue);

            builder.RegisterBlockchainCashoutPreconditionsCheckClient(_apiSettings.CurrentValue.BlockchainCashoutPreconditionsCheckServiceClient.ServiceUrl);

            #region BlockchainSettings

            var settings = _blockchainSettingsServiceClient;

            var cacheManager = new ClientCacheManager();
            var factory      =
                new Lykke.Service.BlockchainSettings.Client.HttpClientGenerator.BlockchainSettingsClientFactory();
            var client = factory.CreateNew(settings.ServiceUrl, settings.ApiKey, true, cacheManager);
            builder.RegisterInstance(client)
            .As <IBlockchainSettingsClient>();
            builder.RegisterInstance(client)
            .As <IBlockchainSettingsClient>()
            .SingleInstance();

            builder.RegisterInstance(cacheManager)
            .As <IClientCacheManager>()
            .SingleInstance();

            builder.RegisterType <BlockchainExplorersProvider>()
            .As <IBlockchainExplorersProvider>()
            .SingleInstance();

            #endregion

            builder.RegisterPushNotificationsClient(_apiSettings.CurrentValue.PushNotificationsServiceClient.ServiceUrl);

            builder.RegisterTierClient(_apiSettings.CurrentValue.TierServiceClient);

            builder.RegisterMarketDataClient(_apiSettings.CurrentValue.MarketDataServiceClient);
            builder.RegisterLink4PayClient(_apiSettings.CurrentValue.Link4PayServiceClient);

            builder.Populate(_services);
        }