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;
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д