// Helpers. private async Task <PaginatedList <ConversationDto> > ReadFromDatabase(ConversationsQuery query) { var conversations = await _context.Conversations .Where(e => e.LeftUserId == query.OwnerUserId || e.RightUserId == query.OwnerUserId) .OrderBy(x => x.ConversationId) .ProjectTo <ConversationDto>(_mapper.ConfigurationProvider) .PaginatedListAsync(query.PageNumber, query.PageSize) .MapMessageAsync(_context, _mapper); await _usersFacade.MapAsync(conversations); await _cache.CreateAsync(conversations); return(conversations); }
public async Task <PaginatedList <ConversationDto> > Handle(ConversationsQuery request, CancellationToken cancellationToken) { return(await ReadFromDatabase(request)); #if CACHE try { return(await ReadFromCache()); } catch (NotFoundException) { return(await ReadFromDatabase(request)); } #endif }