public async Task <IQueryResult <CarModel> > Handle(GetCarByIdQuery request, CancellationToken cancellationToken) { var domainObject = await _queryCarCatalogRepository.GetCarByIdAsync(request.Id); var model = _mapper.Map <CarModel>(domainObject); return(await Task.FromResult(new QueryResult <CarModel>(model))); }
public async Task <Car> GetCarByIdAsync(Guid id) { var cacheKey = $"{nameof(GetCarByIdAsync)}_{id}"; if (!_memoryCache.TryGetValue(cacheKey, out Car cacheEntry)) { cacheEntry = await _queryCarCatalogRepository.GetCarByIdAsync(id); var cacheEntryOptions = new MemoryCacheEntryOptions() .SetSlidingExpiration(TimeSpan.FromSeconds(5)); _memoryCache.Set(cacheKey, cacheEntry, cacheEntryOptions); } return(cacheEntry); }