U4-11227 - default variations and fallback (wip)

This commit is contained in:
Stephan
2018-04-18 19:46:47 +02:00
parent 8873fa9dd4
commit 908589277a
52 changed files with 590 additions and 228 deletions

View File

@@ -43,7 +43,7 @@ namespace Umbraco.Web.PublishedCache.XmlPublishedCache
IScopeProvider scopeProvider,
ICacheProvider requestCache,
IEnumerable<IUrlSegmentProvider> segmentProviders,
IPublishedSnapshotAccessor publishedSnapshotAccessor,
IPublishedSnapshotAccessor publishedSnapshotAccessor, IPublishedVariationContextAccessor variationContextAccessor,
IDocumentRepository documentRepository, IMediaRepository mediaRepository, IMemberRepository memberRepository,
ISystemDefaultCultureProvider systemDefaultCultureProvider,
ILogger logger,
@@ -51,7 +51,8 @@ namespace Umbraco.Web.PublishedCache.XmlPublishedCache
ISiteDomainHelper siteDomainHelper,
MainDom mainDom,
bool testing = false, bool enableRepositoryEvents = true)
: this(serviceContext, publishedContentTypeFactory, scopeProvider, requestCache, segmentProviders, publishedSnapshotAccessor,
: this(serviceContext, publishedContentTypeFactory, scopeProvider, requestCache, segmentProviders,
publishedSnapshotAccessor, variationContextAccessor,
documentRepository, mediaRepository, memberRepository,
systemDefaultCultureProvider,
logger, globalSettings, siteDomainHelper, null, mainDom, testing, enableRepositoryEvents)
@@ -62,7 +63,7 @@ namespace Umbraco.Web.PublishedCache.XmlPublishedCache
IPublishedContentTypeFactory publishedContentTypeFactory,
IScopeProvider scopeProvider,
ICacheProvider requestCache,
IPublishedSnapshotAccessor publishedSnapshotAccessor,
IPublishedSnapshotAccessor publishedSnapshotAccessor, IPublishedVariationContextAccessor variationContextAccessor,
IDocumentRepository documentRepository, IMediaRepository mediaRepository, IMemberRepository memberRepository,
ISystemDefaultCultureProvider systemDefaultCultureProvider,
ILogger logger,
@@ -71,7 +72,8 @@ namespace Umbraco.Web.PublishedCache.XmlPublishedCache
PublishedContentTypeCache contentTypeCache,
MainDom mainDom,
bool testing, bool enableRepositoryEvents)
: this(serviceContext, publishedContentTypeFactory, scopeProvider, requestCache, Enumerable.Empty<IUrlSegmentProvider>(), publishedSnapshotAccessor,
: this(serviceContext, publishedContentTypeFactory, scopeProvider, requestCache, Enumerable.Empty<IUrlSegmentProvider>(),
publishedSnapshotAccessor, variationContextAccessor,
documentRepository, mediaRepository, memberRepository,
systemDefaultCultureProvider,
logger, globalSettings, siteDomainHelper, contentTypeCache, mainDom, testing, enableRepositoryEvents)
@@ -82,7 +84,7 @@ namespace Umbraco.Web.PublishedCache.XmlPublishedCache
IScopeProvider scopeProvider,
ICacheProvider requestCache,
IEnumerable<IUrlSegmentProvider> segmentProviders,
IPublishedSnapshotAccessor publishedSnapshotAccessor,
IPublishedSnapshotAccessor publishedSnapshotAccessor, IPublishedVariationContextAccessor variationContextAccessor,
IDocumentRepository documentRepository, IMediaRepository mediaRepository, IMemberRepository memberRepository,
ISystemDefaultCultureProvider systemDefaultCultureProvider,
ILogger logger,
@@ -91,7 +93,7 @@ namespace Umbraco.Web.PublishedCache.XmlPublishedCache
PublishedContentTypeCache contentTypeCache,
MainDom mainDom,
bool testing, bool enableRepositoryEvents)
: base(publishedSnapshotAccessor)
: base(publishedSnapshotAccessor, variationContextAccessor)
{
_routesCache = new RoutesCache();
_publishedContentTypeFactory = publishedContentTypeFactory;

View File

@@ -29,6 +29,7 @@ namespace Umbraco.Web.PublishedCache.XmlPublishedCache
factory.GetInstance<CacheHelper>().RequestCache,
factory.GetInstance<UrlSegmentProviderCollection>(),
factory.GetInstance<IPublishedSnapshotAccessor>(),
factory.GetInstance<IPublishedVariationContextAccessor>(),
factory.GetInstance<IDocumentRepository>(),
factory.GetInstance<IMediaRepository>(),
factory.GetInstance<IMemberRepository>(),

View File

@@ -27,13 +27,13 @@ namespace Umbraco.Web.PublishedCache.XmlPublishedCache
/// <summary>
/// Gets the raw value of the property.
/// </summary>
public override object GetSourceValue(string culture = null, string segment = null) => _sourceValue;
public override object GetSourceValue(string culture = ".", string segment = ".") => _sourceValue;
// in the Xml cache, everything is a string, and to have a value
// you want to have a non-null, non-empty string.
public override bool HasValue(string culture = null, string segment = null) => _sourceValue.Trim().Length > 0;
public override bool HasValue(string culture = ".", string segment = ".") => _sourceValue.Trim().Length > 0;
public override object GetValue(string culture = null, string segment = null)
public override object GetValue(string culture = ".", string segment = ".")
{
// NOT caching the source (intermediate) value since we'll never need it
// everything in Xml cache is per-request anyways