Example #1
0
        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);
        }
Example #2
0
        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));
        }
Example #4
0
 public object OnBefore(MethodInfo targetMethod, object[] args, ICacheRepository cacheRepository)
 {
     return(cacheRepository.GetCache(getKeyString(targetMethod, args)));
 }