/// <summary> /// 从缓存获取消息记录 /// </summary> /// <param name="input"></param> /// <returns></returns> public async Task <PagedResultDto <MessageListDto> > GetMessageAsync(GetMessageInput input) { var customer = await _customerRepository.FirstOrDefaultAsync(input.CustomerId); if (customer == null) { throw new UserFriendlyException("当前用户不存在"); } var list = await _cacheManager.GetCache(CacheConsts.MessageCache) .GetAsync(CacheConsts.MessageCache, StoreCacheMessage); if (!list.Any()) { return(new PagedResultDto <MessageListDto>(0, list)); } var t = list.Where(c => c.Type == input.Type && c.ReceiverId == input.SouceId); var count = t.Count(); var result = t.Skip(input.SkipCount).Take(input.MaxResultCount).OrderBy(c => c.CreationTime).ToList(); return(new PagedResultDto <MessageListDto>(count, result)); }
public async Task <CommandResult <GetMessageResult> > Message([FromServices] GetMessageCommand getMessageCommand, TypeBox typeBox, string boxId, string chatId) { var sendMessageInput = new GetMessageInput { ChatId = chatId, BoxId = new BoxId { Id = boxId, Type = typeBox } }; var userInput = new UserInput <GetMessageInput> { UserId = User.Identity.IsAuthenticated ? User.GetUserId() : string.Empty, Data = sendMessageInput }; var result = await Business .InvokeAsync <GetMessageCommand, UserInput <GetMessageInput>, CommandResult <GetMessageResult> >( getMessageCommand, userInput); return(result); }