Example #1
0
        public static void BindAzureReposInMem(this IoC ioc)
        {
            var localHost = @"http://127.0.0.1:8998";

            ioc.Register <IClientAccountsRepository>(
                new ClientsRepository(
                    new AzureTableStorageLocal <ClientAccountEntity>(localHost, "Clients"), new AzureTableStorageLocal <AzureIndex>(localHost, "Clients")));

            ioc.Register <IPersonalDataRepository>(
                new PersonalDataRepository(new AzureTableStorageLocal <PersonalDataEntity>(localHost, "PersonalData")));

            ioc.Register <IKycRepository>(
                new KycRepository(new AzureTableStorageLocal <KycEntity>(localHost, "KycRepository")));


            ioc.Register <IKycDocumentsRepository>(
                new KycDocumentsRepository(new AzureTableStorageLocal <KycDocumentEntity>(localHost, "KycDocumentsRepository")));

            ioc.Register <IKycDocumentsScansRepository>(
                new KycDocumentsScansRepository(new AzureBlobLocal(localHost)));

            ioc.Register <IKycUploadsLog>(
                new KycUploadsLog(new AzureTableStorageLocal <KycUploadsLogItemEntity>(localHost, "KycUploadsLog")));

            ioc.Register <IBalanceRepository>(
                new BalanceRepository(new AzureTableStorageLocal <TraderBalanceEntity>(localHost, "BalanceRepository")));

            ioc.Register <IIdentityGenerator>(
                new IdentityGenerator(new AzureTableStorageLocal <IdentityEntity>(localHost, "IdentityGenerator")));

            ioc.Register <IOrdersRepository>(
                new OrdersRepository(new AzureTableStorageLocal <OrderEntity>(localHost, "OrdersRepository")));

            ioc.Register <IClientSettingsRepository>(
                new ClientSettingsRepository(new AzureTableStorageLocal <ClientSettingsEntity>(localHost, "ClientSettingsRepository")));

            var assetsRepositry = new AssetsRepository(new AzureTableStorageLocal <AssetEntity>(localHost, "AssetsRepository"));

            assetsRepositry.PopulateAssets();
            ioc.Register <IAssetsRepository>(assetsRepositry);

            var assetPairsRepository = new AssetPairsRepository(new AzureTableStorageLocal <AssetPairEntity>(localHost, "AssetPairsRepository"));

            assetPairsRepository.PopulateAssetPairsRepository();
            ioc.Register <IAssetPairsRepository>(assetPairsRepository);

            ioc.Register <IBrowserSessionsRepository>(
                new BrowserSessionsRepository(new AzureTableStorageLocal <BrowserSessionEntity>(localHost, "BrowserSessionsRepository")));

            ioc.Register <IMenuBadgesRepository>(
                new MenuBadgesRepository(new AzureTableStorageLocal <MenuBadgeEntity>(localHost, "MenuBadgesRepository")));


            ioc.Register <IAccountsRepository>(
                new AccountsRepository(new AzureTableStorageLocal <AccountEntity>(localHost, "Accounts")));

            ioc.Register <IPinSecurityRepository>(
                new PinSecurityRepository(new AzureTableStorageLocal <PinSecurityEntity>(localHost, "ClientPins")));
        }
