diff --git a/src/Umbraco.Core/Components/Composition.cs b/src/Umbraco.Core/Components/Composition.cs
index bf3ff40c79..412008c175 100644
--- a/src/Umbraco.Core/Components/Composition.cs
+++ b/src/Umbraco.Core/Components/Composition.cs
@@ -20,7 +20,16 @@ namespace Umbraco.Core.Components
/// Initializes a new instance of the class.
///
/// A container.
+ /// The type loader.
/// The runtime level.
+ public Composition(IContainer container, TypeLoader typeLoader, RuntimeLevel level)
+ {
+ Container = container;
+ TypeLoader = typeLoader;
+ RuntimeLevel = level;
+ }
+
+ // fixme / tests
public Composition(IContainer container, RuntimeLevel level)
{
Container = container;
@@ -33,6 +42,11 @@ namespace Umbraco.Core.Components
/// Use with care!
public IContainer Container { get; }
+ ///
+ /// Gets the type loader.
+ ///
+ public TypeLoader TypeLoader { get; }
+
///
/// Gets the runtime level.
///
diff --git a/src/Umbraco.Core/Composing/TypeLoader.cs b/src/Umbraco.Core/Composing/TypeLoader.cs
index 4240f96a5b..714c5c0ec5 100644
--- a/src/Umbraco.Core/Composing/TypeLoader.cs
+++ b/src/Umbraco.Core/Composing/TypeLoader.cs
@@ -250,7 +250,7 @@ namespace Umbraco.Core.Composing
/// A profiling logger.
/// The hash.
// internal for tests
- internal static string GetFileHash(IEnumerable filesAndFolders, ProfilingLogger logger)
+ internal static string GetFileHash(IEnumerable filesAndFolders, IProfilingLogger logger)
{
using (logger.TraceDuration("Determining hash of code files on disk", "Hash determined"))
{
diff --git a/src/Umbraco.Core/Migrations/MigrationBuilder.cs b/src/Umbraco.Core/Migrations/MigrationBuilder.cs
index 65e40f6e75..aebd8bd1ee 100644
--- a/src/Umbraco.Core/Migrations/MigrationBuilder.cs
+++ b/src/Umbraco.Core/Migrations/MigrationBuilder.cs
@@ -1,5 +1,4 @@
using System;
-using System.Collections.Generic;
using Umbraco.Core.Composing;
namespace Umbraco.Core.Migrations
@@ -15,7 +14,7 @@ namespace Umbraco.Core.Migrations
public IMigration Build(Type migrationType, IMigrationContext context)
{
- return (IMigration) _container.CreateInstance(migrationType, new Dictionary{{"context", context}});
+ return (IMigration) _container.CreateInstance(migrationType, context);
}
}
}
diff --git a/src/Umbraco.Core/Persistence/SqlContext.cs b/src/Umbraco.Core/Persistence/SqlContext.cs
index feb92e0849..6f9f91114c 100644
--- a/src/Umbraco.Core/Persistence/SqlContext.cs
+++ b/src/Umbraco.Core/Persistence/SqlContext.cs
@@ -12,6 +12,8 @@ namespace Umbraco.Core.Persistence
///
public class SqlContext : ISqlContext
{
+ private readonly Lazy _mappers;
+
///
/// Initializes a new instance of the class.
///
@@ -20,24 +22,20 @@ namespace Umbraco.Core.Persistence
/// The database type.
/// The mappers.
public SqlContext(ISqlSyntaxProvider sqlSyntax, DatabaseType databaseType, IPocoDataFactory pocoDataFactory, IMapperCollection mappers = null)
- {
- // for tests
- Mappers = mappers ?? new Mappers.MapperCollection(Enumerable.Empty());
-
- SqlSyntax = sqlSyntax ?? throw new ArgumentNullException(nameof(sqlSyntax));
- PocoDataFactory = pocoDataFactory ?? throw new ArgumentNullException(nameof(pocoDataFactory));
- DatabaseType = databaseType ?? throw new ArgumentNullException(nameof(databaseType));
- Templates = new SqlTemplates(this);
- }
-
- // fixme
- internal SqlContext()
+ : this(sqlSyntax, databaseType, pocoDataFactory, new Lazy(() => mappers ?? new Mappers.MapperCollection(Enumerable.Empty())))
{ }
- internal void Initialize(ISqlSyntaxProvider sqlSyntax, DatabaseType databaseType, IPocoDataFactory pocoDataFactory, IMapperCollection mappers = null)
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ /// The sql syntax provider.
+ /// The Poco data factory.
+ /// The database type.
+ /// The mappers.
+ public SqlContext(ISqlSyntaxProvider sqlSyntax, DatabaseType databaseType, IPocoDataFactory pocoDataFactory, Lazy mappers)
{
// for tests
- Mappers = mappers ?? new Mappers.MapperCollection(Enumerable.Empty());
+ _mappers = mappers;
SqlSyntax = sqlSyntax ?? throw new ArgumentNullException(nameof(sqlSyntax));
PocoDataFactory = pocoDataFactory ?? throw new ArgumentNullException(nameof(pocoDataFactory));
@@ -46,10 +44,10 @@ namespace Umbraco.Core.Persistence
}
///
- public ISqlSyntaxProvider SqlSyntax { get; private set; }
+ public ISqlSyntaxProvider SqlSyntax { get; }
///
- public DatabaseType DatabaseType { get; private set; }
+ public DatabaseType DatabaseType { get; }
///
public Sql Sql() => NPoco.Sql.BuilderFor((ISqlContext) this);
@@ -61,12 +59,12 @@ namespace Umbraco.Core.Persistence
public IQuery Query() => new Query(this);
///
- public SqlTemplates Templates { get; private set; }
+ public SqlTemplates Templates { get; }
///
- public IPocoDataFactory PocoDataFactory { get; private set; }
+ public IPocoDataFactory PocoDataFactory { get; }
///
- public IMapperCollection Mappers { get; private set; }
+ public IMapperCollection Mappers => _mappers.Value;
}
}
diff --git a/src/Umbraco.Core/Persistence/SqlSyntax/SqlServerSyntaxProvider.cs b/src/Umbraco.Core/Persistence/SqlSyntax/SqlServerSyntaxProvider.cs
index d9bfe85098..8b8550b694 100644
--- a/src/Umbraco.Core/Persistence/SqlSyntax/SqlServerSyntaxProvider.cs
+++ b/src/Umbraco.Core/Persistence/SqlSyntax/SqlServerSyntaxProvider.cs
@@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.Data.Common;
using System.Linq;
using NPoco;
+using Umbraco.Core.Logging;
using Umbraco.Core.Persistence.DatabaseModelDefinitions;
using Umbraco.Core.Scoping;
@@ -97,7 +98,7 @@ namespace Umbraco.Core.Persistence.SqlSyntax
}
}
- internal ServerVersionInfo GetSetVersion(string connectionString, string providerName)
+ internal ServerVersionInfo GetSetVersion(string connectionString, string providerName, ILogger logger)
{
var factory = DbProviderFactories.GetFactory(providerName);
var connection = factory.CreateConnection();
@@ -132,12 +133,14 @@ namespace Umbraco.Core.Persistence.SqlSyntax
command.CommandText = sql;
using (var reader = command.ExecuteReader())
{
+ reader.Read();
version = new ServerVersionInfo(reader.GetString(0), reader.GetString(2), reader.GetString(3), (EngineEdition) reader.GetInt32(5), reader.GetString(7), reader.GetString(9));
}
connection.Close();
}
- catch
+ catch (Exception e)
{
+ logger.Error(e, "Failed to detected SqlServer version.");
version = new ServerVersionInfo(); // all unknown
}
}
diff --git a/src/Umbraco.Core/Persistence/UmbracoDatabaseFactory.cs b/src/Umbraco.Core/Persistence/UmbracoDatabaseFactory.cs
index e55f462a7b..c9a509fe94 100644
--- a/src/Umbraco.Core/Persistence/UmbracoDatabaseFactory.cs
+++ b/src/Umbraco.Core/Persistence/UmbracoDatabaseFactory.cs
@@ -28,7 +28,6 @@ namespace Umbraco.Core.Persistence
private readonly ILogger _logger;
private readonly ReaderWriterLockSlim _lock = new ReaderWriterLockSlim();
- private SqlContext _sqlContext;
private DatabaseFactory _npocoDatabaseFactory;
private IPocoDataFactory _pocoDataFactory;
private string _connectionString;
@@ -130,7 +129,7 @@ namespace Umbraco.Core.Persistence
if (setting.IsNullOrWhiteSpace() || !setting.StartsWith("SqlServer.")
|| !Enum.TryParse(setting.Substring("SqlServer.".Length), out var versionName, true))
{
- versionName = ((SqlServerSyntaxProvider) _sqlSyntax).GetSetVersion(_connectionString, _providerName).ProductVersionName;
+ versionName = ((SqlServerSyntaxProvider) _sqlSyntax).GetSetVersion(_connectionString, _providerName, _logger).ProductVersionName;
}
else
{
@@ -156,7 +155,7 @@ namespace Umbraco.Core.Persistence
}
///
- public ISqlContext SqlContext => _sqlContext ?? (_sqlContext = new SqlContext(_sqlSyntax, _databaseType, _pocoDataFactory, _mappers.Value));
+ public ISqlContext SqlContext { get; private set; }
///
public void ConfigureForUpgrade()
@@ -209,6 +208,8 @@ namespace Umbraco.Core.Persistence
if (_npocoDatabaseFactory == null) throw new NullReferenceException("The call to UmbracoDatabaseFactory.Config yielded a null UmbracoDatabaseFactory instance.");
+ SqlContext = new SqlContext(_sqlSyntax, _databaseType, _pocoDataFactory, _mappers);
+
_logger.Debug("Configured.");
Configured = true;
}
diff --git a/src/Umbraco.Core/Runtime/CoreRuntime.cs b/src/Umbraco.Core/Runtime/CoreRuntime.cs
index d4c7d80c3d..21ce073719 100644
--- a/src/Umbraco.Core/Runtime/CoreRuntime.cs
+++ b/src/Umbraco.Core/Runtime/CoreRuntime.cs
@@ -52,8 +52,6 @@ namespace Umbraco.Core.Runtime
// create and register the essential services
// ie the bare minimum required to boot
- var composition = new Composition(container, RuntimeLevel.Boot);
-
// loggers
var logger = GetLogger();
container.RegisterInstance(logger);
@@ -93,7 +91,10 @@ namespace Umbraco.Core.Runtime
{
Level = RuntimeLevel.Boot
};
- container.RegisterInstance(_state);
+ container.RegisterInstance(_state);
+
+ // create the composition
+ var composition = new Composition(container, typeLoader, RuntimeLevel.Boot);
// register runtime-level services
Compose(composition);
diff --git a/src/Umbraco.Tests/Components/ComponentTests.cs b/src/Umbraco.Tests/Components/ComponentTests.cs
index 111a1370ee..9c38731cb8 100644
--- a/src/Umbraco.Tests/Components/ComponentTests.cs
+++ b/src/Umbraco.Tests/Components/ComponentTests.cs
@@ -33,7 +33,7 @@ namespace Umbraco.Tests.Components
var p = new ScopeProvider(f, fs, logger);
mock.Setup(x => x.GetInstance(typeof (ILogger))).Returns(logger);
- mock.Setup(x => x.GetInstance(typeof (ProfilingLogger))).Returns(new ProfilingLogger(Mock.Of(), Mock.Of()));
+ mock.Setup(x => x.GetInstance(typeof (IProfilingLogger))).Returns(new ProfilingLogger(Mock.Of(), Mock.Of()));
mock.Setup(x => x.GetInstance(typeof (IUmbracoDatabaseFactory))).Returns(f);
mock.Setup(x => x.GetInstance(typeof (IScopeProvider))).Returns(p);
diff --git a/src/Umbraco.Tests/Composing/ComposingTestBase.cs b/src/Umbraco.Tests/Composing/ComposingTestBase.cs
index be595885e7..7380a5968a 100644
--- a/src/Umbraco.Tests/Composing/ComposingTestBase.cs
+++ b/src/Umbraco.Tests/Composing/ComposingTestBase.cs
@@ -13,7 +13,7 @@ namespace Umbraco.Tests.Composing
{
protected TypeLoader TypeLoader { get; private set; }
- protected ProfilingLogger ProfilingLogger { get; private set; }
+ protected IProfilingLogger ProfilingLogger { get; private set; }
[SetUp]
public void Initialize()
diff --git a/src/Umbraco.Tests/Composing/TypeFinderTests.cs b/src/Umbraco.Tests/Composing/TypeFinderTests.cs
index 955f6f94c8..075fab4778 100644
--- a/src/Umbraco.Tests/Composing/TypeFinderTests.cs
+++ b/src/Umbraco.Tests/Composing/TypeFinderTests.cs
@@ -93,7 +93,7 @@ namespace Umbraco.Tests.Composing
Assert.AreEqual(21, typesFound.Count()); // + classes in Umbraco.Web are marked with [Tree]
}
- private static ProfilingLogger GetTestProfilingLogger()
+ private static IProfilingLogger GetTestProfilingLogger()
{
var logger = new DebugDiagnosticsLogger();
var profiler = new TestProfiler();
diff --git a/src/Umbraco.Tests/Models/ContentTests.cs b/src/Umbraco.Tests/Models/ContentTests.cs
index aed31ca1be..37f2d4e62d 100644
--- a/src/Umbraco.Tests/Models/ContentTests.cs
+++ b/src/Umbraco.Tests/Models/ContentTests.cs
@@ -55,7 +55,7 @@ namespace Umbraco.Tests.Models
var content = new Content("content", -1, contentType) { Id = 1, VersionId = 1 };
const string langFr = "fr-FR";
-
+
contentType.Variations = ContentVariation.Culture;
Assert.IsFalse(content.IsPropertyDirty("CultureInfos")); //hasn't been changed
@@ -73,7 +73,7 @@ namespace Umbraco.Tests.Models
Thread.Sleep(500); //The "Date" wont be dirty if the test runs too fast since it will be the same date
content.SetCultureName("name-fr", langFr);
- Assert.IsTrue(frCultureName.IsPropertyDirty("Date"));
+ Assert.IsTrue(frCultureName.IsPropertyDirty("Date"));
Assert.IsTrue(content.IsPropertyDirty("CultureInfos")); //it's true now since we've updated a name
}
@@ -104,7 +104,7 @@ namespace Umbraco.Tests.Models
Thread.Sleep(500); //The "Date" wont be dirty if the test runs too fast since it will be the same date
content.SetCultureName("name-fr", langFr);
content.PublishCulture(langFr); //we've set the name, now we're publishing it
- Assert.IsTrue(frCultureName.IsPropertyDirty("Date"));
+ Assert.IsTrue(frCultureName.IsPropertyDirty("Date"));
Assert.IsTrue(content.IsPropertyDirty("PublishCultureInfos")); //it's true now since we've updated a name
}
@@ -210,7 +210,7 @@ namespace Umbraco.Tests.Models
Assert.AreNotSame(content.Properties, clone.Properties);
}
- private static ProfilingLogger GetTestProfilingLogger()
+ private static IProfilingLogger GetTestProfilingLogger()
{
var logger = new DebugDiagnosticsLogger();
var profiler = new TestProfiler();
@@ -309,7 +309,7 @@ namespace Umbraco.Tests.Models
content.UpdateDate = DateTime.Now;
content.WriterId = 23;
-
+
// Act
var clone = (Content)content.DeepClone();
@@ -406,7 +406,7 @@ namespace Umbraco.Tests.Models
content.SetCultureName("Hello", "en-US");
content.SetCultureName("World", "es-ES");
content.PublishCulture("en-US");
-
+
var i = 200;
foreach (var property in content.Properties)
{
@@ -424,7 +424,7 @@ namespace Umbraco.Tests.Models
{
Id = 88
};
-
+
content.Trashed = true;
content.UpdateDate = DateTime.Now;
content.WriterId = 23;
diff --git a/src/Umbraco.Tests/Models/ContentTypeTests.cs b/src/Umbraco.Tests/Models/ContentTypeTests.cs
index a0e9a370da..d505c38ae0 100644
--- a/src/Umbraco.Tests/Models/ContentTypeTests.cs
+++ b/src/Umbraco.Tests/Models/ContentTypeTests.cs
@@ -93,7 +93,7 @@ namespace Umbraco.Tests.Models
}
}
- private static ProfilingLogger GetTestProfilingLogger()
+ private static IProfilingLogger GetTestProfilingLogger()
{
var logger = new DebugDiagnosticsLogger();
var profiler = new TestProfiler();
diff --git a/src/Umbraco.Tests/Routing/RenderRouteHandlerTests.cs b/src/Umbraco.Tests/Routing/RenderRouteHandlerTests.cs
index d27d6fa34c..0bb12ebda5 100644
--- a/src/Umbraco.Tests/Routing/RenderRouteHandlerTests.cs
+++ b/src/Umbraco.Tests/Routing/RenderRouteHandlerTests.cs
@@ -55,7 +55,7 @@ namespace Umbraco.Tests.Routing
container.RegisterInstance(logger);
var profiler = Mock.Of();
container.RegisterInstance(profiler);
- container.RegisterInstance(new ProfilingLogger(logger, profiler));
+ container.RegisterInstance(new ProfilingLogger(logger, profiler));
base.Boot(container);
}
@@ -182,7 +182,7 @@ namespace Umbraco.Tests.Routing
///
public class CustomDocumentController : RenderMvcController
{
- public CustomDocumentController(IGlobalSettings globalSettings, UmbracoContext umbracoContext, ServiceContext services, CacheHelper applicationCache, ILogger logger, ProfilingLogger profilingLogger)
+ public CustomDocumentController(IGlobalSettings globalSettings, UmbracoContext umbracoContext, ServiceContext services, CacheHelper applicationCache, ILogger logger, IProfilingLogger profilingLogger)
: base(globalSettings, umbracoContext, services, applicationCache, logger, profilingLogger)
{
}
diff --git a/src/Umbraco.Tests/Services/ContentServicePerformanceTest.cs b/src/Umbraco.Tests/Services/ContentServicePerformanceTest.cs
index 8c6a2f4f58..ce673bcd47 100644
--- a/src/Umbraco.Tests/Services/ContentServicePerformanceTest.cs
+++ b/src/Umbraco.Tests/Services/ContentServicePerformanceTest.cs
@@ -45,7 +45,7 @@ namespace Umbraco.Tests.Services
Assert.IsInstanceOf(Current.Profiler);
}
- private static ProfilingLogger GetTestProfilingLogger()
+ private static IProfilingLogger GetTestProfilingLogger()
{
var logger = new DebugDiagnosticsLogger();
var profiler = new TestProfiler();
diff --git a/src/Umbraco.Tests/Services/PerformanceTests.cs b/src/Umbraco.Tests/Services/PerformanceTests.cs
index 900a466a1d..09743b350f 100644
--- a/src/Umbraco.Tests/Services/PerformanceTests.cs
+++ b/src/Umbraco.Tests/Services/PerformanceTests.cs
@@ -57,7 +57,7 @@ namespace Umbraco.Tests.Services
base.TearDown();
}
- private static ProfilingLogger GetTestProfilingLogger()
+ private static IProfilingLogger GetTestProfilingLogger()
{
var logger = new DebugDiagnosticsLogger();
var profiler = new TestProfiler();
diff --git a/src/Umbraco.Tests/TestHelpers/BaseWebTest.cs b/src/Umbraco.Tests/TestHelpers/BaseWebTest.cs
index 421870c969..cabbf40fe9 100644
--- a/src/Umbraco.Tests/TestHelpers/BaseWebTest.cs
+++ b/src/Umbraco.Tests/TestHelpers/BaseWebTest.cs
@@ -28,7 +28,7 @@ namespace Umbraco.Tests.TestHelpers
base.Compose();
Container.RegisterSingleton();
- Container.RegisterSingleton();
+ Container.RegisterSingleton();
}
protected override void Initialize()
diff --git a/src/Umbraco.Tests/TestHelpers/TestWithDatabaseBase.cs b/src/Umbraco.Tests/TestHelpers/TestWithDatabaseBase.cs
index fa61381eed..02df0b4271 100644
--- a/src/Umbraco.Tests/TestHelpers/TestWithDatabaseBase.cs
+++ b/src/Umbraco.Tests/TestHelpers/TestWithDatabaseBase.cs
@@ -101,7 +101,7 @@ namespace Umbraco.Tests.TestHelpers
public override void TearDown()
{
- var profilingLogger = Container.TryGetInstance();
+ var profilingLogger = Container.TryGetInstance();
var timer = profilingLogger?.TraceDuration("teardown"); // fixme move that one up
try
{
diff --git a/src/Umbraco.Tests/Testing/UmbracoTestBase.cs b/src/Umbraco.Tests/Testing/UmbracoTestBase.cs
index 969bfff4fe..6459342e7a 100644
--- a/src/Umbraco.Tests/Testing/UmbracoTestBase.cs
+++ b/src/Umbraco.Tests/Testing/UmbracoTestBase.cs
@@ -98,7 +98,7 @@ namespace Umbraco.Tests.Testing
protected IProfiler Profiler => Container.GetInstance();
- protected virtual ProfilingLogger ProfilingLogger => Container.GetInstance();
+ protected virtual IProfilingLogger ProfilingLogger => Container.GetInstance();
protected CacheHelper CacheHelper => Container.GetInstance();
@@ -178,7 +178,7 @@ namespace Umbraco.Tests.Testing
Container.RegisterSingleton(f => new LogProfiler(f.GetInstance()));
}
- Container.RegisterSingleton(f => new ProfilingLogger(f.GetInstance(), f.GetInstance()));
+ Container.RegisterSingleton(f => new ProfilingLogger(f.GetInstance(), f.GetInstance()));
}
protected virtual void ComposeWeb()
@@ -255,7 +255,7 @@ namespace Umbraco.Tests.Testing
private static TypeLoader CreateCommonPluginManager(IContainer f)
{
- return new TypeLoader(f.GetInstance().RuntimeCache, f.GetInstance(), f.GetInstance(), false)
+ return new TypeLoader(f.GetInstance().RuntimeCache, f.GetInstance(), f.GetInstance(), false)
{
AssembliesToScan = new[]
{
diff --git a/src/Umbraco.Tests/UmbracoExamine/EventsTest.cs b/src/Umbraco.Tests/UmbracoExamine/EventsTest.cs
index e2279ee833..b3fcc3c3cd 100644
--- a/src/Umbraco.Tests/UmbracoExamine/EventsTest.cs
+++ b/src/Umbraco.Tests/UmbracoExamine/EventsTest.cs
@@ -22,7 +22,7 @@ namespace Umbraco.Tests.UmbracoExamine
using (indexer.ProcessNonAsync())
{
var searcher = indexer.GetSearcher();
-
+
var contentService = new ExamineDemoDataContentService();
//get a node from the data repo
var node = contentService.GetPublishedContentByXPath("//*[string-length(@id)>0 and number(@id)>0]")
diff --git a/src/Umbraco.Tests/UmbracoExamine/ExamineBaseTest.cs b/src/Umbraco.Tests/UmbracoExamine/ExamineBaseTest.cs
index 5ca195849b..e496d90dd1 100644
--- a/src/Umbraco.Tests/UmbracoExamine/ExamineBaseTest.cs
+++ b/src/Umbraco.Tests/UmbracoExamine/ExamineBaseTest.cs
@@ -18,8 +18,8 @@ namespace Umbraco.Tests.UmbracoExamine
_profilingLogger = new ProfilingLogger(logger, new LogProfiler(logger));
}
- private ProfilingLogger _profilingLogger;
- protected override ProfilingLogger ProfilingLogger => _profilingLogger;
+ private IProfilingLogger _profilingLogger;
+ protected override IProfilingLogger ProfilingLogger => _profilingLogger;
///
/// sets up resolvers before resolution is frozen
diff --git a/src/Umbraco.Tests/UmbracoExamine/IndexInitializer.cs b/src/Umbraco.Tests/UmbracoExamine/IndexInitializer.cs
index 8b57e10849..b15342aa57 100644
--- a/src/Umbraco.Tests/UmbracoExamine/IndexInitializer.cs
+++ b/src/Umbraco.Tests/UmbracoExamine/IndexInitializer.cs
@@ -29,7 +29,7 @@ namespace Umbraco.Tests.UmbracoExamine
internal static class IndexInitializer
{
public static UmbracoContentIndexer GetUmbracoIndexer(
- ProfilingLogger profilingLogger,
+ IProfilingLogger profilingLogger,
Directory luceneDir,
ISqlContext sqlContext,
Analyzer analyzer = null,
diff --git a/src/Umbraco.Tests/Web/TemplateUtilitiesTests.cs b/src/Umbraco.Tests/Web/TemplateUtilitiesTests.cs
index 336ee3eff4..fd8ace1904 100644
--- a/src/Umbraco.Tests/Web/TemplateUtilitiesTests.cs
+++ b/src/Umbraco.Tests/Web/TemplateUtilitiesTests.cs
@@ -81,7 +81,7 @@ namespace Umbraco.Tests.Web
.Returns((UmbracoContext umbCtx, IPublishedContent content, UrlProviderMode mode, string culture, Uri url) => "/my-test-url");
var globalSettings = SettingsForTests.GenerateMockGlobalSettings();
-
+
var contentType = new PublishedContentType(666, "alias", PublishedItemType.Content, Enumerable.Empty(), Enumerable.Empty(), ContentVariation.Nothing);
var publishedContent = Mock.Of();
Mock.Get(publishedContent).Setup(x => x.Id).Returns(1234);
diff --git a/src/Umbraco.Web/BatchedDatabaseServerMessenger.cs b/src/Umbraco.Web/BatchedDatabaseServerMessenger.cs
index 8929c6edd9..ce0be7fbe6 100644
--- a/src/Umbraco.Web/BatchedDatabaseServerMessenger.cs
+++ b/src/Umbraco.Web/BatchedDatabaseServerMessenger.cs
@@ -26,7 +26,7 @@ namespace Umbraco.Web
private readonly IUmbracoDatabaseFactory _databaseFactory;
public BatchedDatabaseServerMessenger(
- IRuntimeState runtime, IUmbracoDatabaseFactory databaseFactory, IScopeProvider scopeProvider, ISqlContext sqlContext, ProfilingLogger proflog, IGlobalSettings globalSettings,
+ IRuntimeState runtime, IUmbracoDatabaseFactory databaseFactory, IScopeProvider scopeProvider, ISqlContext sqlContext, IProfilingLogger proflog, IGlobalSettings globalSettings,
bool enableDistCalls, DatabaseServerMessengerOptions options)
: base(runtime, scopeProvider, sqlContext, proflog, globalSettings, enableDistCalls, options)
{
diff --git a/src/Umbraco.Web/Components/DatabaseServerRegistrarAndMessengerComponent.cs b/src/Umbraco.Web/Components/DatabaseServerRegistrarAndMessengerComponent.cs
index 6af55dbdac..1c44098943 100644
--- a/src/Umbraco.Web/Components/DatabaseServerRegistrarAndMessengerComponent.cs
+++ b/src/Umbraco.Web/Components/DatabaseServerRegistrarAndMessengerComponent.cs
@@ -57,7 +57,7 @@ namespace Umbraco.Web.Components
var runtime = ContainerExtensions.GetInstance(factory);
var databaseFactory = ContainerExtensions.GetInstance(factory);
var globalSettings = ContainerExtensions.GetInstance(factory);
- var proflog = ContainerExtensions.GetInstance(factory);
+ var proflog = ContainerExtensions.GetInstance(factory);
var scopeProvider = ContainerExtensions.GetInstance(factory);
var sqlContext = ContainerExtensions.GetInstance(factory);
diff --git a/src/Umbraco.Web/Composing/Composers/ControllersComposer.cs b/src/Umbraco.Web/Composing/Composers/ControllersComposer.cs
index 2225c369df..5491c0cc97 100644
--- a/src/Umbraco.Web/Composing/Composers/ControllersComposer.cs
+++ b/src/Umbraco.Web/Composing/Composers/ControllersComposer.cs
@@ -11,36 +11,33 @@ namespace Umbraco.Web.Composing.Composers
///
/// Registers all IControllers using the TypeLoader for scanning and caching found instances for the calling assembly
///
- public static Composition ComposeMvcControllers(this Composition composition, TypeLoader typeLoader, Assembly assembly)
+ public static Composition ComposeMvcControllers(this Composition composition, Assembly assembly)
{
- var container = composition.Container;
-
//TODO: We've already scanned for UmbracoApiControllers and SurfaceControllers - should we scan again
// for all controllers? Seems like we should just do this once and then filter. That said here we are
// only scanning our own single assembly. Hrm.
- container.RegisterControllers(typeLoader, assembly);
+ composition.RegisterControllers(assembly);
return composition;
}
///
/// Registers all IHttpController using the TypeLoader for scanning and caching found instances for the calling assembly
///
- public static Composition ComposeApiControllers(this Composition composition, TypeLoader typeLoader, Assembly assembly)
+ public static Composition ComposeApiControllers(this Composition composition, Assembly assembly)
{
- var container = composition.Container;
-
//TODO: We've already scanned for UmbracoApiControllers and SurfaceControllers - should we scan again
// for all controllers? Seems like we should just do this once and then filter. That said here we are
// only scanning our own single assembly. Hrm.
- container.RegisterControllers(typeLoader, assembly);
+ composition.RegisterControllers(assembly);
return composition;
}
- private static void RegisterControllers(this IContainer container, TypeLoader typeLoader, Assembly assembly)
+ private static void RegisterControllers(this Composition composition, Assembly assembly)
{
- var types = typeLoader.GetTypes(specificAssemblies: new[] { assembly });
+ var container = composition.Container;
+ var types = composition.TypeLoader.GetTypes(specificAssemblies: new[] { assembly });
foreach (var type in types)
container.Register(type, Lifetime.Request);
}
diff --git a/src/Umbraco.Web/Controllers/UmbLoginController.cs b/src/Umbraco.Web/Controllers/UmbLoginController.cs
index 2774cdebc6..60b7f3ee21 100644
--- a/src/Umbraco.Web/Controllers/UmbLoginController.cs
+++ b/src/Umbraco.Web/Controllers/UmbLoginController.cs
@@ -16,7 +16,7 @@ namespace Umbraco.Web.Controllers
{
}
- public UmbLoginController(UmbracoContext umbracoContext, IUmbracoDatabaseFactory databaseFactory, ServiceContext services, CacheHelper applicationCache, ILogger logger, ProfilingLogger profilingLogger)
+ public UmbLoginController(UmbracoContext umbracoContext, IUmbracoDatabaseFactory databaseFactory, ServiceContext services, CacheHelper applicationCache, ILogger logger, IProfilingLogger profilingLogger)
: base(umbracoContext, databaseFactory, services, applicationCache, logger, profilingLogger)
{
}
diff --git a/src/Umbraco.Web/Controllers/UmbLoginStatusController.cs b/src/Umbraco.Web/Controllers/UmbLoginStatusController.cs
index 1c52c0e537..46c46a9b72 100644
--- a/src/Umbraco.Web/Controllers/UmbLoginStatusController.cs
+++ b/src/Umbraco.Web/Controllers/UmbLoginStatusController.cs
@@ -18,7 +18,7 @@ namespace Umbraco.Web.Controllers
{
}
- public UmbLoginStatusController(UmbracoContext umbracoContext, IUmbracoDatabaseFactory databaseFactory, ServiceContext services, CacheHelper applicationCache, ILogger logger, ProfilingLogger profilingLogger) : base(umbracoContext, databaseFactory, services, applicationCache, logger, profilingLogger)
+ public UmbLoginStatusController(UmbracoContext umbracoContext, IUmbracoDatabaseFactory databaseFactory, ServiceContext services, CacheHelper applicationCache, ILogger logger, IProfilingLogger profilingLogger) : base(umbracoContext, databaseFactory, services, applicationCache, logger, profilingLogger)
{
}
diff --git a/src/Umbraco.Web/Controllers/UmbProfileController.cs b/src/Umbraco.Web/Controllers/UmbProfileController.cs
index 6e24853f34..95ad26c8b1 100644
--- a/src/Umbraco.Web/Controllers/UmbProfileController.cs
+++ b/src/Umbraco.Web/Controllers/UmbProfileController.cs
@@ -19,7 +19,7 @@ namespace Umbraco.Web.Controllers
{
}
- public UmbProfileController(UmbracoContext umbracoContext, IUmbracoDatabaseFactory databaseFactory, ServiceContext services, CacheHelper applicationCache, ILogger logger, ProfilingLogger profilingLogger) : base(umbracoContext, databaseFactory, services, applicationCache, logger, profilingLogger)
+ public UmbProfileController(UmbracoContext umbracoContext, IUmbracoDatabaseFactory databaseFactory, ServiceContext services, CacheHelper applicationCache, ILogger logger, IProfilingLogger profilingLogger) : base(umbracoContext, databaseFactory, services, applicationCache, logger, profilingLogger)
{
}
diff --git a/src/Umbraco.Web/Controllers/UmbRegisterController.cs b/src/Umbraco.Web/Controllers/UmbRegisterController.cs
index b0e1f65b23..8ad8ff0c58 100644
--- a/src/Umbraco.Web/Controllers/UmbRegisterController.cs
+++ b/src/Umbraco.Web/Controllers/UmbRegisterController.cs
@@ -18,7 +18,7 @@ namespace Umbraco.Web.Controllers
{
}
- public UmbRegisterController(UmbracoContext umbracoContext, IUmbracoDatabaseFactory databaseFactory, ServiceContext services, CacheHelper applicationCache, ILogger logger, ProfilingLogger profilingLogger) : base(umbracoContext, databaseFactory, services, applicationCache, logger, profilingLogger)
+ public UmbRegisterController(UmbracoContext umbracoContext, IUmbracoDatabaseFactory databaseFactory, ServiceContext services, CacheHelper applicationCache, ILogger logger, IProfilingLogger profilingLogger) : base(umbracoContext, databaseFactory, services, applicationCache, logger, profilingLogger)
{
}
diff --git a/src/Umbraco.Web/Editors/AuthenticationController.cs b/src/Umbraco.Web/Editors/AuthenticationController.cs
index 203e4ca04f..3893afd62f 100644
--- a/src/Umbraco.Web/Editors/AuthenticationController.cs
+++ b/src/Umbraco.Web/Editors/AuthenticationController.cs
@@ -57,7 +57,7 @@ namespace Umbraco.Web.Editors
{
}
- public AuthenticationController(IGlobalSettings globalSettings, UmbracoContext umbracoContext, ISqlContext sqlContext, ServiceContext services, CacheHelper applicationCache, ILogger logger, ProfilingLogger profilingLogger, IRuntimeState runtimeState)
+ public AuthenticationController(IGlobalSettings globalSettings, UmbracoContext umbracoContext, ISqlContext sqlContext, ServiceContext services, CacheHelper applicationCache, ILogger logger, IProfilingLogger profilingLogger, IRuntimeState runtimeState)
: base(globalSettings, umbracoContext, sqlContext, services, applicationCache, logger, profilingLogger, runtimeState)
{
}
@@ -447,7 +447,7 @@ namespace Umbraco.Web.Editors
if (LastLoginDate == default && IsApproved == false && InvitedDate != null)
return UserState.Invited;
*/
- if (identityUser != null && !identityUser.IsApproved)
+ if (identityUser != null && !identityUser.IsApproved)
{
var user = Services.UserService.GetByUsername(identityUser.UserName);
//also check InvitedDate and never logged in, otherwise this would allow a disabled user to reactivate their account with a forgot password
diff --git a/src/Umbraco.Web/Editors/BackOfficeController.cs b/src/Umbraco.Web/Editors/BackOfficeController.cs
index f015fba25f..668b35c2d9 100644
--- a/src/Umbraco.Web/Editors/BackOfficeController.cs
+++ b/src/Umbraco.Web/Editors/BackOfficeController.cs
@@ -49,7 +49,7 @@ namespace Umbraco.Web.Editors
private const string TokenPasswordResetCode = "PasswordResetCode";
private static readonly string[] TempDataTokenNames = { TokenExternalSignInError, TokenPasswordResetCode };
- public BackOfficeController(ManifestParser manifestParser, UmbracoFeatures features, IGlobalSettings globalSettings, UmbracoContext umbracoContext, ServiceContext services, CacheHelper applicationCache, ILogger logger, ProfilingLogger profilingLogger, IRuntimeState runtimeState)
+ public BackOfficeController(ManifestParser manifestParser, UmbracoFeatures features, IGlobalSettings globalSettings, UmbracoContext umbracoContext, ServiceContext services, CacheHelper applicationCache, ILogger logger, IProfilingLogger profilingLogger, IRuntimeState runtimeState)
: base(globalSettings, umbracoContext, services, applicationCache, logger, profilingLogger)
{
_manifestParser = manifestParser;
@@ -86,7 +86,7 @@ namespace Umbraco.Web.Editors
Core.Constants.Security.BackOfficeAuthenticationType,
Core.Constants.Security.BackOfficeExternalAuthenticationType);
}
-
+
if (invite == null)
{
Logger.Warn("VerifyUser endpoint reached with invalid token: NULL");
@@ -192,7 +192,7 @@ namespace Umbraco.Web.Editors
{
var initJs = new JsInitialization(_manifestParser);
var initCss = new CssInitialization(_manifestParser);
-
+
var files = initJs.OptimizeBackOfficeScriptFiles(HttpContext, JsInitialization.GetDefaultInitialization());
var result = JsInitialization.GetJavascriptInitialization(HttpContext, files, "umbraco");
result += initCss.GetStylesheetInitialization(HttpContext);
@@ -379,9 +379,9 @@ namespace Umbraco.Web.Editors
ExternalSignInAutoLinkOptions autoLinkOptions = null;
//Here we can check if the provider associated with the request has been configured to allow
- // new users (auto-linked external accounts). This would never be used with public providers such as
+ // new users (auto-linked external accounts). This would never be used with public providers such as
// Google, unless you for some reason wanted anybody to be able to access the backend if they have a Google account
- // .... not likely!
+ // .... not likely!
var authType = OwinContext.Authentication.GetExternalAuthenticationTypes().FirstOrDefault(x => x.AuthenticationType == loginInfo.Login.LoginProvider);
if (authType == null)
{
@@ -472,7 +472,7 @@ namespace Umbraco.Web.Editors
{
autoLinkUser.AddRole(userGroup.Alias);
}
-
+
//call the callback if one is assigned
if (autoLinkOptions.OnAutoLinking != null)
{
@@ -511,7 +511,7 @@ namespace Umbraco.Web.Editors
}
return true;
}
-
+
private ActionResult RedirectToLocal(string returnUrl)
{
if (Url.IsLocalUrl(returnUrl))
diff --git a/src/Umbraco.Web/Editors/DashboardController.cs b/src/Umbraco.Web/Editors/DashboardController.cs
index 6f42b17af6..8a8db06d8d 100644
--- a/src/Umbraco.Web/Editors/DashboardController.cs
+++ b/src/Umbraco.Web/Editors/DashboardController.cs
@@ -30,13 +30,13 @@ namespace Umbraco.Web.Editors
public DashboardController()
{ }
- public DashboardController(IGlobalSettings globalSettings, UmbracoContext umbracoContext, ISqlContext sqlContext, ServiceContext services, CacheHelper applicationCache, ILogger logger, ProfilingLogger profilingLogger, IRuntimeState runtimeState)
+ public DashboardController(IGlobalSettings globalSettings, UmbracoContext umbracoContext, ISqlContext sqlContext, ServiceContext services, CacheHelper applicationCache, ILogger logger, IProfilingLogger profilingLogger, IRuntimeState runtimeState)
: base(globalSettings, umbracoContext, sqlContext, services, applicationCache, logger, profilingLogger, runtimeState)
{ }
//we have just one instance of HttpClient shared for the entire application
private static readonly HttpClient HttpClient = new HttpClient();
-
+
//we have baseurl as a param to make previewing easier, so we can test with a dev domain from client side
[ValidateAngularAntiForgeryToken]
public async Task GetRemoteDashboardContent(string section, string baseUrl = "https://dashboard.umbraco.org/")
diff --git a/src/Umbraco.Web/Install/Controllers/InstallApiController.cs b/src/Umbraco.Web/Install/Controllers/InstallApiController.cs
index 387360163a..0762dfc12f 100644
--- a/src/Umbraco.Web/Install/Controllers/InstallApiController.cs
+++ b/src/Umbraco.Web/Install/Controllers/InstallApiController.cs
@@ -5,7 +5,6 @@ using System.Reflection;
using System.Web.Http;
using Newtonsoft.Json.Linq;
using Umbraco.Core;
-using Umbraco.Core.Configuration;
using Umbraco.Core.Logging;
using Umbraco.Core.Migrations.Install;
using Umbraco.Web.Install.Models;
@@ -18,18 +17,18 @@ namespace Umbraco.Web.Install.Controllers
public class InstallApiController : ApiController
{
private readonly DatabaseBuilder _databaseBuilder;
- private readonly ProfilingLogger _proflog;
+ private readonly IProfilingLogger _proflog;
private readonly InstallStepCollection _installSteps;
private readonly ILogger _logger;
- public InstallApiController(UmbracoContext umbracoContext, DatabaseBuilder databaseBuilder, ProfilingLogger proflog, InstallHelper installHelper, InstallStepCollection installSteps)
+ public InstallApiController(UmbracoContext umbracoContext, DatabaseBuilder databaseBuilder, IProfilingLogger proflog, InstallHelper installHelper, InstallStepCollection installSteps)
{
UmbracoContext = umbracoContext ?? throw new ArgumentNullException(nameof(umbracoContext));
_databaseBuilder = databaseBuilder ?? throw new ArgumentNullException(nameof(databaseBuilder));
_proflog = proflog ?? throw new ArgumentNullException(nameof(proflog));
_installSteps = installSteps;
InstallHelper = installHelper;
- _logger = _proflog.Logger;
+ _logger = _proflog;
}
///
diff --git a/src/Umbraco.Web/Macros/MacroRenderer.cs b/src/Umbraco.Web/Macros/MacroRenderer.cs
index 5ba9de6577..3cc890c67a 100755
--- a/src/Umbraco.Web/Macros/MacroRenderer.cs
+++ b/src/Umbraco.Web/Macros/MacroRenderer.cs
@@ -567,7 +567,7 @@ namespace Umbraco.Web.Macros
private static readonly Regex HrefRegex = new Regex("href=\"([^\"]*)\"",
RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.IgnorePatternWhitespace);
- public static string GetRenderedMacro(int macroId, Hashtable elements, Hashtable attributes, int pageId, IMacroService macroService, ProfilingLogger plogger)
+ public static string GetRenderedMacro(int macroId, Hashtable elements, Hashtable attributes, int pageId, IMacroService macroService, IProfilingLogger plogger)
{
var m = macroService.GetById(macroId);
if (m == null) return string.Empty;
diff --git a/src/Umbraco.Web/Mvc/PluginController.cs b/src/Umbraco.Web/Mvc/PluginController.cs
index 6590206223..e82d7437e2 100644
--- a/src/Umbraco.Web/Mvc/PluginController.cs
+++ b/src/Umbraco.Web/Mvc/PluginController.cs
@@ -60,7 +60,7 @@ namespace Umbraco.Web.Mvc
///
/// Gets or sets the profiling logger.
///
- public ProfilingLogger ProfilingLogger { get; }
+ public IProfilingLogger ProfilingLogger { get; }
///
/// Gets the membership helper.
@@ -95,12 +95,12 @@ namespace Umbraco.Web.Mvc
Current.Container.GetInstance(),
Current.Container.GetInstance(),
Current.Container.GetInstance(),
- Current.Container.GetInstance()
+ Current.Container.GetInstance()
)
{
}
- protected PluginController(UmbracoContext umbracoContext, IUmbracoDatabaseFactory databaseFactory, ServiceContext services, CacheHelper applicationCache, ILogger logger, ProfilingLogger profilingLogger)
+ protected PluginController(UmbracoContext umbracoContext, IUmbracoDatabaseFactory databaseFactory, ServiceContext services, CacheHelper applicationCache, ILogger logger, IProfilingLogger profilingLogger)
{
UmbracoContext = umbracoContext;
DatabaseFactory = databaseFactory;
diff --git a/src/Umbraco.Web/Mvc/RenderMvcController.cs b/src/Umbraco.Web/Mvc/RenderMvcController.cs
index 7262541610..eb824c0980 100644
--- a/src/Umbraco.Web/Mvc/RenderMvcController.cs
+++ b/src/Umbraco.Web/Mvc/RenderMvcController.cs
@@ -26,7 +26,7 @@ namespace Umbraco.Web.Mvc
ActionInvoker = new RenderActionInvoker();
}
- public RenderMvcController(IGlobalSettings globalSettings, UmbracoContext umbracoContext, ServiceContext services, CacheHelper applicationCache, ILogger logger, ProfilingLogger profilingLogger)
+ public RenderMvcController(IGlobalSettings globalSettings, UmbracoContext umbracoContext, ServiceContext services, CacheHelper applicationCache, ILogger logger, IProfilingLogger profilingLogger)
: base(globalSettings, umbracoContext, services, applicationCache, logger, profilingLogger)
{
ActionInvoker = new RenderActionInvoker();
diff --git a/src/Umbraco.Web/Mvc/SurfaceController.cs b/src/Umbraco.Web/Mvc/SurfaceController.cs
index c01196a4e0..b3e67e4b2b 100644
--- a/src/Umbraco.Web/Mvc/SurfaceController.cs
+++ b/src/Umbraco.Web/Mvc/SurfaceController.cs
@@ -21,7 +21,7 @@ namespace Umbraco.Web.Mvc
{
}
- protected SurfaceController(UmbracoContext umbracoContext, IUmbracoDatabaseFactory databaseFactory, ServiceContext services, CacheHelper applicationCache, ILogger logger, ProfilingLogger profilingLogger)
+ protected SurfaceController(UmbracoContext umbracoContext, IUmbracoDatabaseFactory databaseFactory, ServiceContext services, CacheHelper applicationCache, ILogger logger, IProfilingLogger profilingLogger)
: base(umbracoContext, databaseFactory, services, applicationCache, logger, profilingLogger)
{
}
diff --git a/src/Umbraco.Web/Mvc/UmbracoAuthorizedController.cs b/src/Umbraco.Web/Mvc/UmbracoAuthorizedController.cs
index aba498530a..2f8f7a6e76 100644
--- a/src/Umbraco.Web/Mvc/UmbracoAuthorizedController.cs
+++ b/src/Umbraco.Web/Mvc/UmbracoAuthorizedController.cs
@@ -20,7 +20,7 @@ namespace Umbraco.Web.Mvc
protected UmbracoAuthorizedController()
{ }
- protected UmbracoAuthorizedController(IGlobalSettings globalSettings, UmbracoContext umbracoContext, ServiceContext services, CacheHelper applicationCache, ILogger logger, ProfilingLogger profilingLogger)
+ protected UmbracoAuthorizedController(IGlobalSettings globalSettings, UmbracoContext umbracoContext, ServiceContext services, CacheHelper applicationCache, ILogger logger, IProfilingLogger profilingLogger)
: base(globalSettings, umbracoContext, services, applicationCache, logger, profilingLogger)
{ }
}
diff --git a/src/Umbraco.Web/Mvc/UmbracoController.cs b/src/Umbraco.Web/Mvc/UmbracoController.cs
index b3c62abec0..a7dd23b1ea 100644
--- a/src/Umbraco.Web/Mvc/UmbracoController.cs
+++ b/src/Umbraco.Web/Mvc/UmbracoController.cs
@@ -58,7 +58,7 @@ namespace Umbraco.Web.Mvc
///
/// Gets or sets the profiling logger.
///
- public ProfilingLogger ProfilingLogger { get; set; }
+ public IProfilingLogger ProfilingLogger { get; set; }
protected IOwinContext OwinContext => Request.GetOwinContext();
@@ -85,12 +85,12 @@ namespace Umbraco.Web.Mvc
Current.Container.GetInstance(),
Current.Container.GetInstance(),
Current.Container.GetInstance(),
- Current.Container.GetInstance()
+ Current.Container.GetInstance()
)
{
}
- protected UmbracoController(IGlobalSettings globalSettings, UmbracoContext umbracoContext, ServiceContext services, CacheHelper applicationCache, ILogger logger, ProfilingLogger profilingLogger)
+ protected UmbracoController(IGlobalSettings globalSettings, UmbracoContext umbracoContext, ServiceContext services, CacheHelper applicationCache, ILogger logger, IProfilingLogger profilingLogger)
{
GlobalSettings = globalSettings;
UmbracoContext = umbracoContext;
diff --git a/src/Umbraco.Web/Mvc/UmbracoPageResult.cs b/src/Umbraco.Web/Mvc/UmbracoPageResult.cs
index f23407ab4c..9769945f37 100644
--- a/src/Umbraco.Web/Mvc/UmbracoPageResult.cs
+++ b/src/Umbraco.Web/Mvc/UmbracoPageResult.cs
@@ -15,9 +15,9 @@ namespace Umbraco.Web.Mvc
///
public class UmbracoPageResult : ActionResult
{
- private readonly ProfilingLogger _profilingLogger;
+ private readonly IProfilingLogger _profilingLogger;
- public UmbracoPageResult(ProfilingLogger profilingLogger)
+ public UmbracoPageResult(IProfilingLogger profilingLogger)
{
_profilingLogger = profilingLogger;
}
diff --git a/src/Umbraco.Web/PropertyEditors/ValueConverters/NestedContentManyValueConverter.cs b/src/Umbraco.Web/PropertyEditors/ValueConverters/NestedContentManyValueConverter.cs
index fee6ee8f8a..93e4afc7e5 100644
--- a/src/Umbraco.Web/PropertyEditors/ValueConverters/NestedContentManyValueConverter.cs
+++ b/src/Umbraco.Web/PropertyEditors/ValueConverters/NestedContentManyValueConverter.cs
@@ -16,12 +16,12 @@ namespace Umbraco.Web.PropertyEditors.ValueConverters
///
public class NestedContentManyValueConverter : NestedContentValueConverterBase
{
- private readonly ProfilingLogger _proflog;
+ private readonly IProfilingLogger _proflog;
///
/// Initializes a new instance of the class.
///
- public NestedContentManyValueConverter(IPublishedSnapshotAccessor publishedSnapshotAccessor, IPublishedModelFactory publishedModelFactory, ProfilingLogger proflog)
+ public NestedContentManyValueConverter(IPublishedSnapshotAccessor publishedSnapshotAccessor, IPublishedModelFactory publishedModelFactory, IProfilingLogger proflog)
: base(publishedSnapshotAccessor, publishedModelFactory)
{
_proflog = proflog;
diff --git a/src/Umbraco.Web/PropertyEditors/ValueConverters/NestedContentSingleValueConverter.cs b/src/Umbraco.Web/PropertyEditors/ValueConverters/NestedContentSingleValueConverter.cs
index 52d6c7d53a..e084b3a343 100644
--- a/src/Umbraco.Web/PropertyEditors/ValueConverters/NestedContentSingleValueConverter.cs
+++ b/src/Umbraco.Web/PropertyEditors/ValueConverters/NestedContentSingleValueConverter.cs
@@ -15,12 +15,12 @@ namespace Umbraco.Web.PropertyEditors.ValueConverters
///
public class NestedContentSingleValueConverter : NestedContentValueConverterBase
{
- private readonly ProfilingLogger _proflog;
+ private readonly IProfilingLogger _proflog;
///
/// Initializes a new instance of the class.
///
- public NestedContentSingleValueConverter(IPublishedSnapshotAccessor publishedSnapshotAccessor, IPublishedModelFactory publishedModelFactory, ProfilingLogger proflog)
+ public NestedContentSingleValueConverter(IPublishedSnapshotAccessor publishedSnapshotAccessor, IPublishedModelFactory publishedModelFactory, IProfilingLogger proflog)
: base(publishedSnapshotAccessor, publishedModelFactory)
{
_proflog = proflog;
diff --git a/src/Umbraco.Web/Routing/PublishedRouter.cs b/src/Umbraco.Web/Routing/PublishedRouter.cs
index 80986e2943..387ec8b579 100644
--- a/src/Umbraco.Web/Routing/PublishedRouter.cs
+++ b/src/Umbraco.Web/Routing/PublishedRouter.cs
@@ -27,7 +27,7 @@ namespace Umbraco.Web.Routing
private readonly ContentFinderCollection _contentFinders;
private readonly IContentLastChanceFinder _contentLastChanceFinder;
private readonly ServiceContext _services;
- private readonly ProfilingLogger _profilingLogger;
+ private readonly IProfilingLogger _profilingLogger;
private readonly IVariationContextAccessor _variationContextAccessor;
private readonly ILogger _logger;
@@ -40,7 +40,7 @@ namespace Umbraco.Web.Routing
IContentLastChanceFinder contentLastChanceFinder,
IVariationContextAccessor variationContextAccessor,
ServiceContext services,
- ProfilingLogger proflog,
+ IProfilingLogger proflog,
Func> getRolesForLogin = null)
{
_webRoutingSection = webRoutingSection ?? throw new ArgumentNullException(nameof(webRoutingSection));
@@ -49,7 +49,7 @@ namespace Umbraco.Web.Routing
_services = services ?? throw new ArgumentNullException(nameof(services));
_profilingLogger = proflog ?? throw new ArgumentNullException(nameof(proflog));
_variationContextAccessor = variationContextAccessor ?? throw new ArgumentNullException(nameof(variationContextAccessor));
- _logger = proflog.Logger;
+ _logger = proflog;
GetRolesForLogin = getRolesForLogin ?? (s => Roles.Provider.GetRolesForUser(s));
}
diff --git a/src/Umbraco.Web/Runtime/WebRuntimeComponent.cs b/src/Umbraco.Web/Runtime/WebRuntimeComponent.cs
index c3c74f0c0b..25b14ecadf 100644
--- a/src/Umbraco.Web/Runtime/WebRuntimeComponent.cs
+++ b/src/Umbraco.Web/Runtime/WebRuntimeComponent.cs
@@ -86,10 +86,6 @@ namespace Umbraco.Web.Runtime
container.RegisterSingleton();
container.RegisterSingleton();
- var typeLoader = container.GetInstance();
- var logger = container.GetInstance();
- var proflog = container.GetInstance();
-
// register the http context and umbraco context accessors
// we *should* use the HttpContextUmbracoContextAccessor, however there are cases when
// we have no http context, eg when booting Umbraco or in background threads, so instead
@@ -126,14 +122,14 @@ namespace Umbraco.Web.Runtime
// configure the container for web
container.ConfigureForWeb();
composition
- .ComposeMvcControllers(typeLoader, GetType().Assembly)
- .ComposeApiControllers(typeLoader, GetType().Assembly);
+ .ComposeMvcControllers(GetType().Assembly)
+ .ComposeApiControllers(GetType().Assembly);
composition.GetCollectionBuilder()
- .Add(() => typeLoader.GetTypes()); // fixme which searchable trees?!
+ .Add(() => composition.TypeLoader.GetTypes()); // fixme which searchable trees?!
composition.GetCollectionBuilder()
- .Add(() => typeLoader.GetTypes());
+ .Add(() => composition.TypeLoader.GetTypes());
composition.GetCollectionBuilder();
@@ -143,12 +139,12 @@ namespace Umbraco.Web.Runtime
Current.DefaultRenderMvcControllerType = typeof(RenderMvcController); // fixme WRONG!
composition.GetCollectionBuilder()
- .Add(() => typeLoader.GetTypes());
+ .Add(() => composition.TypeLoader.GetTypes());
- var surfaceControllerTypes = new SurfaceControllerTypeCollection(typeLoader.GetSurfaceControllers());
+ var surfaceControllerTypes = new SurfaceControllerTypeCollection(composition.TypeLoader.GetSurfaceControllers());
container.RegisterInstance(surfaceControllerTypes);
- var umbracoApiControllerTypes = new UmbracoApiControllerTypeCollection(typeLoader.GetUmbracoApiControllers());
+ var umbracoApiControllerTypes = new UmbracoApiControllerTypeCollection(composition.TypeLoader.GetUmbracoApiControllers());
container.RegisterInstance(umbracoApiControllerTypes);
// both TinyMceValueConverter (in Core) and RteMacroRenderingValueConverter (in Web) will be
@@ -156,7 +152,7 @@ namespace Umbraco.Web.Runtime
// here because there cannot be two converters for one property editor - and we want the full
// RteMacroRenderingValueConverter that converts macros, etc. So remove TinyMceValueConverter.
// (the limited one, defined in Core, is there for tests) - same for others
- container.GetInstance()
+ composition.GetCollectionBuilder()
.Remove()
.Remove()
.Remove();
@@ -189,10 +185,10 @@ namespace Umbraco.Web.Runtime
// register *all* checks, except those marked [HideFromTypeFinder] of course
composition.GetCollectionBuilder()
- .Add(() => typeLoader.GetTypes());
+ .Add(() => composition.TypeLoader.GetTypes());
composition.GetCollectionBuilder()
- .Add(() => typeLoader.GetTypes());
+ .Add(() => composition.TypeLoader.GetTypes());
// auto-register views
container.RegisterAuto(typeof(UmbracoViewPage<>));
diff --git a/src/Umbraco.Web/Scheduling/HealthCheckNotifier.cs b/src/Umbraco.Web/Scheduling/HealthCheckNotifier.cs
index 89fba7717d..163549d6c7 100644
--- a/src/Umbraco.Web/Scheduling/HealthCheckNotifier.cs
+++ b/src/Umbraco.Web/Scheduling/HealthCheckNotifier.cs
@@ -15,12 +15,12 @@ namespace Umbraco.Web.Scheduling
private readonly HealthCheckCollection _healthChecks;
private readonly HealthCheckNotificationMethodCollection _notifications;
private readonly ILogger _logger;
- private readonly ProfilingLogger _proflog;
+ private readonly IProfilingLogger _proflog;
public HealthCheckNotifier(IBackgroundTaskRunner runner, int delayMilliseconds, int periodMilliseconds,
HealthCheckCollection healthChecks, HealthCheckNotificationMethodCollection notifications,
IRuntimeState runtimeState,
- ILogger logger, ProfilingLogger proflog)
+ ILogger logger, IProfilingLogger proflog)
: base(runner, delayMilliseconds, periodMilliseconds)
{
_healthChecks = healthChecks;
diff --git a/src/Umbraco.Web/Scheduling/KeepAlive.cs b/src/Umbraco.Web/Scheduling/KeepAlive.cs
index 24f6775166..7ef1ec6453 100644
--- a/src/Umbraco.Web/Scheduling/KeepAlive.cs
+++ b/src/Umbraco.Web/Scheduling/KeepAlive.cs
@@ -13,10 +13,10 @@ namespace Umbraco.Web.Scheduling
private readonly IRuntimeState _runtime;
private readonly ILogger _logger;
private static HttpClient _httpClient;
- private readonly ProfilingLogger _proflog;
+ private readonly IProfilingLogger _proflog;
public KeepAlive(IBackgroundTaskRunner runner, int delayMilliseconds, int periodMilliseconds,
- IRuntimeState runtime, ILogger logger, ProfilingLogger proflog)
+ IRuntimeState runtime, ILogger logger, IProfilingLogger proflog)
: base(runner, delayMilliseconds, periodMilliseconds)
{
_runtime = runtime;
diff --git a/src/Umbraco.Web/Scheduling/LogScrubber.cs b/src/Umbraco.Web/Scheduling/LogScrubber.cs
index ae73da04c8..d5cd114977 100644
--- a/src/Umbraco.Web/Scheduling/LogScrubber.cs
+++ b/src/Umbraco.Web/Scheduling/LogScrubber.cs
@@ -17,11 +17,11 @@ namespace Umbraco.Web.Scheduling
private readonly IAuditService _auditService;
private readonly IUmbracoSettingsSection _settings;
private readonly ILogger _logger;
- private readonly ProfilingLogger _proflog;
+ private readonly IProfilingLogger _proflog;
private readonly IScopeProvider _scopeProvider;
public LogScrubber(IBackgroundTaskRunner runner, int delayMilliseconds, int periodMilliseconds,
- IRuntimeState runtime, IAuditService auditService, IUmbracoSettingsSection settings, IScopeProvider scopeProvider, ILogger logger, ProfilingLogger proflog)
+ IRuntimeState runtime, IAuditService auditService, IUmbracoSettingsSection settings, IScopeProvider scopeProvider, ILogger logger, IProfilingLogger proflog)
: base(runner, delayMilliseconds, periodMilliseconds)
{
_runtime = runtime;
diff --git a/src/Umbraco.Web/Scheduling/ScheduledTasks.cs b/src/Umbraco.Web/Scheduling/ScheduledTasks.cs
index 49fa1e469b..1d0ebb5364 100644
--- a/src/Umbraco.Web/Scheduling/ScheduledTasks.cs
+++ b/src/Umbraco.Web/Scheduling/ScheduledTasks.cs
@@ -21,11 +21,11 @@ namespace Umbraco.Web.Scheduling
private readonly IRuntimeState _runtime;
private readonly IUmbracoSettingsSection _settings;
private readonly ILogger _logger;
- private readonly ProfilingLogger _proflog;
+ private readonly IProfilingLogger _proflog;
private static readonly Hashtable ScheduledTaskTimes = new Hashtable();
public ScheduledTasks(IBackgroundTaskRunner runner, int delayMilliseconds, int periodMilliseconds,
- IRuntimeState runtime, IUmbracoSettingsSection settings, ILogger logger, ProfilingLogger proflog)
+ IRuntimeState runtime, IUmbracoSettingsSection settings, ILogger logger, IProfilingLogger proflog)
: base(runner, delayMilliseconds, periodMilliseconds)
{
_runtime = runtime;
@@ -71,7 +71,7 @@ namespace Umbraco.Web.Scheduling
{
BaseAddress = _runtime.ApplicationUrl
};
-
+
var request = new HttpRequestMessage(HttpMethod.Get, url);
//TODO: pass custom the authorization header, currently these aren't really secured!
diff --git a/src/Umbraco.Web/Scheduling/SchedulerComponent.cs b/src/Umbraco.Web/Scheduling/SchedulerComponent.cs
index d14a7bb34f..a9e8016485 100644
--- a/src/Umbraco.Web/Scheduling/SchedulerComponent.cs
+++ b/src/Umbraco.Web/Scheduling/SchedulerComponent.cs
@@ -28,7 +28,7 @@ namespace Umbraco.Web.Scheduling
private IContentService _contentService;
private IAuditService _auditService;
private ILogger _logger;
- private ProfilingLogger _proflog;
+ private IProfilingLogger _proflog;
private IScopeProvider _scopeProvider;
private HealthCheckCollection _healthChecks;
private HealthCheckNotificationMethodCollection _notifications;
@@ -46,7 +46,7 @@ namespace Umbraco.Web.Scheduling
public void Initialize(IRuntimeState runtime,
IContentService contentService, IAuditService auditService,
HealthCheckCollection healthChecks, HealthCheckNotificationMethodCollection notifications,
- IScopeProvider scopeProvider, ILogger logger, ProfilingLogger proflog)
+ IScopeProvider scopeProvider, ILogger logger, IProfilingLogger proflog)
{
_runtime = runtime;
_contentService = contentService;
@@ -130,7 +130,7 @@ namespace Umbraco.Web.Scheduling
private IBackgroundTask RegisterHealthCheckNotifier(IHealthChecks healthCheckConfig,
HealthCheckCollection healthChecks, HealthCheckNotificationMethodCollection notifications,
- ILogger logger, ProfilingLogger proflog)
+ ILogger logger, IProfilingLogger proflog)
{
// If first run time not set, start with just small delay after application start
int delayInMilliseconds;
diff --git a/src/Umbraco.Web/Search/ExamineComponent.cs b/src/Umbraco.Web/Search/ExamineComponent.cs
index 7a036ef712..a4f4a38695 100644
--- a/src/Umbraco.Web/Search/ExamineComponent.cs
+++ b/src/Umbraco.Web/Search/ExamineComponent.cs
@@ -49,7 +49,7 @@ namespace Umbraco.Web.Search
// but greater that SafeXmlReaderWriter priority which is 60
private const int EnlistPriority = 80;
- internal void Initialize(IRuntimeState runtime, MainDom mainDom, PropertyEditorCollection propertyEditors, IExamineManager examineManager, ProfilingLogger profilingLogger, IScopeProvider scopeProvider, UrlSegmentProviderCollection urlSegmentProviderCollection, ServiceContext services)
+ internal void Initialize(IRuntimeState runtime, MainDom mainDom, PropertyEditorCollection propertyEditors, IExamineManager examineManager, IProfilingLogger profilingLogger, IScopeProvider scopeProvider, UrlSegmentProviderCollection urlSegmentProviderCollection, ServiceContext services)
{
_services = services;
_urlSegmentProviders = urlSegmentProviderCollection;
@@ -68,7 +68,7 @@ namespace Umbraco.Web.Search
var simpleFsLockFactory = new NoPrefixSimpleFsLockFactory(d);
return simpleFsLockFactory;
};
-
+
//let's deal with shutting down Examine with MainDom
var examineShutdownRegistered = mainDom.Register(() =>
{
@@ -80,7 +80,7 @@ namespace Umbraco.Web.Search
if (!examineShutdownRegistered)
{
- profilingLogger.Logger.Debug("Examine shutdown not registered, this appdomain is not the MainDom, Examine will be disabled");
+ profilingLogger.Debug("Examine shutdown not registered, this appdomain is not the MainDom, Examine will be disabled");
//if we could not register the shutdown examine ourselves, it means we are not maindom! in this case all of examine should be disabled!
Suspendable.ExamineEvents.SuspendIndexers();
@@ -88,17 +88,17 @@ namespace Umbraco.Web.Search
return; //exit, do not continue
}
- profilingLogger.Logger.Debug("Examine shutdown registered with MainDom");
+ profilingLogger.Debug("Examine shutdown registered with MainDom");
var registeredIndexers = examineManager.IndexProviders.Values.OfType().Count(x => x.EnableDefaultEventHandler);
- profilingLogger.Logger.Info("Adding examine event handlers for {RegisteredIndexers} index providers.", registeredIndexers);
+ profilingLogger.Info("Adding examine event handlers for {RegisteredIndexers} index providers.", registeredIndexers);
// don't bind event handlers if we're not suppose to listen
if (registeredIndexers == 0)
return;
- BindGridToExamine(profilingLogger.Logger, examineManager, propertyEditors);
+ BindGridToExamine(profilingLogger, examineManager, propertyEditors);
// bind to distributed cache events - this ensures that this logic occurs on ALL servers
// that are taking part in a load balanced environment.
@@ -107,9 +107,9 @@ namespace Umbraco.Web.Search
MediaCacheRefresher.CacheUpdated += MediaCacheRefresherUpdated;
MemberCacheRefresher.CacheUpdated += MemberCacheRefresherUpdated;
- EnsureUnlocked(profilingLogger.Logger, examineManager);
+ EnsureUnlocked(profilingLogger, examineManager);
- RebuildIndexesOnStartup(profilingLogger.Logger);
+ RebuildIndexesOnStartup(profilingLogger);
}
///
@@ -333,9 +333,9 @@ namespace Umbraco.Web.Search
if (args.MessageType != MessageType.RefreshByPayload)
throw new NotSupportedException();
-
+
var changedIds = new Dictionary removedIds, List refreshedIds, List otherIds)>();
-
+
foreach (var payload in (ContentTypeCacheRefresher.JsonPayload[])args.MessageObject)
{
if (!changedIds.TryGetValue(payload.ItemType, out var idLists))
@@ -545,7 +545,7 @@ namespace Umbraco.Web.Search
var total = long.MaxValue;
while(page * pageSize < total)
{
- var descendants = contentService.GetPagedDescendants(content.Id, page++, pageSize, out total,
+ var descendants = contentService.GetPagedDescendants(content.Id, page++, pageSize, out total,
//order by shallowest to deepest, this allows us to check it's published state without checking every item
ordering: Ordering.By("Path", Direction.Ascending));
@@ -642,7 +642,7 @@ namespace Umbraco.Web.Search
if (actions != null)
actions.Add(new DeferedDeleteIndex(this, entityId, keepIfUnpublished));
else
- DeferedDeleteIndex.Execute(this, entityId, keepIfUnpublished);
+ DeferedDeleteIndex.Execute(this, entityId, keepIfUnpublished);
}
private class DeferedActions
@@ -686,7 +686,7 @@ namespace Umbraco.Web.Search
private readonly bool? _supportUnpublished;
public DeferedReIndexForContent(ExamineComponent examineComponent, IContent content, bool? supportUnpublished)
- {
+ {
_examineComponent = examineComponent;
_content = content;
_supportUnpublished = supportUnpublished;
diff --git a/src/Umbraco.Web/TagsController.cs b/src/Umbraco.Web/TagsController.cs
index fe448690d5..a85b37c545 100644
--- a/src/Umbraco.Web/TagsController.cs
+++ b/src/Umbraco.Web/TagsController.cs
@@ -24,7 +24,7 @@ namespace Umbraco.Web.WebServices
{
}
- public TagsController(IGlobalSettings globalSettings, UmbracoContext umbracoContext, ISqlContext sqlContext, ServiceContext services, CacheHelper applicationCache, ILogger logger, ProfilingLogger profilingLogger, IRuntimeState runtimeState)
+ public TagsController(IGlobalSettings globalSettings, UmbracoContext umbracoContext, ISqlContext sqlContext, ServiceContext services, CacheHelper applicationCache, ILogger logger, IProfilingLogger profilingLogger, IRuntimeState runtimeState)
: base(globalSettings, umbracoContext, sqlContext, services, applicationCache, logger, profilingLogger, runtimeState)
{
}
diff --git a/src/Umbraco.Web/WebApi/UmbracoApiController.cs b/src/Umbraco.Web/WebApi/UmbracoApiController.cs
index 4730b7f46f..b35516b59d 100644
--- a/src/Umbraco.Web/WebApi/UmbracoApiController.cs
+++ b/src/Umbraco.Web/WebApi/UmbracoApiController.cs
@@ -17,7 +17,7 @@ namespace Umbraco.Web.WebApi
{
}
- protected UmbracoApiController(IGlobalSettings globalSettings, UmbracoContext umbracoContext, ISqlContext sqlContext, ServiceContext services, CacheHelper applicationCache, ILogger logger, ProfilingLogger profilingLogger, IRuntimeState runtimeState)
+ protected UmbracoApiController(IGlobalSettings globalSettings, UmbracoContext umbracoContext, ISqlContext sqlContext, ServiceContext services, CacheHelper applicationCache, ILogger logger, IProfilingLogger profilingLogger, IRuntimeState runtimeState)
: base(globalSettings, umbracoContext, sqlContext, services, applicationCache, logger, profilingLogger, runtimeState)
{
}
diff --git a/src/Umbraco.Web/WebApi/UmbracoApiControllerBase.cs b/src/Umbraco.Web/WebApi/UmbracoApiControllerBase.cs
index c1ec6332ee..2e5e4b81c3 100644
--- a/src/Umbraco.Web/WebApi/UmbracoApiControllerBase.cs
+++ b/src/Umbraco.Web/WebApi/UmbracoApiControllerBase.cs
@@ -67,7 +67,7 @@ namespace Umbraco.Web.WebApi
///
/// Gets or sets the profiling logger.
///
- public ProfilingLogger ProfilingLogger { get; }
+ public IProfilingLogger ProfilingLogger { get; }
///
/// Gets or sets the runtime state.
@@ -103,14 +103,14 @@ namespace Umbraco.Web.WebApi
Current.Container.GetInstance(),
Current.Container.GetInstance(),
Current.Container.GetInstance(),
- Current.Container.GetInstance(),
+ Current.Container.GetInstance(),
Current.Container.GetInstance()
)
{
}
// fixme - Inject fewer things? (Aggregate more)
- protected UmbracoApiControllerBase(IGlobalSettings globalSettings, UmbracoContext umbracoContext, ISqlContext sqlContext, ServiceContext services, CacheHelper applicationCache, ILogger logger, ProfilingLogger profilingLogger, IRuntimeState runtimeState)
+ protected UmbracoApiControllerBase(IGlobalSettings globalSettings, UmbracoContext umbracoContext, ISqlContext sqlContext, ServiceContext services, CacheHelper applicationCache, ILogger logger, IProfilingLogger profilingLogger, IRuntimeState runtimeState)
{
GlobalSettings = globalSettings;
UmbracoContext = umbracoContext;
diff --git a/src/Umbraco.Web/WebApi/UmbracoAuthorizedApiController.cs b/src/Umbraco.Web/WebApi/UmbracoAuthorizedApiController.cs
index 6211736a4a..82c172af79 100644
--- a/src/Umbraco.Web/WebApi/UmbracoAuthorizedApiController.cs
+++ b/src/Umbraco.Web/WebApi/UmbracoAuthorizedApiController.cs
@@ -36,7 +36,7 @@ namespace Umbraco.Web.WebApi
protected UmbracoAuthorizedApiController()
{ }
- protected UmbracoAuthorizedApiController(IGlobalSettings globalSettings, UmbracoContext umbracoContext, ISqlContext sqlContext, ServiceContext services, CacheHelper applicationCache, ILogger logger, ProfilingLogger profilingLogger, IRuntimeState runtimeState)
+ protected UmbracoAuthorizedApiController(IGlobalSettings globalSettings, UmbracoContext umbracoContext, ISqlContext sqlContext, ServiceContext services, CacheHelper applicationCache, ILogger logger, IProfilingLogger profilingLogger, IRuntimeState runtimeState)
: base(globalSettings, umbracoContext, sqlContext, services, applicationCache, logger, profilingLogger, runtimeState)
{ }
}