/// <summary> /// Returns DefinedValue object from cache. If definedValue does not already exist in cache, it /// will be read and added to cache /// </summary> /// <param name="id"></param> /// <returns></returns> public static DefinedValueCache Read(int id) { string cacheKey = DefinedValueCache.CacheKey(id); ObjectCache cache = MemoryCache.Default; DefinedValueCache definedValue = cache[cacheKey] as DefinedValueCache; if (definedValue != null) { return(definedValue); } else { Rock.Model.DefinedValueService definedValueService = new Rock.Model.DefinedValueService(); Rock.Model.DefinedValue definedValueModel = definedValueService.Get(id); if (definedValueModel != null) { definedValue = CopyModel(definedValueModel); cache.Set(cacheKey, definedValue, new CacheItemPolicy()); return(definedValue); } else { return(null); } } }
/// <summary> /// Reads the specified GUID. /// </summary> /// <param name="guid">The GUID.</param> /// <returns></returns> public static DefinedValueCache Read(Guid guid) { ObjectCache cache = MemoryCache.Default; object cacheObj = cache[guid.ToString()]; if (cacheObj != null) { return(Read((int)cacheObj)); } else { var definedValueService = new DefinedValueService(); var definedValueModel = definedValueService.Get(guid); if (definedValueModel != null) { definedValueModel.LoadAttributes(); var definedValue = new DefinedValueCache(definedValueModel); var cachePolicy = new CacheItemPolicy(); cache.Set(DefinedValueCache.CacheKey(definedValue.Id), definedValue, cachePolicy); cache.Set(definedValue.Guid.ToString(), definedValue.Id, cachePolicy); return(definedValue); } else { return(null); } } }
/// <summary> /// Returns DefinedValue object from cache. If definedValue does not already exist in cache, it /// will be read and added to cache /// </summary> /// <param name="id"></param> /// <returns></returns> public static DefinedValueCache Read(int id) { string cacheKey = DefinedValueCache.CacheKey(id); ObjectCache cache = MemoryCache.Default; DefinedValueCache definedValue = cache[cacheKey] as DefinedValueCache; if (definedValue != null) { return(definedValue); } else { var definedValueService = new DefinedValueService(); var definedValueModel = definedValueService.Get(id); if (definedValueModel != null) { definedValueModel.LoadAttributes(); definedValue = new DefinedValueCache(definedValueModel); var cachePolicy = new CacheItemPolicy(); cache.Set(cacheKey, definedValue, cachePolicy); cache.Set(definedValue.Guid.ToString(), definedValue.Id, cachePolicy); return(definedValue); } else { return(null); } } }
/// <summary> /// Reads the specified defined value model. /// </summary> /// <param name="definedValueModel">The defined value model.</param> /// <returns></returns> public static DefinedValueCache Read(Rock.Model.DefinedValue definedValueModel) { string cacheKey = DefinedValueCache.CacheKey(definedValueModel.Id); ObjectCache cache = MemoryCache.Default; DefinedValueCache definedValue = cache[cacheKey] as DefinedValueCache; if (definedValue != null) { return(definedValue); } else { definedValue = DefinedValueCache.CopyModel(definedValueModel); cache.Set(cacheKey, definedValue, new CacheItemPolicy()); return(definedValue); } }
/// <summary> /// Removes definedValue from cache /// </summary> /// <param name="id"></param> public static void Flush(int id) { ObjectCache cache = MemoryCache.Default; cache.Remove(DefinedValueCache.CacheKey(id)); }
/// <summary> /// Removes definedValue from cache /// </summary> /// <param name="id"></param> public static void Flush(int id) { FlushCache(DefinedValueCache.CacheKey(id)); }
/// <summary> /// Reads the specified defined value model. /// </summary> /// <param name="definedValueModel">The defined value model.</param> /// <param name="rockContext">The rock context.</param> /// <returns></returns> public static DefinedValueCache Read(DefinedValue definedValueModel, RockContext rockContext = null) { return(GetOrAddExisting(DefinedValueCache.CacheKey(definedValueModel.Id), () => LoadByModel(definedValueModel))); }
/// <summary> /// Returns DefinedValue object from cache. If definedValue does not already exist in cache, it /// will be read and added to cache /// </summary> /// <param name="id">The identifier.</param> /// <param name="rockContext">The rock context.</param> /// <returns></returns> public static DefinedValueCache Read(int id, RockContext rockContext = null) { return(GetOrAddExisting(DefinedValueCache.CacheKey(id), () => LoadById(id, rockContext))); }