Example #2
0
        public static void BindAzureReposInMemForTests(this IoC ioc)
        {
            ioc.Register <IClientAccountsRepository>(
                new ClientsRepository(
                    new NoSqlTableInMemory <ClientAccountEntity>(), new NoSqlTableInMemory <AzureIndex>()));

            ioc.Register <IPersonalDataRepository>(
                new PersonalDataRepository(new NoSqlTableInMemory <PersonalDataEntity>()));

            ioc.Register <IKycRepository>(
                new KycRepository(new NoSqlTableInMemory <KycEntity>()));


            ioc.Register <IKycDocumentsRepository>(
                new KycDocumentsRepository(new NoSqlTableInMemory <KycDocumentEntity>()));

            ioc.Register <IKycDocumentsScansRepository>(
                new KycDocumentsScansRepository(new AzureBlobInMemory()));

            ioc.Register <IKycUploadsLog>(
                new KycUploadsLog(new NoSqlTableInMemory <KycUploadsLogItemEntity>()));

            ioc.Register <IBalanceRepository>(
                new BalanceRepository(new NoSqlTableInMemory <TraderBalanceEntity>()));

            ioc.Register <IIdentityGenerator>(
                new IdentityGenerator(new NoSqlTableInMemory <IdentityEntity>()));

            ioc.Register <IOrdersRepository>(
                new OrdersRepository(new NoSqlTableInMemory <OrderEntity>()));

            ioc.Register <IClientSettingsRepository>(
                new ClientSettingsRepository(new NoSqlTableInMemory <ClientSettingsEntity>()));

            var assetsRepositry = new AssetsRepository(new NoSqlTableInMemory <AssetEntity>());

            assetsRepositry.PopulateAssets();
            ioc.Register <IAssetsRepository>(assetsRepositry);

            var assetPairsRepository = new AssetPairsRepository(new NoSqlTableInMemory <AssetPairEntity>());

            assetPairsRepository.PopulateAssetPairsRepository();
            ioc.Register <IAssetPairsRepository>(assetPairsRepository);

            ioc.Register <IBrowserSessionsRepository>(
                new BrowserSessionsRepository(new NoSqlTableInMemory <BrowserSessionEntity>()));

            ioc.Register <IMenuBadgesRepository>(
                new MenuBadgesRepository(new NoSqlTableInMemory <MenuBadgeEntity>()));


            ioc.Register <IAccountsRepository>(
                new AccountsRepository(new NoSqlTableInMemory <AccountEntity>()));

            ioc.Register <IPinSecurityRepository>(
                new PinSecurityRepository(new NoSqlTableInMemory <PinSecurityEntity>()));
        }
Example #3
0
        public void ConfigureServices(ContainerBuilder builder, ILog log)
        {
            var mq = settings.FeedCandlesHistoryWriterBroker.RabbitMq;
            RabbitMqSubscriberSettings subscriberSettings = new RabbitMqSubscriberSettings()
            {
                ConnectionString = $"amqp://{mq.Username}:{mq.Password}@{mq.Host}:{mq.Port}",
                QueueName        = mq.QuoteFeed + ".candleshistorywriter",
                ExchangeName     = mq.QuoteFeed,
                IsDurable        = true
            };

            var dictRepo = new AssetPairsRepository(new AzureTableStorage <AssetPairEntity>(
                                                        settings.FeedCandlesHistoryWriterBroker.ConnectionStrings.DictsConnectionString,
                                                        settings.FeedCandlesHistoryWriterBroker.DictionaryTableName,
                                                        log));

            var env        = new Environment(dictRepo, log, ApplicationName);
            var subscriber = new RabbitMqSubscriber <Quote>(subscriberSettings);

            this.controller = new CandleGenerationController(log, ApplicationName, env);
            this.monitor    = new QueueMonitor(log, this.controller, settings.FeedCandlesHistoryWriterBroker.QueueWarningSize, ApplicationName);
            this.broker     = new Broker(subscriber, log, this.controller, ApplicationName);

            builder.Register(c => new CandleHistoryRepositoryResolver((asset, tableName) => {
                string connString;
                if (!settings.CandleHistoryAssetConnections.TryGetValue(asset, out connString) ||
                    string.IsNullOrEmpty(connString))
                {
                    throw new AppSettingException(string.Format("Connection string for asset pair '{0}' is not specified.", asset));
                }

                var storage = new AzureTableStorage <CandleTableEntity>(connString, tableName, log);
                // Preload table info
                var res = storage.GetDataAsync(asset, "1900-01-01").Result;
                return(storage);
            })).As <ICandleHistoryRepository>();

            builder.RegisterInstance(subscriber)
            .As <IStartable>()
            .As <IStopable>();

            builder.RegisterInstance(this.controller)
            .As <IStartable>()
            .As <IStopable>();

            builder.RegisterInstance(this.monitor)
            .As <IStartable>()
            .As <IStopable>();

            builder.RegisterInstance(this.broker)
            .As <IStartable>()
            .As <IStopable>()
            .As <IPersistent>();
        }