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)));
        }
Ejemplo n.º 2
0
        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);
        }