示例#1
0
        public async Task <ActionResult <MonsterDto> > GetById(int id)
        {
            try
            {
                var cacheKey = $"Monster-{id.ToString()}";
                if (_memoryCache.TryGetValue(cacheKey, out MonsterDto mapped))
                {
                    return(Ok(mapped));
                }

                var monster = await _service.GetMonsterById(id);

                if (monster == null)
                {
                    return(NotFound("Monstro não encontrado"));
                }

                mapped = _mapper.Map <MonsterDto>(monster);

                _memoryCache.Set(cacheKey, mapped, TimeSpan.FromDays(2));
                // ReSharper disable once TemplateIsNotCompileTimeConstantProblem
                _logger.LogInformation($"Request {Request?.Method}: {Request?.Path.Value}");

                return(Ok(mapped));
            }
            catch (Exception e)
            {
                return(BadRequest("Erro ao captar um monstro"));
            }
        }
        public async Task <IHttpActionResult> Get(int id)
        {
            var monster = await Task.Run(() => _monsterService.GetMonsterById(id));

            return(Ok(monster));
        }