Updating ButtonBase to enable Url Buttons

This commit is contained in:
FlorianDahn 2019-07-14 22:13:23 +02:00
parent 94d153e141
commit cb4a797b12
2 changed files with 29 additions and 4 deletions

View File

@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Telegram.Bot.Types.ReplyMarkups;
namespace TelegramBotBase.Form
{
@ -15,15 +16,35 @@ namespace TelegramBotBase.Form
public String Value { get; set; }
public String Url { get; set; }
public ButtonBase()
{
}
public ButtonBase(String Text, String Value)
public ButtonBase(String Text, String Value, String Url = null)
{
this.Text = Text;
this.Value = Value;
this.Url = Url;
}
public InlineKeyboardButton ToInlineButton()
{
if (this.Url == null)
{
return InlineKeyboardButton.WithCallbackData(this.Text, this.Value);
}
var ikb = new InlineKeyboardButton();
ikb.Text = this.Text;
ikb.Url = this.Url;
return ikb;
}
}

View File

@ -14,14 +14,18 @@ namespace TelegramBotBase.Form
{
List<List<ButtonBase>> Buttons = new List<List<ButtonBase>>();
public IReplyMarkup Markup { get; set; }
public ButtonForm()
{
}
public void AddButtonRow(List<ButtonBase> row)
public void AddButtonRow(IEnumerable<ButtonBase> row)
{
Buttons.Add(row);
Buttons.Add(row.ToList());
}
public void AddButtonRow(params ButtonBase[] row)
@ -66,7 +70,7 @@ namespace TelegramBotBase.Form
public InlineKeyboardButton[][] ToArray()
{
var ikb = this.Buttons.Select(a => a.Select(b => InlineKeyboardButton.WithCallbackData(b.Text, b.Value)).ToArray()).ToArray();
var ikb = this.Buttons.Select(a => a.Select(b => b.ToInlineButton()).ToArray()).ToArray();
return ikb;
}