Exemplo n.º 1
0
        /// <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);
                }
            }
        }
Exemplo n.º 2
0
        /// <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);
        }
Exemplo n.º 3
0
        /// <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);
            }
        }
Exemplo n.º 4
0
 private FieldTypeCache(Rock.Model.FieldType model) : base(model)
 {
 }