Telegram bot. Как вычислить на какое именно сообщение получен ответ? - C#

Узнай цену своей работы

Формулировка задачи:

Доброго времени суток, коллеги! Пишу своего первого бота на основе WebApi, использую Webhook, столкнулся с таким вопросом: Как вычислить на какое именно сообщение получен ответ?
Листинг программы
  1. public class MessageController: ApiController
  2. {
  3. public async Task<IHttpActionResult> Update([FromBody] Update update)
  4. {
  5. var commands = Bot.Commands;
  6. var message = update.Message;
  7. var client = await Bot.Get();
  8. foreach (var command in commands)
  9. {
  10. command.Execute(message, client);
  11. //break;
  12. }
  13. return this.Ok(update);
  14. }
  15. }
Сейчас выполняются все команды, прикрученные к боту. Например, если первое сообщение, то срабатывает только команда приветствия
Листинг программы
  1. public class HelloCommand: Command
  2. {
  3. public override string Name => "hello";
  4. public override async void Execute(Message message, TelegramBotClient client)
  5. {
  6. if (message.Text != "/start")
  7. return;
  8. await client.SendTextMessageAsync(
  9. message.Chat.Id,
  10. message.From.FirstName + ", приветствуем Вас в центре поддержки!");
  11. await client.SendTextMessageAsync(
  12. message.Chat.Id,
  13. "Задайте свой вопрос");
  14. //replyToMessageId: messageId);
  15. }
  16. }
Но вставлять везде условия на выполнение команды не есть комильфо, далее в следующих командах просто непонятно будет на какое условие проверять, подскажите пожалуйста
Листинг программы
  1. public class ProblemCommand: Command
  2. {
  3. public override string Name => "problem";
  4. public override async void Execute(Message message, TelegramBotClient client)
  5. {
  6. if (message.Text == "/start"
  7. || !IsProblemMessage(message.Text))
  8. return;
  9. await client.SendTextMessageAsync(message.From.Id, GetMenu());
  10. }
  11. }

Решение задачи: «Telegram bot. Как вычислить на какое именно сообщение получен ответ?»

textual
Листинг программы
  1. var updateId = update.Id;

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы