Пример #1
0
        public async Task HandleCallbackQuery(TGCallbackQueryDTO dto)
        {
            var queryData = JsonConvert.DeserializeObject <TGCallbackQueryDTO.TGCallbackQueryDataDTO>(dto.Data);

            if (queryData.PageIndex == 0)
            {
                return;
            }
            var command = await _userService.FindLastCommandByTGUserId(dto.From.Id);

            var message = await _repository.TableNoTracking.FirstOrDefaultAsync(s => s.TGMessageId == queryData.MessageId);

            if (command == null || message == null)
            {
                return;
            }
            if (command.Type == UserCommandType.List)
            {
                var category = command.Text;
                if (!string.IsNullOrWhiteSpace(category) && category.StartsWith("全部群组", StringComparison.OrdinalIgnoreCase))
                {
                    category = null;
                }

                var paged         = _chatService.GetChatsPaged(pagedIndex: queryData.PageIndex, pageSize: 20, category: category);
                var messageDTO    = TGSendMessageDTO.BuildChatListMessage(paged, dto.Message.Chat.Id, queryData.MessageId);
                var editedMessage = TGSendMessageDTO.BuildChatListEditMessage(messageDTO, message.ResponseId);
                await _telegramHttpClient.EditMessage(editedMessage);
            }
        }