private void AddMarketMakerArbitragesPublisherIfNeeded(IChatPublisherSettings publisherSettings)
        {
            var newChatPublisher = new MarketMakerArbitragesPublisher(_telegramSender, publisherSettings,
                                                                      _marketMakerArbitragesWarningProvider, _marketMakerArbitrageDetectorClient, _logFactory);

            AddPublisherIfNeeded(publisherSettings, _chatPublisherStateService.MarketMakerArbitragesPublishers, newChatPublisher);
        }
        private void AddLiquidityEngineSummaryPublisherIfNeeded(IChatPublisherSettings publisherSettings)
        {
            var newChatPublisher = new LiquidityEngineSummaryPublisher(_telegramSender, publisherSettings, _liquidityEngineUrlSettings,
                                                                       _assetsServiceWithCache, _logFactory);

            AddPublisherIfNeeded(publisherSettings, _chatPublisherStateService.LiquidityEngineSummaryPublishers, newChatPublisher);
        }
        private void AddBalancePublisherIfNeeded(IChatPublisherSettings publisherSettings)
        {
            var newChatPublisher = new BalancePublisher(_telegramSender, _balanceWarningRepository, _balancesClient,
                                                        _balanceWarningProvider, publisherSettings, _logFactory);

            AddPublisherIfNeeded(publisherSettings, _chatPublisherStateService.BalancePublishers, newChatPublisher);
        }
        private void AddExternalBalancePublisherIfNeeded(IChatPublisherSettings publisherSettings)
        {
            var newChatPublisher = new ExternalBalancePublisher(_telegramSender, _externalBalanceWarningRepository,
                                                                _nettingEngineInstanceManager, _externalBalanceWarningProvider, publisherSettings, _logFactory);

            AddPublisherIfNeeded(publisherSettings, _chatPublisherStateService.ExternalBalancePublishers, newChatPublisher);
        }
        private void AddNePublisherIfNeeded(IChatPublisherSettings publisherSettings)
        {
            var newChatPublisher = new NettingEnginePublisher(_telegramSender,
                                                              _neStateProvider, _marketMakerReportsClient, publisherSettings, _logFactory);

            AddPublisherIfNeeded(publisherSettings, _chatPublisherStateService.NePublishers, newChatPublisher);
        }
        private void AddNeTradesPublisherIfNeeded(IChatPublisherSettings publisherSettings)
        {
            var newChatPublisher = new NettingEngineTradesChatPublisher(
                _marketMakerReportsFiatClient, _telegramSender, publisherSettings, _logFactory);

            AddPublisherIfNeeded(publisherSettings, _chatPublisherStateService.NeTradesPublishers, newChatPublisher);
        }
        public async Task AddNeTradesChatPublisherAsync(IChatPublisherSettings chatPublisher)
        {
            EnsureInitialized();
            await _repo.AddNeTradesChatPublisherSettingsAsync(chatPublisher);

            await UpdateChatPublishers();
        }
        public async Task AddCryptoIndexWarningsChatPublisherAsync(IChatPublisherSettings chatPublisher)
        {
            EnsureInitialized();
            await _repo.AddCryptoIndexWarningsChatPublisherSettingsAsync(chatPublisher);

            await UpdateChatPublishers();
        }
        public async Task AddLiquidityEngineSummaryChatPublisherAsync(IChatPublisherSettings chatPublisher)
        {
            EnsureInitialized();
            await _repo.AddLiquidityEngineSummaryChatPublisherSettingsAsync(chatPublisher);

            await UpdateChatPublishers();
        }
        public async Task AddMarketMakerArbitragesChatPublisherAsync(IChatPublisherSettings chatPublisher)
        {
            EnsureInitialized();
            await _repo.AddMarketMakerArbitragesChatPublisherSettingsAsync(chatPublisher);

            await UpdateChatPublishers();
        }
        public async Task AddWalletsRebalancerChatPublisherAsync(IChatPublisherSettings chatPublisher)
        {
            EnsureInitialized();
            await _repo.AddWalletsRebalancerChatPublisherSettingsAsync(chatPublisher);

            await UpdateChatPublishers();
        }
        public async Task AddExternalBalanceChatPublisherAsync(IChatPublisherSettings chatPublisher)
        {
            EnsureInitialized();
            await _repo.AddExternalBalanceChatPublisherSettingsAsync(chatPublisher);

            await UpdateChatPublishers();
        }
