Пример #1
0
        public async Task HandleUpdate(Update update, CancellationToken cancellationToken)
        {
            var isAllowedUser = await _auth.IsAllowedUser(update);

            if (!isAllowedUser)
            {
                await _botService.Client.SendTextMessageAsync(
                    chatId : update.Message.Chat.Id,
                    text : "Вы кто такие? Я вас не звал. Идите на х*й!", cancellationToken : cancellationToken);

                return;
            }

            var handler = update.Type switch
            {
                UpdateType.Message => _messageHandler.HandleMessageAsync(update.Message),
                UpdateType.EditedMessage => _messageHandler.HandleMessageAsync(update.Message),
                UpdateType.CallbackQuery => _callbackHandler.HandleCallbackQuery(update.CallbackQuery),
                // UpdateType.InlineQuery => _inlineHandler.HandleInlineQuery(update.InlineQuery),
                // UpdateType.ChosenInlineResult => _inlineHandler.HandleChosenInlineResult(update.ChosenInlineResult),
                // UpdateType.Unknown:
                // UpdateType.ChannelPost:
                // UpdateType.EditedChannelPost:
                // UpdateType.ShippingQuery:
                // UpdateType.PreCheckoutQuery:
                // UpdateType.Poll:
                _ => UnknownUpdateHandlerAsync(update)
            };

            try
            {
                await handler;
            }
            catch (Exception exception)
            {
                await HandleErrorAsync(exception, cancellationToken);
            }
        }