/// <summary> /// Retrieve the object from the cache. A string key is passed as parameter. /// </summary> /// <param name="key">key of the entry.</param> /// <returns>cache entry.</returns> internal override CacheEntry GetInternal(object key, bool isUserOperation, OperationContext operationContext) { if (ServerMonitor.MonitorActivity) { ServerMonitor.LogClientActivity("LocalCache.Get", ""); } if (_cacheStore == null) { throw new InvalidOperationException(); } CacheEntry e = (CacheEntry)_cacheStore.Get(key); if (e != null) { EvictionHint evh = e.EvictionHint; if (isUserOperation && _evictionPolicy != null && evh != null && evh.IsVariant) { _evictionPolicy.Notify(key, evh, null); } } return(e); }
/// <summary> /// 取得 Cache Object /// </summary> /// <returns> /// Cache Object /// </returns> public T Get() { if (!HasData()) { Bind(); } var model = _cacheStorage.Get(StorageKey); return((model == null) ? default(T) : model.Data); }
///// <inheritdoc /> //public T Get<T>(string key) //{ // T cacheData = _cacheStorage.Get<T>(key).Result; // if (cacheData == null) // { // return default; // } // return cacheData; //} ///// <inheritdoc /> //public T Get<T>(string key, Func<T> dataSourceFunc, TimeSpan expirationTimeSpan) //{ // T cacheData = _cacheStorage.Get<T>(key).Result; // if (cacheData != null) // { // return cacheData; // } // Task<T> task = TasksWorker.RegisterRequestAndReturnTask(key, dataSourceFunc, _cacheStorage, expirationTimeSpan); // return task.Result; //} #endregion /// <inheritdoc /> public async Task <T> GetAsync <T>(string key, Func <T> dataSourceFunc, TimeSpan expirationTimeSpan) { CacheData <T> cacheData = await _cacheStorage.Get <T>(key); if (cacheData != null) { return(cacheData.Value); } return(await _concurrentCacheTasksManager.RegisterRequestAndReturnTask(key, dataSourceFunc, _cacheStorage, expirationTimeSpan).ConfigureAwait(false)); }
public Core.Domain.Project.Project GetByID(int projectID) { var list = new List <IProject>(); var query = new Query(); query.Add(new Criterion("ID", projectID, CriteriaOperator.Equal)); if (_cache.Get <IList <IProject> >(RAM.Core.ResourceStrings.Cache_Projects) == null) { return(_repository.FindBy(query).FirstOrDefault <Project>()); } return(_cache.Get <List <Project> >(RAM.Core.ResourceStrings.Cache_Projects).SingleOrDefault(s => s.ID == projectID)); }
public Banner GetByID(int postID) { var list = new List <IBanner>(); var query = new Query(); query.Add(new Criterion("ID", postID, CriteriaOperator.Equal)); if (_cache.Get <IList <IBanner> >(RAM.Core.ResourceStrings.Cache_Banners) == null) { return(_repository.FindBy(query).FirstOrDefault <Banner>()); } return(_cache.Get <List <Banner> >(RAM.Core.ResourceStrings.Cache_Banners).SingleOrDefault(s => s.ID == postID)); }
public T Get <T>(string key, Func <T> getFunc, string group = null) { var val = repo.Get(key); if (val != null) { return((T)val); } if (group != null) { groups.AddOrUpdate( group, g => new Tuple <object, HashSet <string> >(new object(), new HashSet <string> { key }), (gname, tuple) => { lock (tuple.Item1) { tuple.Item2.Add(key); } return(tuple); }); } val = getFunc(); repo.Insert(key, val); return((T)val); }
/// <summary> /// Adiciona uma dependencia de sincronização para o item associado com a chave informada. /// </summary> /// <param name="key">Chave do item do cache.</param> /// <param name="syncDependency">Instancia da dependencia de sincronização.</param> /// <returns>True caso a operação tenha sido executada com sucesso.</returns> internal override bool AddInternal(object key, CacheSyncDependency syncDependency) { if (_cacheStore == null) { throw new InvalidOperationException(); } CacheEntry item = (CacheEntry)_cacheStore.Get(key); if (item == null) { return(false); } item.SyncDependency = syncDependency; _cacheStore.Insert(key, item); item.LastModifiedTime = DateTime.Now; return(true); }
/// <summary> /// 刪除Cache 相依的其他分頁 /// </summary> protected override void RemoveDependancyCache() { var pageKeys = _sectionCacheStorage.Get(SectionKey); if (pageKeys != null) { foreach (var pageKey in pageKeys) { if (pageKey == StorageKey) { continue; } _cacheStorage.Delete(pageKey); } _sectionCacheStorage.Delete(SectionKey); } }
public GetBlogsResponse GetAll() { var response = new GetBlogsResponse(); var list = new List <IBlog>(); if (_cache.Get <IList <IBlog> >(RAM.Core.ResourceStrings.Cache_BlogPosts) == null) { list = _repository.FindAll() .Where(o => o.IsActive = true) .OrderByDescending(o => o.DatePosted).ToList <IBlog>(); _cache.Store(RAM.Core.ResourceStrings.Cache_BlogPosts, list); } else { list = _cache.Get <List <IBlog> >(RAM.Core.ResourceStrings.Cache_BlogPosts); } if (list != null) { response.Success = true; response.Message = "Blogs Retrieved Successfully!"; response.BlogList = list.ToList <IBlog>(); } else { response.Success = false; response.Message = "Blogs Retrieved Failed!"; } return(response); }
public IList <Customer> GetAllCustomers() { const string storageKey = "GetAllCustomers"; IList <Customer> customers = _cacheStorage.Get <List <Customer> >(storageKey); if (customers == null) { customers = _customerRepository.GetCustomers(); _cacheStorage.Store(storageKey, customers); } return(customers); }
public IResult <IReadOnlyCollection <Commercial> > GetCommercials() { IReadOnlyCollection <Commercial> commercials = _cacheStorage.Get <IReadOnlyCollection <Commercial> >(CACHE_KEY); if (commercials == null) { var commercialResult = _commercialProvider.GetCommercials(); if (commercialResult.IsSuccess()) { commercials = commercialResult.GetSuccessResult(); _cacheStorage.Add(CACHE_KEY, commercials, CACHE_MINUTES); } else { return(new NoneResult <IReadOnlyCollection <Commercial> >()); } } return(new SuccessResult <IReadOnlyCollection <Commercial> >(commercials)); }
public Token GetToken() { if (!tokenIsProvided()) { throw new TokenExpiredException(); } Token token = new Token { AccessValue = (string)storage.Get("token"), ExpirySeconds = (int)storage.Get("tokenexpiry") }; validateToken(token, (DateTime)storage.Get("tokendatetime")); return(token); }
/// <summary> /// 获取缓存数据 /// </summary> /// <param name="key"></param> /// <returns></returns> public static Object Get(String key) { return(cacheInstance.Get(key)); }