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())); }
public static string GetInlineId(this Poll poll, object suffix = null) => $"{InlineIdPrefix}:{poll.GetId()}:{(poll.Portal?.Guid ?? poll.PortalId)}:{suffix}";