示例#1
0
        public override async Task Publish()
        {
            EnsureInitialized();

            try
            {
                var snapshot = await GetCurrentInventorySnapshot();

                await TelegramSender.SendTextMessageAsync(PublisherSettings.ChatId,
                                                          await _nettingEngineStateProvider.GetStateMessageAsync(PrevSnapshot, snapshot));

                PrevSnapshot = snapshot;
            }
            catch (Exception ex)
            {
                Log.Error(ex);
            }
        }
示例#2
0
        public override async Task ProcessMessageInternalAsync(ITelegramSender telegramSender, Message message)
        {
            try
            {
                var allowedChatIds = await GetAllowedChatIds();

                if (allowedChatIds.Contains(message.Chat.Id))
                {
                    var chatPublisher = (NettingEnginePublisher)_chatPublisherStateService.NePublishers.Single(x => x.Key == message.Chat.Id).Value;

                    var snapshot = await _marketMakerReportsClient.InventorySnapshotsApi.GetLastAsync();

                    await telegramSender.SendTextMessageAsync(message.Chat.Id,
                                                              await _nettingEngineStateProvider.GetStateMessageAsync(chatPublisher.PrevSnapshot, snapshot),
                                                              replyToMessageId : message.MessageId);
                }
            }
            catch (Exception ex)
            {
                await Log.WriteErrorAsync(nameof(NettingEngineStateSubscriber), nameof(ProcessMessageInternalAsync), "", ex);
            }
        }