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;