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;

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


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

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

8   голосов , оценка 4 из 5
Похожие ответы