Example #1
0
        protected void Run(ClientPipelineArgs args)
        {
            if (item != null && language != null)
            {
                using (var ctx = new ItemTrackingProvider())
                {
                    var siteInfo = SiteInfoExtensions.GetSites(this.item, item.Language).FirstOrDefault();
                    if (siteInfo != null)
                    {
                        BroadcastHtmlCacheRepository broadcastHtmlCacheRepository = new BroadcastHtmlCacheRepository();
                        var results = ctx.UspDeleteCacheDataForSite(siteInfo.Name, siteInfo.Language);
                        foreach (var result in results)
                        {
                            broadcastHtmlCacheRepository.BroadcastMessage(new BroadcastHtmlCacheMessage
                            {
                                ToRemove = true,
                                SiteName = result.SiteName,
                                SiteLang = result.SiteLang
                            });
                        }

                        SheerResponse.Alert("All caches for all sites have been queued for clearing", true);
                    }
                    else
                    {
                        SheerResponse.Alert("Site could not be determined by the item in context", true);
                    }
                }
            }
            else
            {
                SheerResponse.Alert("Site could not be determined by the item in context", true);
            }
            args.WaitForPostBack(false);
        }
        public void SavePublishedItemsToCacheDb(object sender, EventArgs args)
        {
            var publishItemTracking = Sitecore.Context.Items[PublishItemTracking.Name] as PublishItemTracking;

            if (publishItemTracking != null)
            {
                foreach (var language in publishItemTracking.Languages)
                {
                    using (var ctx = new ItemTrackingProvider())
                    {
                        var tvpHelper = new TVPHelper();
                        foreach (var publishedItem in publishItemTracking.PublishedItems)
                        {
                            tvpHelper.ProcessPublishData(publishedItem.Key, language, publishedItem.Value == PublishOperation.PublishOperationEnum.Delete);
                        }
                        var tvp = tvpHelper.TVP.Tables[tvpHelper.CacheItem_TVP];
                        var cacheEntriesToClear = ctx.UspDeleteCacheData(tvp);

                        BroadcastHtmlCacheRepository broadcastHtmlCacheRepository = new BroadcastHtmlCacheRepository();

                        foreach (var cacheEntryToClear in cacheEntriesToClear)
                        {
                            broadcastHtmlCacheRepository.BroadcastMessage(new BroadcastHtmlCacheMessage
                            {
                                SiteName     = cacheEntryToClear.SiteName,
                                SiteLang     = cacheEntryToClear.SiteLang,
                                HtmlCacheKey = cacheEntryToClear.HtmlCacheKey,
                                ToRemove     = true
                            });
                        }
                    }
                }
            }
        }
Example #3
0
        protected void Run(ClientPipelineArgs args)
        {
            using (var ctx = new ItemTrackingProvider())
            {
                var siteInfos = SiteInfoExtensions.GetSites(this.Item, null);
                if (siteInfos != null)
                {
                    BroadcastHtmlCacheRepository broadcastHtmlCacheRepository = new BroadcastHtmlCacheRepository();
                    foreach (var siteInfo in siteInfos)
                    {
                        var results = ctx.UspDeleteCacheDataForSite(siteInfo.Name, siteInfo.Language);
                        foreach (var result in results)
                        {
                            broadcastHtmlCacheRepository.BroadcastMessage(new BroadcastHtmlCacheMessage
                            {
                                ToRemove = true,
                                SiteName = result.SiteName,
                                SiteLang = result.SiteLang
                            });
                        }
                    }

                    SheerResponse.Alert("Caches for the Site in all languages have been queue to be cleared", true);
                }
                else
                {
                    SheerResponse.Alert("Site could not be determined by the item in context", true);
                }

                args.WaitForPostBack(false);
            }
        }
Example #4
0
        public void Initialize(PipelineArgs args)
        {
            var siteNames = Factory.GetSiteInfoList().Select(x => x.Name);

            foreach (var siteName in siteNames)
            {
                using (var ctx = new ItemTrackingProvider())
                {
                    var htmlResults = ctx.UspGetCacheForSite(siteName);

                    SiteContext siteContext = Factory.GetSite(siteName);

                    foreach (var htmlResult in htmlResults)
                    {
                        CacheManager.GetHtmlCache(siteContext)
                        .SetHtml(htmlResult.HtmlCacheKey, htmlResult.HtmlCacheResult);
                    }
                }
            }
        }
 public override void Process(RequestEndArgs args)
 {
     using (var ctx = new ItemTrackingProvider())
     {
         try
         {
             var tvpHelper = HttpContext.Current.Items[TVPHelper.HttpContextKey] as TVPHelper;
             var dataset   = tvpHelper?.TVP;
             if (dataset != null && dataset.Tables[tvpHelper.CacheSite_TVP].Rows.Count > 0 &&
                 dataset.Tables[tvpHelper.CacheHtml_TVP].Rows.Count > 0 && dataset.Tables[tvpHelper.CacheHtml_CacheItem_TVP].Rows.Count > 0 &&
                 dataset.Tables[tvpHelper.CacheItem_TVP].Rows.Count > 0)
             {
                 ctx.UspMergeCacheData(dataset.Tables[tvpHelper.CacheSite_TVP],
                                       dataset.Tables[tvpHelper.CacheHtml_TVP], dataset.Tables[tvpHelper.CacheHtml_CacheItem_TVP],
                                       dataset.Tables[tvpHelper.CacheItem_TVP]);
             }
         }
         catch (Exception e)
         {
             Log.Error("Failed to write to cache store", e, this);
         }
     }
 }