/// <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> /// Copies the model. /// </summary> /// <param name="fieldTypeModel">The field type model.</param> /// <returns></returns> public static FieldTypeCache CopyModel(Rock.Model.FieldType fieldTypeModel) { FieldTypeCache fieldType = new FieldTypeCache(fieldTypeModel); fieldType.Field = Rock.Field.Helper.InstantiateFieldType(fieldType.Assembly, fieldType.Class); return(fieldType); }
/// <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); } }
private FieldTypeCache(Rock.Model.FieldType model) : base(model) { }