Fix many StartWith handler

This commit is contained in:
Dmitri Shimanski
2025-03-28 16:15:07 +03:00
parent 55079122ac
commit 7b7b2effca

View File

@@ -169,19 +169,29 @@ public class TelegramHostedService : IHostedService
switch (update) switch (update)
{ {
case { Message: { } message }: case { Message: { } message }:
await CommandHandler.FirstOrDefault(k => message.Text!.StartsWith(k.Key)) CommandHandler.Where(k => message.Text!.StartsWith(k.Key)).Select(async k =>
.Value(client, message, ctx); {
await k.Value(client, message, ctx);
return k;
});
break; break;
case { EditedMessage: { } message }: case { EditedMessage: { } message }:
EditedMessageHandler.ForEach(async k => await k(client, message, ctx)); EditedMessageHandler.ForEach(async k => await k(client, message, ctx));
break; break;
case { CallbackQuery: { } callbackQuery }: case { CallbackQuery: { } callbackQuery }:
await CallbackQueryHandler.FirstOrDefault(k => callbackQuery.Data!.StartsWith(k.Key)) CallbackQueryHandler.Where(k => callbackQuery.Data!.StartsWith(k.Key))
.Value(client, callbackQuery, ctx); .Select(async k =>
{
await k.Value(client, callbackQuery, ctx);
return k;
});
break; break;
case { InlineQuery: { } inlineQuery }: case { InlineQuery: { } inlineQuery }:
await InlineHandler.FirstOrDefault(k => inlineQuery.Id.StartsWith(k.Key)) InlineHandler.Where(k => inlineQuery.Id.StartsWith(k.Key)).Select(async k =>
.Value(client, inlineQuery, ctx); {
await k.Value(client, inlineQuery, ctx);
return k;
});
break; break;
case { PreCheckoutQuery: { } preCheckoutQuery }: case { PreCheckoutQuery: { } preCheckoutQuery }:
if (PreCheckoutHandler != null) await PreCheckoutHandler(client, preCheckoutQuery, ctx); if (PreCheckoutHandler != null) await PreCheckoutHandler(client, preCheckoutQuery, ctx);