public async Task <IQueryResult <IEnumerable <CarModel> > > Handle(GetAllCarsQuery request, CancellationToken cancellationToken) { var domainObjects = await _queryCarCatalogRepository.GetCarsAsync(); var models = _mapper.Map <List <CarModel> >(domainObjects); return(await Task.FromResult(new QueryResult <IEnumerable <CarModel> >(models))); }
public async Task <List <Car> > GetCarsAsync() { var cacheKey = $"{nameof(GetCarsAsync)}"; if (!_memoryCache.TryGetValue(cacheKey, out List <Car> cacheEntry)) { cacheEntry = await _queryCarCatalogRepository.GetCarsAsync(); var cacheEntryOptions = new MemoryCacheEntryOptions() .SetSlidingExpiration(TimeSpan.FromSeconds(5)); _memoryCache.Set(cacheKey, cacheEntry, cacheEntryOptions); } return(cacheEntry); }