Работа с календарем
PRTelegramBot предоставляет возможность работы с календарем из коробки. За основу был взят пакет CalendarPicker | karb0f0s https://github.com/karb0f0s/CalendarPicker.
Вид календаря представлен на рисунках ниже:




Для работы с календарем используется CalendarUtils.
Пример:
/// <summary>
/// Напишите в чат Calendar
/// Вызов команды календаря
/// </summary>
[ReplyMenuHandler("Calendar")]
public static async Task PickCalendar(ITelegramBotClient botClient, Update update)
{
try
{
await CalendarUtils.Create(botClient, update, CustomTHeader.CalendarCallback, "Выберите дату:");
}
catch (Exception ex)
{
Console.WriteLine(ex);
}
}
/// <summary>
/// Напишите в чат EngCalendar
/// Вызов команды календаря на английском языке
/// </summary>
[ReplyMenuHandler("EngCalendar")]
public static async Task EngPickCalendar(ITelegramBotClient botClient, Update update)
{
try
{
await CalendarUtils.Create(botClient, update, CultureInfo.GetCultureInfo("en-US", false), CustomTHeader.CalendarCallback, "Choose date:");
}
catch (Exception ex)
{
Console.WriteLine(ex);
}
}
/// <summary>
/// Обработка выбраной даты
/// </summary>
[InlineCallbackHandler<CustomTHeader>(CustomTHeader.CalendarCallback)]
public static async Task PickDate(ITelegramBotClient botClient, Update update)
{
var bot = botClient.GetBotDataOrNull();
try
{
using (var inlineHandler = new InlineCallback<CalendarTCommand>(botClient, update))
{
var command = inlineHandler.GetCommandByCallbackOrNull();
await Helpers.Message.Send(botClient, update, command.Data.Date.ToString());
}
}
catch (Exception ex)
{
bot.Events.OnErrorLogInvoke(ex);
}
}
Last updated