diff --git a/src/Umbraco.Configuration/AspNetCoreConfigsFactory.cs b/src/Umbraco.Configuration/AspNetCoreConfigsFactory.cs
index ec87be7b3d..d8c36a0046 100644
--- a/src/Umbraco.Configuration/AspNetCoreConfigsFactory.cs
+++ b/src/Umbraco.Configuration/AspNetCoreConfigsFactory.cs
@@ -3,8 +3,6 @@ using Umbraco.Configuration.Models;
using Umbraco.Core.Configuration;
using Umbraco.Core.Configuration.HealthChecks;
using Umbraco.Core.Configuration.UmbracoSettings;
-using ConnectionStrings = Umbraco.Configuration.Models.ConnectionStrings;
-using CoreDebugSettings = Umbraco.Core.Configuration.Models.CoreDebugSettings;
namespace Umbraco.Configuration
{
diff --git a/src/Umbraco.Configuration/Umbraco.Configuration.csproj b/src/Umbraco.Configuration/Umbraco.Configuration.csproj
index a4dac22386..8d7a0e7f01 100644
--- a/src/Umbraco.Configuration/Umbraco.Configuration.csproj
+++ b/src/Umbraco.Configuration/Umbraco.Configuration.csproj
@@ -10,15 +10,25 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/src/Umbraco.Core/Configuration/Models/ConnectionStrings.cs b/src/Umbraco.Core/Configuration/Models/ConnectionStrings.cs
index 9d038ed17c..027adedd09 100644
--- a/src/Umbraco.Core/Configuration/Models/ConnectionStrings.cs
+++ b/src/Umbraco.Core/Configuration/Models/ConnectionStrings.cs
@@ -2,10 +2,8 @@
using System.Collections.Generic;
using System.Data.Common;
using System.Text.Json.Serialization;
-using Umbraco.Core;
-using Umbraco.Core.Configuration;
-namespace Umbraco.Configuration.Models
+namespace Umbraco.Core.Configuration.Models
{
public class ConnectionStrings
{
diff --git a/src/Umbraco.Core/Routing/PublishedRequest.cs b/src/Umbraco.Core/Routing/PublishedRequest.cs
index 24bad199a5..7400623a6f 100644
--- a/src/Umbraco.Core/Routing/PublishedRequest.cs
+++ b/src/Umbraco.Core/Routing/PublishedRequest.cs
@@ -36,10 +36,21 @@ namespace Umbraco.Web.Routing
/// The Umbraco context.
/// The request Uri.
public PublishedRequest(IPublishedRouter publishedRouter, IUmbracoContext umbracoContext, IOptionsSnapshot webRoutingSettings, Uri uri = null)
+ : this(publishedRouter, umbracoContext, webRoutingSettings.Value, uri)
+ {
+ }
+
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ /// The published router.
+ /// The Umbraco context.
+ /// The request Uri.
+ public PublishedRequest(IPublishedRouter publishedRouter, IUmbracoContext umbracoContext, WebRoutingSettings webRoutingSettings, Uri uri = null)
{
UmbracoContext = umbracoContext ?? throw new ArgumentNullException(nameof(umbracoContext));
_publishedRouter = publishedRouter ?? throw new ArgumentNullException(nameof(publishedRouter));
- _webRoutingSettings = webRoutingSettings.Value;
+ _webRoutingSettings = webRoutingSettings;
Uri = uri ?? umbracoContext.CleanedUmbracoUrl;
}
diff --git a/src/Umbraco.Infrastructure/Install/InstallHelper.cs b/src/Umbraco.Infrastructure/Install/InstallHelper.cs
index b9729f4e1b..a0460c93ba 100644
--- a/src/Umbraco.Infrastructure/Install/InstallHelper.cs
+++ b/src/Umbraco.Infrastructure/Install/InstallHelper.cs
@@ -14,6 +14,7 @@ using Umbraco.Core.Serialization;
using Umbraco.Core.Services;
using Umbraco.Web.Install.Models;
using Microsoft.Extensions.Options;
+using Umbraco.Core.Configuration.Models;
namespace Umbraco.Web.Install
{
diff --git a/src/Umbraco.Infrastructure/Install/InstallSteps/DatabaseConfigureStep.cs b/src/Umbraco.Infrastructure/Install/InstallSteps/DatabaseConfigureStep.cs
index 0691f39e80..b86c1c2233 100644
--- a/src/Umbraco.Infrastructure/Install/InstallSteps/DatabaseConfigureStep.cs
+++ b/src/Umbraco.Infrastructure/Install/InstallSteps/DatabaseConfigureStep.cs
@@ -5,7 +5,7 @@ using Umbraco.Core;
using Umbraco.Core.Logging;
using Umbraco.Core.Migrations.Install;
using Umbraco.Web.Install.Models;
-using Umbraco.Core.Configuration;
+using Umbraco.Core.Configuration.Models;
using Microsoft.Extensions.Options;
namespace Umbraco.Web.Install.InstallSteps
diff --git a/src/Umbraco.Infrastructure/Trees/TreeNode.cs b/src/Umbraco.Infrastructure/Trees/TreeNode.cs
index 1b6945bcdd..585929c0e1 100644
--- a/src/Umbraco.Infrastructure/Trees/TreeNode.cs
+++ b/src/Umbraco.Infrastructure/Trees/TreeNode.cs
@@ -4,6 +4,7 @@ using System.Runtime.Serialization;
using Umbraco.Composing;
using Umbraco.Core;
using Umbraco.Core.Configuration;
+using Umbraco.Core.Configuration.Models;
using Umbraco.Web.Models.ContentEditing;
namespace Umbraco.Web.Models.Trees
@@ -113,7 +114,11 @@ namespace Umbraco.Web.Models.Trees
return Current.IOHelper.ResolveUrl("~" + Icon.TrimStart('~'));
//legacy icon path
- var backOfficePath = Current.Configs.Global().GetUmbracoMvcArea(Current.HostingEnvironment);
+
+ // TODO: replace this when we have something other than Current.Configs available
+ //var backOfficePath = Current.Configs.Global().GetUmbracoMvcArea(Current.HostingEnvironment);
+ var backOfficePath = new GlobalSettings().GetUmbracoMvcArea(Current.HostingEnvironment);
+
return string.Format("{0}images/umbraco/{1}", backOfficePath.EnsureEndsWith("/"), Icon);
}
}
diff --git a/src/Umbraco.Infrastructure/WebAssets/RuntimeMinifierExtensions.cs b/src/Umbraco.Infrastructure/WebAssets/RuntimeMinifierExtensions.cs
index 929c7c9dd2..cc3be4d785 100644
--- a/src/Umbraco.Infrastructure/WebAssets/RuntimeMinifierExtensions.cs
+++ b/src/Umbraco.Infrastructure/WebAssets/RuntimeMinifierExtensions.cs
@@ -1,11 +1,8 @@
using System;
-using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;
-using Umbraco.Core.Configuration;
using Umbraco.Core.Configuration.Models;
using Umbraco.Core.Hosting;
-using Umbraco.Core.IO;
using Umbraco.Core.WebAssets;
namespace Umbraco.Web.WebAssets
diff --git a/src/Umbraco.Web.BackOffice/Security/BackOfficeSessionIdValidator.cs b/src/Umbraco.Web.BackOffice/Security/BackOfficeSessionIdValidator.cs
index fdf630e01c..2b70a1b083 100644
--- a/src/Umbraco.Web.BackOffice/Security/BackOfficeSessionIdValidator.cs
+++ b/src/Umbraco.Web.BackOffice/Security/BackOfficeSessionIdValidator.cs
@@ -1,16 +1,14 @@
+using System;
+using System.Security.Claims;
+using System.Threading.Tasks;
using Microsoft.AspNetCore.Authentication;
using Microsoft.AspNetCore.Authentication.Cookies;
using Microsoft.AspNetCore.Http;
-using Microsoft.AspNetCore.Http.Extensions;
-using System;
-using System.Collections.Generic;
-using System.Security.Claims;
-using System.Text;
-using System.Threading.Tasks;
+using Microsoft.Extensions.Options;
using Umbraco.Core;
using Umbraco.Core.BackOffice;
-using Umbraco.Core.Configuration;
+using Umbraco.Core.Configuration.Models;
using Umbraco.Core.Hosting;
using Umbraco.Extensions;
@@ -37,14 +35,14 @@ namespace Umbraco.Web.BackOffice.Security
{
public const string CookieName = "UMB_UCONTEXT_C";
private readonly ISystemClock _systemClock;
- private readonly IGlobalSettings _globalSettings;
+ private readonly GlobalSettings _globalSettings;
private readonly IHostingEnvironment _hostingEnvironment;
private readonly BackOfficeUserManager _userManager;
- public BackOfficeSessionIdValidator(ISystemClock systemClock, IGlobalSettings globalSettings, IHostingEnvironment hostingEnvironment, BackOfficeUserManager userManager)
+ public BackOfficeSessionIdValidator(ISystemClock systemClock, IOptionsSnapshot globalSettings, IHostingEnvironment hostingEnvironment, BackOfficeUserManager userManager)
{
_systemClock = systemClock;
- _globalSettings = globalSettings;
+ _globalSettings = globalSettings.Value;
_hostingEnvironment = hostingEnvironment;
_userManager = userManager;
}
diff --git a/src/Umbraco.Web.BackOffice/Security/PreviewAuthenticationMiddleware.cs b/src/Umbraco.Web.BackOffice/Security/PreviewAuthenticationMiddleware.cs
index ff182b9f7b..f48996332c 100644
--- a/src/Umbraco.Web.BackOffice/Security/PreviewAuthenticationMiddleware.cs
+++ b/src/Umbraco.Web.BackOffice/Security/PreviewAuthenticationMiddleware.cs
@@ -6,6 +6,7 @@ using System;
using System.Threading.Tasks;
using Umbraco.Core;
using Umbraco.Core.Configuration;
+using Umbraco.Core.Configuration.Models;
using Umbraco.Core.Hosting;
using Umbraco.Extensions;
@@ -16,14 +17,14 @@ namespace Umbraco.Web.BackOffice.Security
///
public class PreviewAuthenticationMiddleware : IMiddleware
{
- private readonly IGlobalSettings _globalSettings;
+ private readonly GlobalSettings _globalSettings;
private readonly IHostingEnvironment _hostingEnvironment;
public PreviewAuthenticationMiddleware(
- IGlobalSettings globalSettings,
+ IOptionsSnapshot globalSettings,
IHostingEnvironment hostingEnvironment)
{
- _globalSettings = globalSettings;
+ _globalSettings = globalSettings.Value;
_hostingEnvironment = hostingEnvironment;
}
diff --git a/src/Umbraco.Web.BackOffice/Trees/ContentTreeController.cs b/src/Umbraco.Web.BackOffice/Trees/ContentTreeController.cs
index 0cc73af315..2f72e1f829 100644
--- a/src/Umbraco.Web.BackOffice/Trees/ContentTreeController.cs
+++ b/src/Umbraco.Web.BackOffice/Trees/ContentTreeController.cs
@@ -20,6 +20,8 @@ using Umbraco.Web.Common.Attributes;
using Umbraco.Web.Common.Exceptions;
using Umbraco.Web.Security;
using Umbraco.Web.WebApi;
+using Umbraco.Core.Configuration.Models;
+using Microsoft.Extensions.Options;
namespace Umbraco.Web.Trees
{
@@ -40,7 +42,7 @@ namespace Umbraco.Web.Trees
{
private readonly UmbracoTreeSearcher _treeSearcher;
private readonly ActionCollection _actions;
- private readonly IGlobalSettings _globalSettings;
+ private readonly GlobalSettings _globalSettings;
private readonly IMenuItemCollectionFactory _menuItemCollectionFactory;
private readonly IWebSecurity _webSecurity;
private readonly IContentService _contentService;
@@ -49,7 +51,6 @@ namespace Umbraco.Web.Trees
private readonly IUserService _userService;
private readonly ILocalizationService _localizationService;
-
public ContentTreeController(
ILocalizedTextService localizedTextService,
UmbracoApiControllerTypeCollection umbracoApiControllerTypeCollection,
@@ -62,7 +63,7 @@ namespace Umbraco.Web.Trees
IDataTypeService dataTypeService,
UmbracoTreeSearcher treeSearcher,
ActionCollection actions,
- IGlobalSettings globalSettings,
+ IOptionsSnapshot globalSettings,
IContentService contentService,
IPublicAccessService publicAccessService,
ILocalizationService localizationService)
@@ -70,7 +71,7 @@ namespace Umbraco.Web.Trees
{
_treeSearcher = treeSearcher;
_actions = actions;
- _globalSettings = globalSettings;
+ _globalSettings = globalSettings.Value;
_menuItemCollectionFactory = menuItemCollectionFactory;
_webSecurity = webSecurity;
_contentService = contentService;
diff --git a/src/Umbraco.Web.Common/Extensions/UmbracoCoreServiceCollectionExtensions.cs b/src/Umbraco.Web.Common/Extensions/UmbracoCoreServiceCollectionExtensions.cs
index cbdbeac873..1c7f8156f4 100644
--- a/src/Umbraco.Web.Common/Extensions/UmbracoCoreServiceCollectionExtensions.cs
+++ b/src/Umbraco.Web.Common/Extensions/UmbracoCoreServiceCollectionExtensions.cs
@@ -14,6 +14,7 @@ using Serilog;
using Serilog.Extensions.Hosting;
using Serilog.Extensions.Logging;
using Umbraco.Configuration;
+using Umbraco.Configuration.Models;
using Umbraco.Core;
using Umbraco.Core.Cache;
using Umbraco.Core.Composing;