/// <summary> /// Returns Page object from cache. If page does not already exist in cache, it /// will be read and added to cache /// </summary> /// <param name="id"></param> /// <returns></returns> public static PageCache Read(int id) { string cacheKey = PageCache.CacheKey(id); ObjectCache cache = MemoryCache.Default; PageCache page = cache[cacheKey] as PageCache; if (page != null) { return(page); } else { Rock.Model.PageService pageService = new Model.PageService(); Rock.Model.Page pageModel = pageService.Get(id); if (pageModel != null) { pageModel.LoadAttributes(); page = PageCache.CopyModel(pageModel); cache.Set(cacheKey, page, new CacheItemPolicy()); return(page); } else { return(null); } } }
/// <summary> /// Saves the attribute values for the page /// </summary> /// <param name="personId">The person id.</param> public void SaveAttributeValues(int?personId) { Rock.Model.PageService pageService = new Model.PageService(); Rock.Model.Page pageModel = pageService.Get(this.Id); if (pageModel != null) { pageModel.LoadAttributes(); foreach (var attribute in pageModel.Attributes) { Rock.Attribute.Helper.SaveAttributeValues(pageModel, attribute.Value, this.AttributeValues[attribute.Key], personId); } } }