public List <Link> GetArticles(long?newsProviderId, string newsSourceId) { if (us.Empty(newsSourceId) || !newsProviderId.HasValue) { return(null); } NewsProviderDef providerDef = ProviderDefs.FirstOrDefault(x => x.Id == newsProviderId.Value); if (providerDef == null) { return(null); } INewsProvider provider = factory.GetProvider(providerDef); if (provider == null) { return(null); } string key = op.Value.Cache.NewsSourceKey + newsProviderId.Value + newsSourceId; List <Link> result; if (cache.TryGetValue(key, out result)) { return(result); } result = provider.GetLinks(newsSourceId).ToList(); cache.Set(key, result, new MemoryCacheEntryOptions() .SetAbsoluteExpiration(TimeSpan.FromMinutes(op.Value.Cache.NewsArticlesRefreshInterval))); return(result); }