Пример #1
0
 private void UnpublishedPageCacheRefresher_CacheUpdated(UnpublishedPageCacheRefresher sender, CacheRefresherEventArgs e)
 {
     if (e.MessageType == MessageType.RemoveByInstance && e.MessageObject is IContent instance)
     {
         GuidToIdCache.TryRemove(instance);
     }
 }
Пример #2
0
        /// <summary>
        /// Handles index management for all unpublished content events - basically handling saving/copying/deleting
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        /// <remarks>
        /// This will execute on all servers taking part in load balancing
        /// </remarks>
        static void UnpublishedPageCacheRefresherCacheUpdated(UnpublishedPageCacheRefresher sender, CacheRefresherEventArgs e)
        {
            if (Suspendable.ExamineEvents.CanIndex == false)
            {
                return;
            }

            switch (e.MessageType)
            {
            case MessageType.RefreshById:
                var c1 = ApplicationContext.Current.Services.ContentService.GetById((int)e.MessageObject);
                if (c1 != null)
                {
                    ReIndexForContent(c1, false);
                }
                break;

            case MessageType.RemoveById:

                // This is triggered when the item is permanently deleted

                DeleteIndexForEntity((int)e.MessageObject, false);
                break;

            case MessageType.RefreshByInstance:
                var c3 = e.MessageObject as IContent;
                if (c3 != null)
                {
                    ReIndexForContent(c3, false);
                }
                break;

            case MessageType.RemoveByInstance:

                // This is triggered when the item is permanently deleted

                var c4 = e.MessageObject as IContent;
                if (c4 != null)
                {
                    DeleteIndexForEntity(c4.Id, false);
                }
                break;

            case MessageType.RefreshByJson:

                var jsonPayloads = UnpublishedPageCacheRefresher.DeserializeFromJsonPayload((string)e.MessageObject);
                if (jsonPayloads.Any())
                {
                    foreach (var payload in jsonPayloads)
                    {
                        switch (payload.Operation)
                        {
                        case UnpublishedPageCacheRefresher.OperationType.Deleted:

                            //permanently remove from all indexes

                            DeleteIndexForEntity(payload.Id, false);

                            break;

                        default:
                            throw new ArgumentOutOfRangeException();
                        }
                    }
                }

                break;

            case MessageType.RefreshAll:
            default:
                //We don't support these, these message types will not fire for unpublished content
                break;
            }
        }
 private void UnpublishedPageCacheRefresherOnCacheUpdated(UnpublishedPageCacheRefresher sender,
                                                          CacheRefresherEventArgs cacheRefresherEventArgs)
 {
     ClearCache();
 }
 private void UnpublishedPageCacheRefresherOnCacheUpdated(UnpublishedPageCacheRefresher sender, CacheRefresherEventArgs cacheRefresherEventArgs)
 {
     _logService.Debug <ClearDonutOutputCache>("UnpublishedPageCacheRefresherOnCacheUpdated");
     ClearCache();
 }
 private void UnpublishedPageCacheRefresherOnCacheUpdated(UnpublishedPageCacheRefresher sender, CacheRefresherEventArgs cacheRefresherEventArgs)
 {
     Log.Debug("Clearing output cache");
     ClearCache();
 }