Beispiel #1
0
        public static InlineKeyboardMarkup GetReplyMarkup(this Poll poll)
        {
            if (poll.Cancelled)
            {
                return(null);
            }

            var pollId = poll.GetId();

            var buttons = new List <InlineKeyboardButton>(VoteEnumEx.GetFlags(poll.AllowedVotes ?? VoteEnum.Standard)
                                                          .Select(vote =>
            {
                var display = vote.AsString(EnumFormat.DisplayName);
                switch (vote)
                {
                case VoteEnum.Share:
                    return(InlineKeyboardButton.WithSwitchInlineQuery(display, $"{ShareInlineQueryHandler.ID}:{pollId}"));

                default:
                    return(InlineKeyboardButton.WithCallbackData(display, $"{VoteCallbackQueryHandler.ID}:{pollId}:{vote}"));
                }
            }));

            return(new InlineKeyboardMarkup(buttons.ToArray()));
        }
Beispiel #2
0
 public static string GetInlineId(this Poll poll, object suffix = null) =>
 $"{InlineIdPrefix}:{poll.GetId()}:{(poll.Portal?.Guid ?? poll.PortalId)}:{suffix}";