public InlineKeyboardButton Create(CallbackQueryActionType backActionCallBack, string callbackData = null) { var callbackDataText = string.IsNullOrWhiteSpace(callbackData) ? CallbackDataFormatter.ToCallBackData(backActionCallBack) : $"{CallbackDataFormatter.ToCallBackData(backActionCallBack)};{callbackData}"; return(new InlineKeyboardButton { Text = _currentUserLocalizationService["back"], CallbackData = callbackDataText }); }
public Task Handle(CallbackQuery callbackQuery) { /* * Get message id from callback and store it * * Callback data to KeyValue pairs * \/ * V * Get certain handler depending on CallbackQueryActionType * Delegate handling to specific handler * */ CallbackQueryData callbackQueryData = null; ISpecificCallbackQueryHandler handler = null; try { StoreMessageId(callbackQuery); callbackQueryData = CallbackDataFormatter.DeserializeCallbackQueryData(callbackQuery.Data); callbackQueryData.CallbackQueryId = callbackQuery.Id; handler = _queryHandlerProvider.GetHandler(callbackQueryData.CallbackQueryActionType); return(handler.Handle(callbackQueryData)); } catch (Exception e) { var callbackQueryId = callbackQuery.Id; var user = callbackQuery.From; var messageId = callbackQuery.Message?.MessageId; var messageText = callbackQuery.Message?.Text; _logger.LogError(TelegramLogEvents.CallbackQueryHandlerError, e, "Telegram callbackQueryId: {callbackQueryId}. " + "Telegram user: {user}. " + "Callback query message id: {messageId}. " + "Message text: {messageText}" + "callbackQueryData: {callbackQueryData}. " + "handler: {handler}. ", callbackQueryId, user, messageId, messageText, callbackQueryData, handler); throw; } }