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;
}
}