diff --git a/src/Umbraco.Core/Models/PublishedContent/ILivePublishedModelFactory.cs b/src/Umbraco.Core/Models/PublishedContent/ILivePublishedModelFactory.cs index 0d7744389a..39b9f038be 100644 --- a/src/Umbraco.Core/Models/PublishedContent/ILivePublishedModelFactory.cs +++ b/src/Umbraco.Core/Models/PublishedContent/ILivePublishedModelFactory.cs @@ -9,6 +9,11 @@ /// Tells the factory that it should build a new generation of models /// void Reset(); + + /// + /// If the live model factory + /// + bool Enabled { get; } } /// diff --git a/src/Umbraco.Core/PublishedModelFactoryExtensions.cs b/src/Umbraco.Core/PublishedModelFactoryExtensions.cs index cfb29038c6..697e3fd11f 100644 --- a/src/Umbraco.Core/PublishedModelFactoryExtensions.cs +++ b/src/Umbraco.Core/PublishedModelFactoryExtensions.cs @@ -17,6 +17,20 @@ namespace Umbraco.Core /// public static bool IsLiveFactory(this IPublishedModelFactory factory) => factory is ILivePublishedModelFactory; + /// + /// Returns true if the current is an implementation of and is enabled + /// + /// + /// + public static bool IsLiveFactoryEnabled(this IPublishedModelFactory factory) + { + if (factory is ILivePublishedModelFactory2 liveFactory2) + return liveFactory2.Enabled; + + // if it's not ILivePublishedModelFactory2 we can't determine if it's enabled or not so return true + return factory is ILivePublishedModelFactory; + } + [Obsolete("This method is no longer used or necessary and will be removed from future")] [EditorBrowsable(EditorBrowsableState.Never)] public static void WithSafeLiveFactory(this IPublishedModelFactory factory, Action action) @@ -61,7 +75,6 @@ namespace Umbraco.Core if (resetMethod != null) resetMethod.Invoke(liveFactory, null); } - action(); } } diff --git a/src/Umbraco.ModelsBuilder.Embedded/PureLiveModelFactory.cs b/src/Umbraco.ModelsBuilder.Embedded/PureLiveModelFactory.cs index b642f93bc9..0e125759c6 100644 --- a/src/Umbraco.ModelsBuilder.Embedded/PureLiveModelFactory.cs +++ b/src/Umbraco.ModelsBuilder.Embedded/PureLiveModelFactory.cs @@ -134,6 +134,9 @@ namespace Umbraco.ModelsBuilder.Embedded return ctor(); } + /// + public bool Enabled => _config.Enable; + /// public void Reset() { diff --git a/src/Umbraco.Web/PublishedCache/NuCache/PublishedSnapshotService.cs b/src/Umbraco.Web/PublishedCache/NuCache/PublishedSnapshotService.cs index 1fc738b737..7e78b2e96f 100755 --- a/src/Umbraco.Web/PublishedCache/NuCache/PublishedSnapshotService.cs +++ b/src/Umbraco.Web/PublishedCache/NuCache/PublishedSnapshotService.cs @@ -859,9 +859,7 @@ namespace Umbraco.Web.PublishedCache.NuCache Notify(_contentStore, payloads, RefreshContentTypesLocked); Notify(_mediaStore, payloads, RefreshMediaTypesLocked); - OnNotified(new NotifiedEventArgs(payloads)); - - if (_publishedModelFactory.IsLiveFactory()) + if (_publishedModelFactory.IsLiveFactoryEnabled()) { //In the case of Pure Live - we actually need to refresh all of the content and the media //see https://github.com/umbraco/Umbraco-CMS/issues/5671 diff --git a/src/Umbraco.Web/PublishedCache/PublishedSnapshotServiceBase.cs b/src/Umbraco.Web/PublishedCache/PublishedSnapshotServiceBase.cs index f40b3d10c2..3ebb0fd289 100644 --- a/src/Umbraco.Web/PublishedCache/PublishedSnapshotServiceBase.cs +++ b/src/Umbraco.Web/PublishedCache/PublishedSnapshotServiceBase.cs @@ -49,8 +49,5 @@ namespace Umbraco.Web.PublishedCache public virtual void Dispose() { } - - protected void OnNotified(NotifiedEventArgs args) => Notified?.Invoke(this, args); - public event EventHandler> Notified; } }