public async Task UpdateMessage(string chatId, int messageId, GetKeyboardState state, FormattedMessage formattedMessage, int page = 0, bool isIgnored = false) { formattedMessage.NullInspect(nameof(formattedMessage)); var header = formattedMessage.Header; var keyboard = _getKeyboardFactory.CreateKeyboard(state, formattedMessage, page, isIgnored); var displayedMessage = page == 0 ? Emoji.CLOSED_EMAIL_ENVELOP + header + $"{Environment.NewLine}{Environment.NewLine}{formattedMessage.Snippet}" : Emoji.RED_ARROWED_ENVELOPE + header + $"{Environment.NewLine}{Environment.NewLine}{formattedMessage.DesirableBody[page - 1]}"; await _telegramMethods.EditMessageText(displayedMessage, chatId, messageId.ToString(), null, ParseMode.Html, null, keyboard); }
public GetKeyboard CreateKeyboard(GetKeyboardState state, FormattedMessage message, int page = 0, bool isIgnored = false) { GetKeyboard keyboard; switch (state) { case GetKeyboardState.Minimized: keyboard = new MinimizedKeyboard(message); break; case GetKeyboardState.Maximized: keyboard = new MaximizedKeyboard(message); break; case GetKeyboardState.MinimizedActions: keyboard = new MinimizedActionsKeyboard(message); break; case GetKeyboardState.MaximizedActions: keyboard = new MaximizedActionsKeyboard(message); break; case GetKeyboardState.Attachments: keyboard = new AttachmentsKeyboard(message); break; case GetKeyboardState.Notify: keyboard = new NotifyKeyboard(message); break; default: return(null); } keyboard.Page = page; keyboard.IsIgnored = isIgnored; keyboard.CreateInlineKeyboard(); return(keyboard); }
public async Task SendAttachmentsListMessage(string chatId, int messageId, FormattedMessage formattedMessage, GetKeyboardState state, int page = 0) { formattedMessage.NullInspect(nameof(formattedMessage)); if (!formattedMessage.HasAttachments) { throw new InvalidOperationException($"{nameof(formattedMessage.HasAttachments)} property must equals true to avoid this exception."); } var keyboard = _getKeyboardFactory.CreateKeyboard(state, formattedMessage, page); var messageTextBuilder = new StringBuilder($"Files attached to this message:{Environment.NewLine}"); formattedMessage.Attachments.IndexEach((a, i) => { messageTextBuilder.AppendLine($"{i + 1}. {a.FileName}"); }); messageTextBuilder.AppendLine(); messageTextBuilder.Append("Please select a file by number to download it:"); await _telegramMethods.EditMessageText(messageTextBuilder.ToString(), chatId, messageId.ToString(), null, null, null, keyboard); }