Пример #1
0
 public async Task <PaginatedList <ConversationMessageDto> > Handle(ConversationMessagesQuery request,
                                                                    CancellationToken cancellationToken)
 {
     try
     {
         return(await ReadFromCache(request));
     }
     catch (NotFoundException)
     {
         return(await ReadFromDatabase(request));
     }
 }
Пример #2
0
            private async Task <PaginatedList <ConversationMessageDto> > ReadFromDatabase(ConversationMessagesQuery query)
            {
                var contacts = await _context.ConversationMessages
                               .Where(e => e.OwnerUserId == query.OwnerUserId)
                               .ProjectTo <ConversationMessageDto>(_mapper.ConfigurationProvider)
                               .PaginatedListAsync(query.PageNumber, query.PageSize);

                await _cache.CreateAsync(contacts);

                return(contacts);
            }
Пример #3
0
            private async Task <PaginatedList <ConversationMessageDto> > ReadFromCache(ConversationMessagesQuery query)
            {
                var cache = await _cache.GetAsync <PaginatedList <ConversationMessageDto> >();

                cache.Restore(query.PageNumber, query.PageSize);

                return(cache);
            }