コード例 #1
0
        [Route(@"api/message/update")] // webhook uri part
        public async Task <OkResult> Update([FromBody] Update update)
        {
            var commands = Bot.Commands;
            var client   = await Bot.Get();

            Telegram.Bot.Types.Message message;
            int  index;
            long chatId;

            switch (update.Type)
            {
            case UpdateType.Message:
                message = update.Message;
                chatId  = message.Chat.Id;
                var messageId = message.MessageId;
                index = checkUser(chatId);
                if (message.Text[0] == '/')
                {
                    Bot.users[index].status = Status.Usual;
                }
                if (Bot.users[index].status == Status.Usual)
                {
                    foreach (var command in commands)
                    {
                        if (command.Contains(message.Text))
                        {
                            await command.Execute(message, client);

                            break;
                        }
                    }
                }
                else
                {
                    await anotherStatus(message, index, client);
                }

                break;

            case UpdateType.CallbackQuery:
                chatId = update.CallbackQuery.Message.Chat.Id;

                index = checkUser(chatId);

                await CallBackHandler.callbackHandler(update.CallbackQuery, client, Bot.users, index);

                break;
            }
            return(Ok());
        }