コード例 #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);
        }
コード例 #2
0
        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
                            });
                        }
                    }
                }
            }
        }
コード例 #3
0
 public override void Process(RequestEndArgs args)
 {
     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)
         {
             foreach (DataRow cacheSiteDr in dataset.Tables[tvpHelper.CacheSite_TVP].Rows)
             {
                 foreach (DataRow cacheHtmlDr in dataset.Tables[tvpHelper.CacheHtml_TVP].Rows)
                 {
                     BroadcastHtmlCacheRepository broadcastHtmlCacheRepository =
                         new BroadcastHtmlCacheRepository();
                     broadcastHtmlCacheRepository.BroadcastMessage(new BroadcastHtmlCacheMessage
                     {
                         SiteName        = cacheSiteDr["SiteName"].ToString(),
                         SiteLang        = cacheSiteDr["SiteLang"].ToString(),
                         HtmlCacheKey    = cacheHtmlDr["HtmlCacheKey"].ToString(),
                         HtmlCacheResult = cacheHtmlDr["HtmlCacheResult"].ToString(),
                         ToRemove        = false
                     });
                 }
             }
         }
     }
     catch (Exception e)
     {
         Log.Error("Failed to write to cache store", e, this);
     }
 }
コード例 #4
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);
            }
        }