public async Task <List <StockView> > GetTrendingStocks(int topN, CancellationToken cancellationToken)
        {
            string cacheKey = string.Format(CacheKey, topN);

            if (_memoryCache.TryGetValue(cacheKey, out List <StockView> stockViews))
            {
                return(await Task.FromResult(stockViews));
            }

            var repoStockViews = await _tradeViewRepository.GetTrendingStocks(topN, cancellationToken);

            _memoryCache.Set(cacheKey, repoStockViews, new MemoryCacheEntryOptions()
            {
                AbsoluteExpiration = DateTime.Now.AddMinutes(60 * 60 * 60), //add in confifuration file
                Priority           = CacheItemPriority.Normal               //add in confifuration file
            });

            return(repoStockViews);
        }