Exemplo n.º 1
0
        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);
            }
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        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;
            }
        }