public async Task <string> GetMessageAsync(RebalanceOperation message) { _log.Info("Wallets Rebalancer Provider - formatting a message...", message); var messageText = await GetMessage(message); _log.Info("Wallets Rebalancer Provider - finished formatting a message.", messageText); return(ChatMessageHelper.CheckSizeAndCutMessageIfNeeded(messageText)); }
private async Task ProcessMessageAsync(RebalanceOperation message) { try { await _handler.Publish(message); } catch (Exception ex) { await _log.WriteErrorAsync(nameof(WalletsRebalancerSubscriber), nameof(ProcessMessageAsync), $"message {message.ToJson()}", ex); } }
private async Task <string> GetMessage(RebalanceOperation message) { var state = new StringBuilder(); state.AppendLine($"======= {DateTime.UtcNow:yyyy/MM/dd HH:mm:ss} =======\r\n"); state.AppendLine("Wallets Rebalancer event:\r\n"); state.AppendLine($"Time: {message.Date}"); state.AppendLine($"Wallet Name: {message.WalletName}"); state.AppendLine($"Status: {message.Status}"); state.AppendLine("Description:"); state.AppendLine($"{await GetDescriptionAsync(message.Assets)}"); return(state.ToString()); }
public async Task Publish(RebalanceOperation message) { _log.Info("Wallets Rebalancer Publisher - publishing a message...", message); try { var publisherSettings = await _repo.GetWalletsRebalancerChatPublisherSettings(); foreach (var settings in publisherSettings) { await _telegramSender.SendTextMessageAsync(settings.ChatId, await _walletsRebalancerProvider.GetMessageAsync(message)); } _log.Info("Wallets Rebalancer Publisher - successfully published a message.", message); } catch (Exception ex) { await _log.WriteErrorAsync(nameof(WalletsRebalancerPublisher), nameof(Publish), "", ex); } }