ISystemDefaultCultureProvider

This commit is contained in:
Stephan
2018-04-27 17:36:50 +02:00
parent aa46e1e282
commit 8f13fa3ae5
15 changed files with 82 additions and 16 deletions

View File

@@ -0,0 +1,13 @@
namespace Umbraco.Web.PublishedCache
{
/// <summary>
/// Provides the system default culture.
/// </summary>
public interface ISystemDefaultCultureProvider
{
/// <summary>
/// Gets the system default culture.
/// </summary>
string DefaultCulture { get; }
}
}

View File

@@ -44,6 +44,7 @@ namespace Umbraco.Web.PublishedCache.NuCache
private readonly IMemberRepository _memberRepository;
private readonly IGlobalSettings _globalSettings;
private readonly ISiteDomainHelper _siteDomainHelper;
private readonly ISystemDefaultCultureProvider _systemDefaultCultureProvider;
// volatile because we read it with no lock
private volatile bool _isReady;
@@ -83,6 +84,7 @@ namespace Umbraco.Web.PublishedCache.NuCache
ServiceContext serviceContext, IPublishedContentTypeFactory publishedContentTypeFactory, IdkMap idkMap,
IPublishedSnapshotAccessor publishedSnapshotAccessor, ILogger logger, IScopeProvider scopeProvider,
IDocumentRepository documentRepository, IMediaRepository mediaRepository, IMemberRepository memberRepository,
ISystemDefaultCultureProvider systemDefaultCultureProvider,
IGlobalSettings globalSettings, ISiteDomainHelper siteDomainHelper)
: base(publishedSnapshotAccessor)
{
@@ -97,6 +99,7 @@ namespace Umbraco.Web.PublishedCache.NuCache
_documentRepository = documentRepository;
_mediaRepository = mediaRepository;
_memberRepository = memberRepository;
_systemDefaultCultureProvider = systemDefaultCultureProvider;
_globalSettings = globalSettings;
_siteDomainHelper = siteDomainHelper;
@@ -1014,7 +1017,7 @@ namespace Umbraco.Web.PublishedCache.NuCache
var memberTypeCache = new PublishedContentTypeCache(null, null, _serviceContext.MemberTypeService, _publishedContentTypeFactory, _logger);
var defaultCulture = _serviceContext.LocalizationService.GetDefaultLanguageIsoCode(); // capture - fast
var defaultCulture = _systemDefaultCultureProvider.DefaultCulture;
var domainCache = new DomainCache(domainSnap, defaultCulture);
var domainHelper = new DomainHelper(domainCache, _siteDomainHelper);

View File

@@ -0,0 +1,24 @@
using Umbraco.Core.Services;
namespace Umbraco.Web.PublishedCache
{
/// <summary>
/// Provides the default implementation of <see cref="ISystemDefaultCultureProvider"/>.
/// </summary>
public class SystemDefaultCultureProvider : ISystemDefaultCultureProvider
{
private readonly ILocalizationService _localizationService;
/// <summary>
/// Initializes a new instance of the <see cref="SystemDefaultCultureProvider"/> class.
/// </summary>
/// <param name="localizationService"></param>
public SystemDefaultCultureProvider(ILocalizationService localizationService)
{
_localizationService = localizationService;
}
/// <inheritdoc />
public string DefaultCulture => _localizationService.GetDefaultLanguageIsoCode(); // capture - fast
}
}

View File

@@ -11,10 +11,10 @@ namespace Umbraco.Web.PublishedCache.XmlPublishedCache
{
private readonly IDomainService _domainService;
public DomainCache(IDomainService domainService, ILocalizationService localizationService)
public DomainCache(IDomainService domainService, ISystemDefaultCultureProvider systemDefaultCultureProvider)
{
_domainService = domainService;
DefaultCulture = localizationService.GetDefaultLanguageIsoCode(); // capture - fast
DefaultCulture = systemDefaultCultureProvider.DefaultCulture;
}
public IEnumerable<Domain> GetAll(bool includeWildcards)

View File

@@ -32,7 +32,7 @@ namespace Umbraco.Web.PublishedCache.XmlPublishedCache
private readonly IUserService _userService;
private readonly ICacheProvider _requestCache;
private readonly IGlobalSettings _globalSettings;
private readonly ILocalizationService _localizationService;
private readonly ISystemDefaultCultureProvider _systemDefaultCultureProvider;
private readonly ISiteDomainHelper _siteDomainHelper;
#region Constructors
@@ -45,6 +45,7 @@ namespace Umbraco.Web.PublishedCache.XmlPublishedCache
IEnumerable<IUrlSegmentProvider> segmentProviders,
IPublishedSnapshotAccessor publishedSnapshotAccessor,
IDocumentRepository documentRepository, IMediaRepository mediaRepository, IMemberRepository memberRepository,
ISystemDefaultCultureProvider systemDefaultCultureProvider,
ILogger logger,
IGlobalSettings globalSettings,
ISiteDomainHelper siteDomainHelper,
@@ -52,6 +53,7 @@ namespace Umbraco.Web.PublishedCache.XmlPublishedCache
bool testing = false, bool enableRepositoryEvents = true)
: this(serviceContext, publishedContentTypeFactory, scopeProvider, requestCache, segmentProviders, publishedSnapshotAccessor,
documentRepository, mediaRepository, memberRepository,
systemDefaultCultureProvider,
logger, globalSettings, siteDomainHelper, null, mainDom, testing, enableRepositoryEvents)
{ }
@@ -62,6 +64,7 @@ namespace Umbraco.Web.PublishedCache.XmlPublishedCache
ICacheProvider requestCache,
IPublishedSnapshotAccessor publishedSnapshotAccessor,
IDocumentRepository documentRepository, IMediaRepository mediaRepository, IMemberRepository memberRepository,
ISystemDefaultCultureProvider systemDefaultCultureProvider,
ILogger logger,
IGlobalSettings globalSettings,
ISiteDomainHelper siteDomainHelper,
@@ -70,6 +73,7 @@ namespace Umbraco.Web.PublishedCache.XmlPublishedCache
bool testing, bool enableRepositoryEvents)
: this(serviceContext, publishedContentTypeFactory, scopeProvider, requestCache, Enumerable.Empty<IUrlSegmentProvider>(), publishedSnapshotAccessor,
documentRepository, mediaRepository, memberRepository,
systemDefaultCultureProvider,
logger, globalSettings, siteDomainHelper, contentTypeCache, mainDom, testing, enableRepositoryEvents)
{ }
@@ -80,6 +84,7 @@ namespace Umbraco.Web.PublishedCache.XmlPublishedCache
IEnumerable<IUrlSegmentProvider> segmentProviders,
IPublishedSnapshotAccessor publishedSnapshotAccessor,
IDocumentRepository documentRepository, IMediaRepository mediaRepository, IMemberRepository memberRepository,
ISystemDefaultCultureProvider systemDefaultCultureProvider,
ILogger logger,
IGlobalSettings globalSettings,
ISiteDomainHelper siteDomainHelper,
@@ -101,7 +106,7 @@ namespace Umbraco.Web.PublishedCache.XmlPublishedCache
_memberService = serviceContext.MemberService;
_mediaService = serviceContext.MediaService;
_userService = serviceContext.UserService;
_localizationService = serviceContext.LocalizationService;
_systemDefaultCultureProvider = systemDefaultCultureProvider;
_requestCache = requestCache;
_globalSettings = globalSettings;
@@ -146,7 +151,7 @@ namespace Umbraco.Web.PublishedCache.XmlPublishedCache
// the current caches, but that would mean creating an extra cache (StaticCache
// probably) so better use RequestCache.
var domainCache = new DomainCache(_domainService, _localizationService);
var domainCache = new DomainCache(_domainService, _systemDefaultCultureProvider);
return new PublishedSnapshot(
new PublishedContentCache(_xmlStore, domainCache, _requestCache, _globalSettings, _siteDomainHelper, _contentTypeCache, _routesCache, previewToken),

View File

@@ -32,6 +32,7 @@ namespace Umbraco.Web.PublishedCache.XmlPublishedCache
factory.GetInstance<IDocumentRepository>(),
factory.GetInstance<IMediaRepository>(),
factory.GetInstance<IMemberRepository>(),
factory.GetInstance<ISystemDefaultCultureProvider>(),
factory.GetInstance<ILogger>(),
factory.GetInstance<IGlobalSettings>(),
factory.GetInstance<ISiteDomainHelper>(),