private InlineKeyboardMarkup GetKeyboardMarkup(MessageData.KeyboardType keyboardType, InlineKeyboardButton icsButton) { var icsKeyboard = new InlineKeyboardMarkup(icsButton); var row = new[] { icsButton, _discussButton }; var fullKeyboard = new InlineKeyboardMarkup(row); switch (keyboardType) { case MessageData.KeyboardType.None: return(null); case MessageData.KeyboardType.Ics: return(icsKeyboard); case MessageData.KeyboardType.Discuss: return(_discussKeyboard); case MessageData.KeyboardType.Full: return(fullKeyboard); default: throw new ArgumentOutOfRangeException(nameof(keyboardType), keyboardType, null); } }
private async Task <int> SendTextMessageAsync(string text, MessageData.KeyboardType keyboard = MessageData.KeyboardType.None, InlineKeyboardButton icsButton = null, bool disableWebPagePreview = false, bool disableNotification = false, int replyToMessageId = 0) { InlineKeyboardMarkup keyboardMarkup = GetKeyboardMarkup(keyboard, icsButton); Message message = await _bot.Client.SendTextMessageAsync(_eventsChatId, text, ParseMode.MarkdownV2, null, disableWebPagePreview, disableNotification, replyToMessageId, false, keyboardMarkup); _saveManager.Data.Messages[message.MessageId] = new MessageData(message, text, keyboard); return(message.MessageId); }
private async Task <int> PostForwardAndAddButtonAsync(string text, MessageData.KeyboardType chatKeyboard, MessageData.KeyboardType keyboard, InlineKeyboardButton icsButton = null, bool disableWebPagePreview = false) { int messageId = await SendTextMessageAsync(text, chatKeyboard, icsButton, disableWebPagePreview); await _bot.Client.ForwardMessageAsync(_discussChatId, _eventsChatId, messageId); await EditMessageTextAsync(messageId, text, keyboard, icsButton, disableWebPagePreview); return(messageId); }
private async Task EditMessageTextAsync(int messageId, string text, MessageData.KeyboardType keyboard = MessageData.KeyboardType.None, InlineKeyboardButton icsButton = null, bool disableWebPagePreview = false) { MessageData data = GetMessageData(messageId); if ((data?.Text == text) && (data?.Keyboard == keyboard)) { return; } InlineKeyboardMarkup keyboardMarkup = GetKeyboardMarkup(keyboard, icsButton); Message message = await _bot.Client.EditMessageTextAsync(_eventsChatId, messageId, text, ParseMode.MarkdownV2, null, disableWebPagePreview, keyboardMarkup); if (data == null) { _saveManager.Data.Messages[messageId] = new MessageData(message, text, keyboard); } else { data.Text = text; data.Keyboard = keyboard; } }