Facade - Cleanup access to 'current'
This commit is contained in:
@@ -40,17 +40,5 @@
|
||||
/// Gets the <see cref="IDomainCache"/>.
|
||||
/// </summary>
|
||||
public IDomainCache DomainCache { get; }
|
||||
|
||||
public static void ResyncCurrent()
|
||||
{
|
||||
if (FacadeServiceResolver.HasCurrent == false) return;
|
||||
var service = FacadeServiceResolver.Current.Service as FacadeService;
|
||||
var facade = service?.GetFacade() as Facade;
|
||||
if (facade == null) return;
|
||||
((PublishedContentCache) facade.ContentCache).Resync();
|
||||
((PublishedMediaCache)facade.MediaCache).Resync();
|
||||
|
||||
// not trying to resync members or domains, which are not cached really
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -32,31 +32,35 @@ namespace Umbraco.Web.PublishedCache.XmlPublishedCache
|
||||
IDatabaseUnitOfWorkProvider uowProvider,
|
||||
ICacheProvider requestCache,
|
||||
IEnumerable<IUrlSegmentProvider> segmentProviders,
|
||||
IFacadeAccessor facadeAccessor,
|
||||
bool testing = false, bool enableRepositoryEvents = true)
|
||||
: this(serviceContext, uowProvider, requestCache, segmentProviders, null, testing, enableRepositoryEvents)
|
||||
: this(serviceContext, uowProvider, requestCache, segmentProviders, facadeAccessor, null, testing, enableRepositoryEvents)
|
||||
{ }
|
||||
|
||||
// used in some tests
|
||||
internal FacadeService(ServiceContext serviceContext,
|
||||
IDatabaseUnitOfWorkProvider uowProvider,
|
||||
ICacheProvider requestCache,
|
||||
IFacadeAccessor facadeAccessor,
|
||||
PublishedContentTypeCache contentTypeCache,
|
||||
bool testing, bool enableRepositoryEvents)
|
||||
: this(serviceContext, uowProvider, requestCache, Enumerable.Empty<IUrlSegmentProvider>(), contentTypeCache, testing, enableRepositoryEvents)
|
||||
: this(serviceContext, uowProvider, requestCache, Enumerable.Empty<IUrlSegmentProvider>(), facadeAccessor, contentTypeCache, testing, enableRepositoryEvents)
|
||||
{ }
|
||||
|
||||
private FacadeService(ServiceContext serviceContext,
|
||||
IDatabaseUnitOfWorkProvider uowProvider,
|
||||
ICacheProvider requestCache,
|
||||
IEnumerable<IUrlSegmentProvider> segmentProviders,
|
||||
IFacadeAccessor facadeAccessor,
|
||||
PublishedContentTypeCache contentTypeCache,
|
||||
bool testing, bool enableRepositoryEvents)
|
||||
: base(facadeAccessor)
|
||||
{
|
||||
_routesCache = new RoutesCache();
|
||||
_contentTypeCache = contentTypeCache
|
||||
?? new PublishedContentTypeCache(serviceContext.ContentTypeService, serviceContext.MediaTypeService, serviceContext.MemberTypeService);
|
||||
|
||||
_xmlStore = new XmlStore(serviceContext, uowProvider, _routesCache, _contentTypeCache, segmentProviders, testing, enableRepositoryEvents);
|
||||
_xmlStore = new XmlStore(serviceContext, uowProvider, _routesCache, _contentTypeCache, segmentProviders, facadeAccessor, testing, enableRepositoryEvents);
|
||||
|
||||
_domainService = serviceContext.DomainService;
|
||||
_memberService = serviceContext.MemberService;
|
||||
|
||||
@@ -49,6 +49,7 @@ namespace Umbraco.Web.PublishedCache.XmlPublishedCache
|
||||
private bool _withRepositoryEvents;
|
||||
private bool _withOtherEvents;
|
||||
|
||||
private readonly IFacadeAccessor _facadeAccessor;
|
||||
private readonly PublishedContentTypeCache _contentTypeCache;
|
||||
private readonly RoutesCache _routesCache;
|
||||
private readonly ServiceContext _serviceContext; // fixme WHY
|
||||
@@ -61,15 +62,15 @@ namespace Umbraco.Web.PublishedCache.XmlPublishedCache
|
||||
/// </summary>
|
||||
/// <remarks>The default constructor will boot the cache, load data from file or database,
|
||||
/// wire events in order to manage changes, etc.</remarks>
|
||||
public XmlStore(ServiceContext serviceContext, IDatabaseUnitOfWorkProvider uowProvider, RoutesCache routesCache, PublishedContentTypeCache contentTypeCache, IEnumerable<IUrlSegmentProvider> segmentProviders)
|
||||
: this(serviceContext, uowProvider, routesCache, contentTypeCache, segmentProviders, false, false)
|
||||
public XmlStore(ServiceContext serviceContext, IDatabaseUnitOfWorkProvider uowProvider, RoutesCache routesCache, PublishedContentTypeCache contentTypeCache, IEnumerable<IUrlSegmentProvider> segmentProviders, IFacadeAccessor facadeAccessor)
|
||||
: this(serviceContext, uowProvider, routesCache, contentTypeCache, segmentProviders, facadeAccessor, false, false)
|
||||
{ }
|
||||
|
||||
// internal for unit tests
|
||||
// no file nor db, no config check
|
||||
// fixme - er, we DO have a DB?
|
||||
internal XmlStore(ServiceContext serviceContext, IDatabaseUnitOfWorkProvider uowProvider, RoutesCache routesCache, PublishedContentTypeCache contentTypeCache,
|
||||
IEnumerable<IUrlSegmentProvider> segmentProviders, bool testing, bool enableRepositoryEvents)
|
||||
IEnumerable<IUrlSegmentProvider> segmentProviders, IFacadeAccessor facadeAccessor, bool testing, bool enableRepositoryEvents)
|
||||
{
|
||||
if (testing == false)
|
||||
EnsureConfigurationIsValid();
|
||||
@@ -78,6 +79,7 @@ namespace Umbraco.Web.PublishedCache.XmlPublishedCache
|
||||
_uowProvider = uowProvider;
|
||||
_routesCache = routesCache;
|
||||
_contentTypeCache = contentTypeCache;
|
||||
_facadeAccessor = facadeAccessor;
|
||||
|
||||
InitializeSerializers(segmentProviders);
|
||||
|
||||
@@ -1310,7 +1312,7 @@ ORDER BY umbracoNode.level, umbracoNode.sortOrder";
|
||||
if (publishedChanged)
|
||||
{
|
||||
safeXml.Commit(); // not auto!
|
||||
Facade.ResyncCurrent();
|
||||
ResyncCurrentFacade();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1341,7 +1343,7 @@ ORDER BY umbracoNode.level, umbracoNode.sortOrder";
|
||||
|
||||
// ignore media and member types - we're not caching them
|
||||
|
||||
Facade.ResyncCurrent();
|
||||
ResyncCurrentFacade();
|
||||
}
|
||||
|
||||
public void Notify(DataTypeCacheRefresher.JsonPayload[] payloads)
|
||||
@@ -1361,7 +1363,17 @@ ORDER BY umbracoNode.level, umbracoNode.sortOrder";
|
||||
|
||||
// ignore media and member types - we're not caching them
|
||||
|
||||
Facade.ResyncCurrent();
|
||||
ResyncCurrentFacade();
|
||||
}
|
||||
|
||||
private void ResyncCurrentFacade()
|
||||
{
|
||||
var facade = (Facade) _facadeAccessor.Facade;
|
||||
if (facade == null) return;
|
||||
((PublishedContentCache) facade.ContentCache).Resync();
|
||||
((PublishedMediaCache) facade.MediaCache).Resync();
|
||||
|
||||
// not trying to resync members or domains, which are not cached really
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
Reference in New Issue
Block a user