public async Task <CachedResponse <T> > GetAsync <T>() where T : Cacheable { var cachedObject = await cacheRepository.GetCache(new Cache(typeof(T).Name)); if (cachedObject != null) { var obj = cachedObject.Data != null?JsonConvert.DeserializeObject <T>(cachedObject.Data) : null; return(new CachedResponse <T>(obj, cachedObject.Updated)); } return(null); }
public async Task <IEnumerable <DataModel> > GetLatest(int recordsCount) { if (_cacheRepository.GetCache(CacheKeys.MarketKeys.LatestRecords, out IEnumerable <DataModel> latest)) { var latestrecords = latest.OrderByDescending(x => x.Date).Take(recordsCount); return(latest.OrderBy(x => x.Date)); } latest = (await _repository.Get().OrderByDescending(x => x.Date).Take(recordsCount).ToListAsync()) .OrderBy(x => x.Date); _cacheRepository.SetOrUpdate(latest, CacheKeys.MarketKeys.LatestRecords); return(latest); }
public async Task <ActionResult <CacheObject> > GetCache(string metadata) { var message = cache.GetCache(metadata); return(Ok(message)); }
public object OnBefore(MethodInfo targetMethod, object[] args, ICacheRepository cacheRepository) { return(cacheRepository.GetCache(getKeyString(targetMethod, args))); }