Example #1
0
        private static BlockCache CopyModel(Rock.Model.Block blockModel)
        {
            BlockCache block = new BlockCache(blockModel);

            block.AttributeValues = blockModel.AttributeValues;

            block.AttributeIds = new List <int>();
            if (blockModel.Attributes != null)
            {
                foreach (var attribute in blockModel.Attributes)
                {
                    block.AttributeIds.Add(attribute.Value.Id);
                }
            }

            return(block);
        }
Example #2
0
        /// <summary>
        /// Adds Block model to cache, and returns cached object
        /// </summary>
        /// <param name="blockModel"></param>
        /// <returns></returns>
        public static BlockCache Read(Rock.Model.Block blockModel)
        {
            string cacheKey = BlockCache.CacheKey(blockModel.Id);

            ObjectCache cache = MemoryCache.Default;
            BlockCache  block = cache[cacheKey] as BlockCache;

            if (block != null)
            {
                return(block);
            }
            else
            {
                block = BlockCache.CopyModel(blockModel);
                cache.Set(cacheKey, block, new CacheItemPolicy());

                return(block);
            }
        }
Example #3
0
        /// <summary>
        /// Adds Block model to cache, and returns cached object
        /// </summary>
        /// <param name="blockModel">The block model.</param>
        /// <returns></returns>
        public static BlockCache Read(Block blockModel)
        {
            string cacheKey = BlockCache.CacheKey(blockModel.Id);

            ObjectCache cache = MemoryCache.Default;
            BlockCache  block = cache[cacheKey] as BlockCache;

            if (block != null)
            {
                return(block);
            }
            else
            {
                block = new BlockCache(blockModel);

                var cachePolicy = new CacheItemPolicy();
                cache.Set(cacheKey, block, cachePolicy);
                cache.Set(block.Guid.ToString(), block.Id, cachePolicy);

                return(block);
            }
        }
 /// <summary>
 /// Removes block from cache
 /// </summary>
 /// <param name="id"></param>
 public static void Flush(int id)
 {
     FlushCache(BlockCache.CacheKey(id));
 }
 /// <summary>
 /// Returns Block object from cache.  If block does not already exist in cache, it
 /// will be read and added to cache
 /// </summary>
 /// <param name="id">The id.</param>
 /// <param name="rockContext">The rock context.</param>
 /// <returns></returns>
 public static BlockCache Read(int id, RockContext rockContext = null)
 {
     return(GetOrAddExisting(BlockCache.CacheKey(id),
                             () => LoadById(id, rockContext)));
 }
Example #6
0
        /// <summary>
        /// Removes block from cache
        /// </summary>
        /// <param name="id"></param>
        public static void Flush(int id)
        {
            ObjectCache cache = MemoryCache.Default;

            cache.Remove(BlockCache.CacheKey(id));
        }
Example #7
0
 /// <summary>
 /// Adds Block model to cache, and returns cached object
 /// </summary>
 /// <param name="blockModel">The block model.</param>
 /// <returns></returns>
 public static BlockCache Read(Block blockModel)
 {
     return(GetOrAddExisting(BlockCache.CacheKey(blockModel.Id),
                             () => LoadByModel(blockModel)));
 }