예제 #13
0
 public MarketMakerArbitragesPublisher(ITelegramSender telegramSender, IChatPublisherSettings publisherSettings,
                                       IMarketMakerArbitragesWarningProvider marketMakerArbitragesWarningProvider,
                                       IMarketMakerArbitrageDetectorClient marketMakerArbitrageDetectorClient, ILogFactory logFactory)
     : base(telegramSender, publisherSettings, logFactory)
 {
     _marketMakerArbitragesWarningProvider = marketMakerArbitragesWarningProvider;
     _marketMakerArbitrageDetectorClient   = marketMakerArbitrageDetectorClient;
 }
 public LiquidityEngineTradesPublisher(ITelegramSender telegramSender, IChatPublisherSettings publisherSettings,
                                       LiquidityEngineUrlSettings settings, IAssetsServiceWithCache assetsServiceWithCache,
                                       ILogFactory logFactory)
     : base(telegramSender, publisherSettings, logFactory)
 {
     _settings = settings;
     _assetsServiceWithCache = assetsServiceWithCache;
 }
예제 #15
0
 protected ChatPublisher(ITelegramSender telegramSender,
                         IChatPublisherSettings publisherSettings, ILogFactory logFactory)
 {
     TelegramSender    = telegramSender;
     PublisherSettings = publisherSettings;
     Log    = logFactory.CreateLog(this);
     _timer = new TimerTrigger(this.GetType().FullName, PublisherSettings.TimeSpan, logFactory, TimeHendler);
 }
예제 #16
0
 public NettingEngineTradesChatPublisher(
     IMarketMakerReportsFiatClient marketMakerReportsClient,
     ITelegramSender telegramSender,
     IChatPublisherSettings publisherSettings,
     ILogFactory logFactory)
     : base(telegramSender, publisherSettings, logFactory)
 {
     _marketMakerReportsClient = marketMakerReportsClient;
 }
 public static ChatPublisherSettingsEntity CreateForExternalBalance(IChatPublisherSettings chatPublisher)
 {
     return(new ChatPublisherSettingsEntity
     {
         PartitionKey = GeneratePartitionKeyForExternalBalance(),
         RowKey = Guid.NewGuid().ToString(),
         TimeSpan = chatPublisher.TimeSpan,
         ChatId = chatPublisher.ChatId
     });
 }
 public static ChatPublisherSettingsEntity CreateForCryptoIndexWarnings(IChatPublisherSettings chatPublisher)
 {
     return(new ChatPublisherSettingsEntity
     {
         PartitionKey = GeneratePartitionKeyForCryptoIndexWarnings(),
         RowKey = Guid.NewGuid().ToString(),
         TimeSpan = chatPublisher.TimeSpan,
         ChatId = chatPublisher.ChatId
     });
 }
 public static ChatPublisherSettingsEntity CreateForLiquidityEngineSummary(IChatPublisherSettings chatPublisher)
 {
     return(new ChatPublisherSettingsEntity
     {
         PartitionKey = GeneratePartitionKeyForLiquidityEngineSummary(),
         RowKey = Guid.NewGuid().ToString(),
         TimeSpan = chatPublisher.TimeSpan,
         ChatId = chatPublisher.ChatId
     });
 }
 public static ChatPublisherSettingsEntity CreateForMarketMakerArbitrages(IChatPublisherSettings chatPublisher)
 {
     return(new ChatPublisherSettingsEntity
     {
         PartitionKey = GeneratePartitionKeyForMarketMakerArbitrages(),
         RowKey = Guid.NewGuid().ToString(),
         TimeSpan = chatPublisher.TimeSpan,
         ChatId = chatPublisher.ChatId
     });
 }
