Telegram bot. Как вычислить на какое именно сообщение получен ответ? - C#
Формулировка задачи:
Доброго времени суток, коллеги!
Пишу своего первого бота на основе WebApi, использую Webhook, столкнулся с таким вопросом: Как вычислить на какое именно сообщение получен ответ?
Сейчас выполняются все команды, прикрученные к боту. Например, если первое сообщение, то срабатывает только команда приветствия
Но вставлять везде условия на выполнение команды не есть комильфо, далее в следующих командах просто непонятно будет на какое условие проверять, подскажите пожалуйста
public class MessageController: ApiController { public async Task<IHttpActionResult> Update([FromBody] Update update) { var commands = Bot.Commands; var message = update.Message; var client = await Bot.Get(); foreach (var command in commands) { command.Execute(message, client); //break; } return this.Ok(update); } }
public class HelloCommand: Command { public override string Name => "hello"; public override async void Execute(Message message, TelegramBotClient client) { if (message.Text != "/start") return; await client.SendTextMessageAsync( message.Chat.Id, message.From.FirstName + ", приветствуем Вас в центре поддержки!"); await client.SendTextMessageAsync( message.Chat.Id, "Задайте свой вопрос"); //replyToMessageId: messageId); } }
public class ProblemCommand: Command { public override string Name => "problem"; public override async void Execute(Message message, TelegramBotClient client) { if (message.Text == "/start" || !IsProblemMessage(message.Text)) return; await client.SendTextMessageAsync(message.From.Id, GetMenu()); } }
Решение задачи: «Telegram bot. Как вычислить на какое именно сообщение получен ответ?»
textual
Листинг программы
var updateId = update.Id;
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д