public async Task <IEnumerable <IHackerNewsArticle> > GetAllTopStoriesAsync() { var cacheKey = "HackerNewsServiceCaching.GetAllTopStoriesAsync"; if (_memoryCache.TryGetValue <IEnumerable <IHackerNewsArticle> >(cacheKey, out var storyTask)) { return(storyTask); } else { var topStories = await _innerHackerNewsService.GetAllTopStoriesAsync(); _memoryCache.Set(cacheKey, topStories, TimeSpan.FromMinutes(10)); return(topStories); } }