public async Task <IActionResult> GetProvidedService(int id) { if (_memorycache.TryGetValue(string.Format(GET_PROVIDEDSERVICES_CACHE, id), out GetProvidedServiceViewModel providedService)) { return(Ok(providedService)); } var query = new GetProvidedServiceQuery(id); var result = await _mediator.Send(query); if (result == null) { return(NotFound()); } var memoryCacheOptions = new MemoryCacheEntryOptions { //Daqui a 1h, irei invalidar a cache AbsoluteExpirationRelativeToNow = TimeSpan.FromSeconds(3600), //Tempo decorrido sem requisições => Passa 20 minutos seguidos sem nenhuma requisição SlidingExpiration = TimeSpan.FromSeconds(1200) }; _memorycache.Set(string.Format(GET_PROVIDEDSERVICES_CACHE, id), result, memoryCacheOptions); return(Ok(result)); }
public async Task <IActionResult> GetById(int id) { var query = new GetProvidedServiceQuery(id); var result = await _mediator.Send(query); if (result == null) { return(NotFound()); } return(Ok(result)); }