Пример #1
0
        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);
        }
Пример #2
0
        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);
        }
Пример #3
0
        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);
        }