/// <summary> /// Returns FieldType object from cache. If fieldType does not already exist in cache, it /// will be read and added to cache /// </summary> /// <param name="id"></param> /// <returns></returns> public static FieldTypeCache Read(int id) { string cacheKey = FieldTypeCache.CacheKey(id); ObjectCache cache = MemoryCache.Default; FieldTypeCache fieldType = cache[cacheKey] as FieldTypeCache; if (fieldType != null) { return(fieldType); } else { var fieldTypeService = new FieldTypeService(); var fieldTypeModel = fieldTypeService.Get(id); if (fieldTypeModel != null) { fieldTypeModel.LoadAttributes(); fieldType = new FieldTypeCache(fieldTypeModel); var cachePolicy = new CacheItemPolicy(); cache.Set(cacheKey, fieldType, cachePolicy); cache.Set(fieldType.Guid.ToString(), fieldType.Id, cachePolicy); return(fieldType); } else { return(null); } } }
/// <summary> /// Reads the specified GUID. /// </summary> /// <param name="guid">The GUID.</param> /// <returns></returns> public static FieldTypeCache Read(Guid guid) { ObjectCache cache = MemoryCache.Default; object cacheObj = cache[guid.ToString()]; if (cacheObj != null) { return(Read((int)cacheObj)); } else { var fieldTypeService = new FieldTypeService(); var fieldTypeModel = fieldTypeService.Get(guid); if (fieldTypeModel != null) { fieldTypeModel.LoadAttributes(); var fieldType = new FieldTypeCache(fieldTypeModel); var cachePolicy = new CacheItemPolicy(); cache.Set(FieldTypeCache.CacheKey(fieldType.Id), fieldType, cachePolicy); cache.Set(fieldType.Guid.ToString(), fieldType.Id, cachePolicy); return(fieldType); } else { return(null); } } }
/// <summary> /// Returns FieldType object from cache. If fieldType does not already exist in cache, it /// will be read and added to cache /// </summary> /// <param name="id"></param> /// <returns></returns> public static FieldTypeCache Read(int id) { string cacheKey = FieldTypeCache.CacheKey(id); ObjectCache cache = MemoryCache.Default; FieldTypeCache fieldType = cache[cacheKey] as FieldTypeCache; if (fieldType != null) { return(fieldType); } else { Rock.Model.FieldTypeService fieldTypeService = new Rock.Model.FieldTypeService(); Rock.Model.FieldType fieldTypeModel = fieldTypeService.Get(id); if (fieldTypeModel != null) { fieldType = CopyModel(fieldTypeModel); cache.Set(cacheKey, fieldType, new CacheItemPolicy()); return(fieldType); } else { return(null); } } }
/// <summary> /// Reads the specified field type model. /// </summary> /// <param name="fieldTypeModel">The field type model.</param> /// <returns></returns> public static FieldTypeCache Read(Rock.Model.FieldType fieldTypeModel) { string cacheKey = FieldTypeCache.CacheKey(fieldTypeModel.Id); ObjectCache cache = MemoryCache.Default; FieldTypeCache fieldType = cache[cacheKey] as FieldTypeCache; if (fieldType != null) { return(fieldType); } else { fieldType = FieldTypeCache.CopyModel(fieldTypeModel); cache.Set(cacheKey, fieldType, new CacheItemPolicy()); return(fieldType); } }
/// <summary> /// Reads the specified field type model. /// </summary> /// <param name="fieldTypeModel">The field type model.</param> /// <returns></returns> public static FieldTypeCache Read(FieldType fieldTypeModel) { string cacheKey = FieldTypeCache.CacheKey(fieldTypeModel.Id); ObjectCache cache = MemoryCache.Default; FieldTypeCache fieldType = cache[cacheKey] as FieldTypeCache; if (fieldType != null) { return(fieldType); } else { fieldType = new FieldTypeCache(fieldTypeModel); var cachePolicy = new CacheItemPolicy(); cache.Set(cacheKey, fieldType, cachePolicy); cache.Set(fieldType.Guid.ToString(), fieldType.Id, cachePolicy); return(fieldType); } }
/// <summary> /// Removes fieldType from cache /// </summary> /// <param name="id"></param> public static void Flush(int id) { ObjectCache cache = MemoryCache.Default; cache.Remove(FieldTypeCache.CacheKey(id)); }
/// <summary> /// Removes fieldType from cache /// </summary> /// <param name="id"></param> public static void Flush(int id) { FlushCache(FieldTypeCache.CacheKey(id)); FlushCache("Rock:FieldType:All"); }
/// <summary> /// Reads the specified field type model. /// </summary> /// <param name="fieldTypeModel">The field type model.</param> /// <returns></returns> public static FieldTypeCache Read(FieldType fieldTypeModel) { return(GetOrAddExisting(FieldTypeCache.CacheKey(fieldTypeModel.Id), () => LoadByModel(fieldTypeModel))); }
/// <summary> /// Returns FieldType object from cache. If fieldType 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 FieldTypeCache Read(int id, RockContext rockContext = null) { return(GetOrAddExisting(FieldTypeCache.CacheKey(id), () => LoadById(id, rockContext))); }