예제 #21
0
        public NettingEnginePublisher(ITelegramSender telegramSender,
                                      INettingEngineStateProvider nettingEngineStateProvider,
                                      IMarketMakerReportsClient marketMakerReportsClient,
                                      IChatPublisherSettings publisherSettings,
                                      ILogFactory logFactory)
            : base(telegramSender, publisherSettings, logFactory)
        {
            _nettingEngineStateProvider = nettingEngineStateProvider;
            _marketMakerReportsClient   = marketMakerReportsClient;

            EnsureInitialized();
        }
예제 #22
0
 public ExternalBalancePublisher(ITelegramSender telegramSender,
                                 IExternalBalanceWarningRepository externalBalanceWarningRepository,
                                 INettingEngineInstanceManager nettingEngineInstanceManager,
                                 IExternalBalanceWarningProvider externalBalanceWarningProvider,
                                 IChatPublisherSettings publisherSettings,
                                 ILogFactory logFactory)
     : base(telegramSender, publisherSettings, logFactory)
 {
     _externalBalanceWarningRepository = externalBalanceWarningRepository;
     _nettingEngineInstanceManager     = nettingEngineInstanceManager;
     _externalBalanceWarningProvider   = externalBalanceWarningProvider;
 }
 public BalancePublisher(ITelegramSender telegramSender,
                         IBalanceWarningRepository balanceWarningRepository,
                         IBalancesClient balancesClient,
                         IBalanceWarningProvider balanceWarningProvider,
                         IChatPublisherSettings publisherSettings,
                         ILogFactory logFactory)
     : base(telegramSender, publisherSettings, logFactory)
 {
     _balanceWarningRepository = balanceWarningRepository;
     _balancesClient           = balancesClient;
     _balanceWarningProvider   = balanceWarningProvider;
 }
        private static void AddPublisherIfNeeded(IChatPublisherSettings publisherSettings, IDictionary <long, ChatPublisher> publishers, ChatPublisher newChatPublisher)
        {
            var exist = publishers.ContainsKey(publisherSettings.ChatId);

            if (!exist)
            {
                newChatPublisher.Start();
                publishers[publisherSettings.ChatId] = newChatPublisher;
            }
            else
            {
                if (publisherSettings.TimeSpan < publishers[publisherSettings.ChatId].PublisherSettings.TimeSpan)
                {
                    publishers[publisherSettings.ChatId].Stop();
                    publishers[publisherSettings.ChatId].Dispose();
                    publishers.Remove(publisherSettings.ChatId, out _);

                    newChatPublisher.Start();
                    publishers[publisherSettings.ChatId] = newChatPublisher;
                }
            }
        }
        public Task AddCryptoIndexWarningsChatPublisherSettingsAsync(IChatPublisherSettings chatPublisher)
        {
            var entity = ChatPublisherSettingsEntity.CreateForCryptoIndexWarnings(chatPublisher);

            return(_storage.InsertOrReplaceAsync(entity));
        }
        public Task AddNeTradesChatPublisherSettingsAsync(IChatPublisherSettings chatPublisher)
        {
            var entity = ChatPublisherSettingsEntity.CreateForNeTrades(chatPublisher);

            return(_storage.InsertOrReplaceAsync(entity));
        }
        public Task AddLiquidityEngineSummaryChatPublisherSettingsAsync(IChatPublisherSettings chatPublisher)
        {
            var entity = ChatPublisherSettingsEntity.CreateForLiquidityEngineSummary(chatPublisher);

            return(_storage.InsertOrReplaceAsync(entity));
        }
        public Task AddMarketMakerArbitragesChatPublisherSettingsAsync(IChatPublisherSettings chatPublisher)
        {
            var entity = ChatPublisherSettingsEntity.CreateForMarketMakerArbitrages(chatPublisher);

            return(_storage.InsertOrReplaceAsync(entity));
        }
        public Task AddWalletsRebalancerChatPublisherSettingsAsync(IChatPublisherSettings chatPublisher)
        {
            var entity = ChatPublisherSettingsEntity.CreateForWalletsRebalancer(chatPublisher);

            return(_storage.InsertOrReplaceAsync(entity));
        }
        public Task AddExternalBalanceChatPublisherSettingsAsync(IChatPublisherSettings chatPublisher)
        {
            var entity = ChatPublisherSettingsEntity.CreateForExternalBalance(chatPublisher);

            return(_storage.InsertOrReplaceAsync(entity));
        }