ISystemDefaultCultureProvider
This commit is contained in:
@@ -256,10 +256,6 @@ namespace Umbraco.Core.Persistence.Repositories.Implement
|
||||
// do NOT leak that language, it's not deep-cloned!
|
||||
private ILanguage GetDefault()
|
||||
{
|
||||
// FIXME
|
||||
var temp = SqlContext.Sql();
|
||||
if (temp == null) return null;
|
||||
|
||||
// get all cached, non-cloned
|
||||
var all = TypedCachePolicy.GetAllCached(PerformGetAll);
|
||||
|
||||
|
||||
@@ -62,7 +62,7 @@ namespace Umbraco.Tests.Cache.PublishedCache
|
||||
_xml.LoadXml(GetXml());
|
||||
var xmlStore = new XmlStore(() => _xml, null, null, null);
|
||||
var cacheProvider = new StaticCacheProvider();
|
||||
var domainCache = new DomainCache(ServiceContext.DomainService, ServiceContext.LocalizationService);
|
||||
var domainCache = new DomainCache(ServiceContext.DomainService, SystemDefaultCultureProvider);
|
||||
var publishedShapshot = new Umbraco.Web.PublishedCache.XmlPublishedCache.PublishedSnapshot(
|
||||
new PublishedContentCache(xmlStore, domainCache, cacheProvider, globalSettings, new SiteDomainHelper(), ContentTypesCache, null, null),
|
||||
new PublishedMediaCache(xmlStore, ServiceContext.MediaService, ServiceContext.UserService, cacheProvider, ContentTypesCache),
|
||||
|
||||
@@ -90,7 +90,9 @@ namespace Umbraco.Tests.Scoping
|
||||
publishedSnapshotAccessor,
|
||||
Logger,
|
||||
ScopeProvider,
|
||||
documentRepository, mediaRepository, memberRepository, Container.GetInstance<IGlobalSettings>(), new SiteDomainHelper());
|
||||
documentRepository, mediaRepository, memberRepository,
|
||||
SystemDefaultCultureProvider,
|
||||
Container.GetInstance<IGlobalSettings>(), new SiteDomainHelper());
|
||||
}
|
||||
|
||||
protected UmbracoContext GetUmbracoContextNu(string url, int templateId = 1234, RouteData routeData = null, bool setSingleton = false, IUmbracoSettingsSection umbracoSettings = null, IEnumerable<IUrlProvider> urlProviders = null)
|
||||
|
||||
@@ -32,6 +32,7 @@ using LightInject;
|
||||
using Umbraco.Core.Migrations.Install;
|
||||
using Umbraco.Core.Models.PublishedContent;
|
||||
using Umbraco.Core.Persistence.Repositories;
|
||||
using Umbraco.Tests.Testing.Objects.AccessorsAndProviders;
|
||||
|
||||
namespace Umbraco.Tests.TestHelpers
|
||||
{
|
||||
@@ -77,6 +78,7 @@ namespace Umbraco.Tests.TestHelpers
|
||||
|
||||
Container.Register<ISqlSyntaxProvider, SqlCeSyntaxProvider>();
|
||||
Container.Register(factory => PublishedSnapshotService);
|
||||
Container.Register(factory => SystemDefaultCultureProvider);
|
||||
|
||||
Container.GetInstance<DataEditorCollectionBuilder>()
|
||||
.Clear()
|
||||
@@ -229,12 +231,16 @@ namespace Umbraco.Tests.TestHelpers
|
||||
}
|
||||
}
|
||||
|
||||
protected ISystemDefaultCultureProvider SystemDefaultCultureProvider { get; set; }
|
||||
|
||||
protected IPublishedSnapshotService PublishedSnapshotService { get; set; }
|
||||
|
||||
protected override void Initialize() // fixme - should NOT be here!
|
||||
{
|
||||
base.Initialize();
|
||||
|
||||
SystemDefaultCultureProvider = new TestSystemDefaultCultureProvider();
|
||||
|
||||
CreateAndInitializeDatabase();
|
||||
|
||||
// ensure we have a PublishedSnapshotService
|
||||
@@ -264,6 +270,7 @@ namespace Umbraco.Tests.TestHelpers
|
||||
ScopeProvider,
|
||||
cache, publishedSnapshotAccessor,
|
||||
Container.GetInstance<IDocumentRepository>(), Container.GetInstance<IMediaRepository>(), Container.GetInstance<IMemberRepository>(),
|
||||
SystemDefaultCultureProvider,
|
||||
Logger,
|
||||
Container.GetInstance<IGlobalSettings>(), new SiteDomainHelper(),
|
||||
ContentTypesCache,
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
using Umbraco.Web.PublishedCache;
|
||||
|
||||
namespace Umbraco.Tests.Testing.Objects.AccessorsAndProviders
|
||||
{
|
||||
public class TestSystemDefaultCultureProvider : ISystemDefaultCultureProvider
|
||||
{
|
||||
public string DefaultCulture { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -180,6 +180,7 @@
|
||||
<Compile Include="TestHelpers\Stubs\TestExamineManager.cs" />
|
||||
<Compile Include="TestHelpers\Stubs\TestPublishedContent.cs" />
|
||||
<Compile Include="Testing\ContentBaseExtensions.cs" />
|
||||
<Compile Include="Testing\Objects\AccessorsAndProviders\TestSystemDefaultCultureProvider.cs" />
|
||||
<Compile Include="Testing\TestDatabase.cs" />
|
||||
<Compile Include="Testing\TestingTests\NUnitTests.cs" />
|
||||
<Compile Include="Persistence\LocksTests.cs" />
|
||||
@@ -595,9 +596,7 @@
|
||||
<Content Include="Services\Importing\uBlogsy-Package.xml" />
|
||||
<Content Include="Services\Importing\XsltSearch-Package.xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Folder Include="Testing\Objects\" />
|
||||
</ItemGroup>
|
||||
<ItemGroup />
|
||||
<ItemGroup>
|
||||
<Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
|
||||
</ItemGroup>
|
||||
|
||||
@@ -19,6 +19,7 @@ using Umbraco.Core.Services;
|
||||
using Umbraco.Core.Strings;
|
||||
using Umbraco.Tests.TestHelpers;
|
||||
using Umbraco.Tests.Testing;
|
||||
using Umbraco.Tests.Testing.Objects.AccessorsAndProviders;
|
||||
using Umbraco.Web;
|
||||
using Umbraco.Web.Models;
|
||||
using Umbraco.Web.Mvc;
|
||||
@@ -424,7 +425,8 @@ namespace Umbraco.Tests.Web.Mvc
|
||||
var scopeProvider = TestObjects.GetScopeProvider(Mock.Of<ILogger>());
|
||||
var factory = Mock.Of<IPublishedContentTypeFactory>();
|
||||
_service = new PublishedSnapshotService(svcCtx, factory, scopeProvider, cache, Enumerable.Empty<IUrlSegmentProvider>(), null,
|
||||
null, null, null,
|
||||
null, null, null,
|
||||
new TestSystemDefaultCultureProvider(),
|
||||
Current.Logger, TestObjects.GetGlobalSettings(), new SiteDomainHelper(), null, true, false); // no events
|
||||
|
||||
var http = GetHttpContextFactory(url, routeData).HttpContext;
|
||||
|
||||
@@ -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; }
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
@@ -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)
|
||||
|
||||
@@ -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),
|
||||
|
||||
@@ -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>(),
|
||||
|
||||
@@ -69,6 +69,9 @@ namespace Umbraco.Web.Runtime
|
||||
//it still needs to use the install controller so we can't do that
|
||||
composition.Container.RegisterFrom<InstallerCompositionRoot>();
|
||||
|
||||
// register the system culture provider
|
||||
composition.Container.RegisterSingleton<ISystemDefaultCultureProvider, SystemDefaultCultureProvider>();
|
||||
|
||||
var typeLoader = composition.Container.GetInstance<TypeLoader>();
|
||||
var logger = composition.Container.GetInstance<ILogger>();
|
||||
var proflog = composition.Container.GetInstance<ProfilingLogger>();
|
||||
|
||||
@@ -343,6 +343,7 @@
|
||||
<Compile Include="PropertyEditors\ValueConverters\MultiNodeTreePickerValueConverter.cs" />
|
||||
<Compile Include="PropertyEditors\ValueListUniqueValueValidator.cs" />
|
||||
<Compile Include="PublishedCache\IPublishedSnapshot.cs" />
|
||||
<Compile Include="PublishedCache\ISystemDefaultCultureProvider.cs" />
|
||||
<Compile Include="PublishedCache\NuCache\DataSource\BTree.ContentDataSerializer.cs" />
|
||||
<Compile Include="PublishedCache\NuCache\DataSource\BTree.ContentNodeKitSerializer.cs" />
|
||||
<Compile Include="PublishedCache\NuCache\DataSource\BTree.DictionaryOfCultureVariationSerializer.cs" />
|
||||
@@ -387,6 +388,7 @@
|
||||
<Compile Include="PublishedCache\NuCache\SnapDictionary.cs" />
|
||||
<Compile Include="PublishedCache\PublishedCacheBase.cs" />
|
||||
<Compile Include="PublishedCache\PublishedContentTypeCache.cs" />
|
||||
<Compile Include="PublishedCache\SystemDefaultCultureProvider.cs" />
|
||||
<Compile Include="PublishedCache\UmbracoContextPublishedSnapshotAccessor.cs" />
|
||||
<Compile Include="PublishedCache\XmlPublishedCache\DomainCache.cs" />
|
||||
<Compile Include="PublishedCache\XmlPublishedCache\PublishedSnapshot.cs" />
|
||||
|
||||
Reference in New Issue
Block a user