From 84f19e093a3b3b7a13b086dcea9effcbd7e1a825 Mon Sep 17 00:00:00 2001 From: Elitsa Marinovska <21998037+elit0451@users.noreply.github.com> Date: Tue, 3 Mar 2020 11:59:17 +0100 Subject: [PATCH] NetCore: Refactor internal usages of UmbracoHelper (#7744) * Removing properties related to IPublishedContentQuery, ITagQuery, ICultureDictionaryFactory, IUmbracoComponentRenderer from UmbracoHelper and using the corresponding private fields instead. Removing Media related methods * Removed UmbracoHelper from UmbracoApiControllerBase * Removed UmbracoHelper references * Inject the needed Interfaces to classes that previously used UmbracoHelper to get the same functionality * Fixed tests referencing UmbracoHelper * Adding Media methods back * Cleanup and moved UmbracoHelper from more base classes, when not used + simplified tests * Reintroduced some methods.. * Reintroduced some methods.. * Reintroducing last missing bits Co-authored-by: Bjarke Berg --- .../IPublishedContentQuery.cs | 9 + .../PublishedContentQuery.cs | 236 ++++++++----- .../UmbracoTestDataController.cs | 4 +- .../Routing/RenderRouteHandlerTests.cs | 8 +- .../TestControllerActivator.cs | 8 +- .../TestControllerActivatorBase.cs | 10 +- .../ControllerTesting/TestRunner.cs | 4 +- .../ControllerTesting/TestStartup.cs | 4 +- .../Testing/TestingTests/MockTests.cs | 9 +- .../AuthenticationControllerTests.cs | 3 +- .../Web/Controllers/ContentControllerTests.cs | 18 +- .../Controllers/PluginControllerAreaTests.cs | 8 +- .../Web/Controllers/UsersControllerTests.cs | 12 +- .../Web/Mvc/SurfaceControllerTests.cs | 26 +- src/Umbraco.Tests/Web/UmbracoHelperTests.cs | 228 ------------ .../Templates/Gallery.cshtml | 2 +- .../ListChildPagesFromChangeableSource.cshtml | 3 +- .../ListImagesFromMediaFolder.cshtml | 3 +- src/Umbraco.Web/Composing/Current.cs | 4 + .../Controllers/UmbLoginController.cs | 4 +- .../Controllers/UmbLoginStatusController.cs | 4 +- .../Controllers/UmbProfileController.cs | 4 +- .../Controllers/UmbRegisterController.cs | 4 +- .../Editors/AuthenticationController.cs | 3 +- .../Editors/BackOfficeController.cs | 3 +- .../BackOfficeNotificationsController.cs | 3 +- src/Umbraco.Web/Editors/CodeFileController.cs | 3 +- src/Umbraco.Web/Editors/ContentController.cs | 3 +- .../Editors/ContentControllerBase.cs | 3 +- .../Editors/ContentTypeController.cs | 3 +- .../Editors/ContentTypeControllerBase.cs | 3 +- .../Editors/CurrentUserController.cs | 3 +- .../Editors/DashboardController.cs | 3 +- src/Umbraco.Web/Editors/DataTypeController.cs | 3 +- .../Editors/DictionaryController.cs | 3 +- src/Umbraco.Web/Editors/EntityController.cs | 23 +- src/Umbraco.Web/Editors/LogController.cs | 3 +- .../Editors/MacroRenderingController.cs | 2 - src/Umbraco.Web/Editors/MacrosController.cs | 3 +- src/Umbraco.Web/Editors/MediaController.cs | 3 +- .../Editors/MediaTypeController.cs | 3 +- src/Umbraco.Web/Editors/MemberController.cs | 3 +- .../Editors/MemberTypeController.cs | 3 +- src/Umbraco.Web/Editors/PackageController.cs | 3 +- .../Editors/PackageInstallController.cs | 3 +- .../Editors/RelationTypeController.cs | 3 +- src/Umbraco.Web/Editors/SectionController.cs | 6 +- src/Umbraco.Web/Editors/TemplateController.cs | 3 +- .../Editors/TemplateQueryController.cs | 14 +- src/Umbraco.Web/Editors/TinyMceController.cs | 3 +- src/Umbraco.Web/Editors/TourController.cs | 3 +- .../UmbracoAuthorizedJsonController.cs | 3 +- src/Umbraco.Web/Editors/UsersController.cs | 3 +- .../EnsurePublishedContentRequestAttribute.cs | 9 +- src/Umbraco.Web/Mvc/PluginController.cs | 6 +- src/Umbraco.Web/Mvc/RenderMvcController.cs | 4 +- src/Umbraco.Web/Mvc/SurfaceController.cs | 4 +- .../Mvc/UmbracoAuthorizedController.cs | 4 +- src/Umbraco.Web/Mvc/UmbracoController.cs | 6 +- .../Profiling/WebProfilingController.cs | 3 +- .../RichTextPreValueController.cs | 3 +- .../PropertyEditors/TagsDataController.cs | 13 +- src/Umbraco.Web/Runtime/WebInitialComposer.cs | 3 +- .../Trees/ApplicationTreeController.cs | 4 +- .../Trees/ContentBlueprintTreeController.cs | 3 +- .../Trees/ContentTreeController.cs | 3 +- .../Trees/ContentTreeControllerBase.cs | 3 +- .../Trees/ContentTypeTreeController.cs | 3 +- .../Trees/DataTypeTreeController.cs | 3 +- .../Trees/DictionaryTreeController.cs | 3 +- .../Trees/FileSystemTreeController.cs | 3 +- src/Umbraco.Web/Trees/MacrosTreeController.cs | 3 +- src/Umbraco.Web/Trees/MediaTreeController.cs | 3 +- .../Trees/MediaTypeTreeController.cs | 3 +- src/Umbraco.Web/Trees/MemberTreeController.cs | 3 +- .../MemberTypeAndGroupTreeControllerBase.cs | 3 +- .../Trees/PackagesTreeController.cs | 3 +- .../Trees/RelationTypeTreeController.cs | 3 +- .../Trees/TemplatesTreeController.cs | 3 +- src/Umbraco.Web/Trees/TreeController.cs | 3 +- src/Umbraco.Web/Trees/TreeControllerBase.cs | 3 +- src/Umbraco.Web/Trees/UserTreeController.cs | 3 +- src/Umbraco.Web/UmbracoHelper.cs | 329 +++--------------- src/Umbraco.Web/UmbracoHttpHandler.cs | 10 +- src/Umbraco.Web/UmbracoWebService.cs | 10 +- .../WebApi/UmbracoApiController.cs | 4 +- .../WebApi/UmbracoApiControllerBase.cs | 9 +- .../WebApi/UmbracoAuthorizedApiController.cs | 4 +- 88 files changed, 376 insertions(+), 841 deletions(-) diff --git a/src/Umbraco.Infrastructure/IPublishedContentQuery.cs b/src/Umbraco.Infrastructure/IPublishedContentQuery.cs index 6a1621b229..c5f49c3e0b 100644 --- a/src/Umbraco.Infrastructure/IPublishedContentQuery.cs +++ b/src/Umbraco.Infrastructure/IPublishedContentQuery.cs @@ -13,12 +13,18 @@ namespace Umbraco.Web /// public interface IPublishedContentQuery { + + + IPublishedContent Content(int id); IPublishedContent Content(Guid id); IPublishedContent Content(Udi id); + IPublishedContent Content(object id); IPublishedContent ContentSingleAtXPath(string xpath, params XPathVariable[] vars); IEnumerable Content(IEnumerable ids); IEnumerable Content(IEnumerable ids); + + IEnumerable Content(IEnumerable ids); IEnumerable ContentAtXPath(string xpath, params XPathVariable[] vars); IEnumerable ContentAtXPath(XPathExpression xpath, params XPathVariable[] vars); IEnumerable ContentAtRoot(); @@ -26,7 +32,10 @@ namespace Umbraco.Web IPublishedContent Media(int id); IPublishedContent Media(Guid id); IPublishedContent Media(Udi id); + + IPublishedContent Media(object id); IEnumerable Media(IEnumerable ids); + IEnumerable Media(IEnumerable ids); IEnumerable Media(IEnumerable ids); IEnumerable MediaAtRoot(); diff --git a/src/Umbraco.Infrastructure/PublishedContentQuery.cs b/src/Umbraco.Infrastructure/PublishedContentQuery.cs index f35cea085d..e995850a1f 100644 --- a/src/Umbraco.Infrastructure/PublishedContentQuery.cs +++ b/src/Umbraco.Infrastructure/PublishedContentQuery.cs @@ -14,35 +14,85 @@ using Umbraco.Web.PublishedCache; namespace Umbraco.Web { /// - /// A class used to query for published content, media items + /// A class used to query for published content, media items /// public class PublishedContentQuery : IPublishedContentQuery { + private readonly IExamineManager _examineManager; private readonly IPublishedSnapshot _publishedSnapshot; private readonly IVariationContextAccessor _variationContextAccessor; - private readonly IExamineManager _examineManager; /// - /// Initializes a new instance of the class. + /// Initializes a new instance of the class. /// - public PublishedContentQuery(IPublishedSnapshot publishedSnapshot, IVariationContextAccessor variationContextAccessor, IExamineManager examineManager) + public PublishedContentQuery(IPublishedSnapshot publishedSnapshot, + IVariationContextAccessor variationContextAccessor, IExamineManager examineManager) { _publishedSnapshot = publishedSnapshot ?? throw new ArgumentNullException(nameof(publishedSnapshot)); - _variationContextAccessor = variationContextAccessor ?? throw new ArgumentNullException(nameof(variationContextAccessor)); + _variationContextAccessor = variationContextAccessor ?? + throw new ArgumentNullException(nameof(variationContextAccessor)); _examineManager = examineManager ?? throw new ArgumentNullException(nameof(examineManager)); } + #region Convert Helpers + + private static bool ConvertIdObjectToInt(object id, out int intId) + { + switch (id) + { + case string s: + return int.TryParse(s, out intId); + + case int i: + intId = i; + return true; + + default: + intId = default; + return false; + } + } + + private static bool ConvertIdObjectToGuid(object id, out Guid guidId) + { + switch (id) + { + case string s: + return Guid.TryParse(s, out guidId); + + case Guid g: + guidId = g; + return true; + + default: + guidId = default; + return false; + } + } + private static bool ConvertIdObjectToUdi(object id, out Udi guidId) + { + switch (id) + { + case string s: + return UdiParser.TryParse(s, out guidId); + + case Udi u: + guidId = u; + return true; + + default: + guidId = default; + return false; + } + } + + #endregion + #region Content - public IPublishedContent Content(int id) - { - return ItemById(id, _publishedSnapshot.Content); - } + public IPublishedContent Content(int id) => ItemById(id, _publishedSnapshot.Content); - public IPublishedContent Content(Guid id) - { - return ItemById(id, _publishedSnapshot.Content); - } + public IPublishedContent Content(Guid id) => ItemById(id, _publishedSnapshot.Content); public IPublishedContent Content(Udi id) { @@ -50,49 +100,45 @@ namespace Umbraco.Web return ItemById(udi.Guid, _publishedSnapshot.Content); } - public IPublishedContent ContentSingleAtXPath(string xpath, params XPathVariable[] vars) + public IPublishedContent Content(object id) { - return ItemByXPath(xpath, vars, _publishedSnapshot.Content); + if (ConvertIdObjectToInt(id, out var intId)) + return Content(intId); + if (ConvertIdObjectToGuid(id, out var guidId)) + return Content(guidId); + if (ConvertIdObjectToUdi(id, out var udiId)) + return Content(udiId); + return null; } - public IEnumerable Content(IEnumerable ids) - { - return ItemsByIds(_publishedSnapshot.Content, ids); - } + public IPublishedContent ContentSingleAtXPath(string xpath, params XPathVariable[] vars) => + ItemByXPath(xpath, vars, _publishedSnapshot.Content); - public IEnumerable Content(IEnumerable ids) - { - return ItemsByIds(_publishedSnapshot.Content, ids); - } + public IEnumerable Content(IEnumerable ids) => + ItemsByIds(_publishedSnapshot.Content, ids); - public IEnumerable ContentAtXPath(string xpath, params XPathVariable[] vars) - { - return ItemsByXPath(xpath, vars, _publishedSnapshot.Content); - } + public IEnumerable Content(IEnumerable ids) => + ItemsByIds(_publishedSnapshot.Content, ids); - public IEnumerable ContentAtXPath(XPathExpression xpath, params XPathVariable[] vars) + public IEnumerable Content(IEnumerable ids) { - return ItemsByXPath(xpath, vars, _publishedSnapshot.Content); + return ids.Select(Content).WhereNotNull(); } + public IEnumerable ContentAtXPath(string xpath, params XPathVariable[] vars) => + ItemsByXPath(xpath, vars, _publishedSnapshot.Content); - public IEnumerable ContentAtRoot() - { - return ItemsAtRoot(_publishedSnapshot.Content); - } + public IEnumerable ContentAtXPath(XPathExpression xpath, params XPathVariable[] vars) => + ItemsByXPath(xpath, vars, _publishedSnapshot.Content); + + public IEnumerable ContentAtRoot() => ItemsAtRoot(_publishedSnapshot.Content); #endregion #region Media - public IPublishedContent Media(int id) - { - return ItemById(id, _publishedSnapshot.Media); - } + public IPublishedContent Media(int id) => ItemById(id, _publishedSnapshot.Media); - public IPublishedContent Media(Guid id) - { - return ItemById(id, _publishedSnapshot.Media); - } + public IPublishedContent Media(Guid id) => ItemById(id, _publishedSnapshot.Media); public IPublishedContent Media(Udi id) { @@ -100,21 +146,26 @@ namespace Umbraco.Web return ItemById(udi.Guid, _publishedSnapshot.Media); } - public IEnumerable Media(IEnumerable ids) + public IPublishedContent Media(object id) { - return ItemsByIds(_publishedSnapshot.Media, ids); + if (ConvertIdObjectToInt(id, out var intId)) + return Media(intId); + if (ConvertIdObjectToGuid(id, out var guidId)) + return Media(guidId); + if (ConvertIdObjectToUdi(id, out var udiId)) + return Media(udiId); + return null; } - public IEnumerable Media(IEnumerable ids) + public IEnumerable Media(IEnumerable ids) => ItemsByIds(_publishedSnapshot.Media, ids); + public IEnumerable Media(IEnumerable ids) { - return ItemsByIds(_publishedSnapshot.Media, ids); + return ids.Select(Media).WhereNotNull(); } - public IEnumerable MediaAtRoot() - { - return ItemsAtRoot(_publishedSnapshot.Media); - } + public IEnumerable Media(IEnumerable ids) => ItemsByIds(_publishedSnapshot.Media, ids); + public IEnumerable MediaAtRoot() => ItemsAtRoot(_publishedSnapshot.Media); #endregion @@ -155,44 +206,45 @@ namespace Umbraco.Web return ids.Select(eachId => ItemById(eachId, cache)).WhereNotNull(); } - private static IEnumerable ItemsByXPath(string xpath, XPathVariable[] vars, IPublishedCache cache) + private static IEnumerable ItemsByXPath(string xpath, XPathVariable[] vars, + IPublishedCache cache) { var doc = cache.GetByXPath(xpath, vars); return doc; } - private static IEnumerable ItemsByXPath(XPathExpression xpath, XPathVariable[] vars, IPublishedCache cache) + private static IEnumerable ItemsByXPath(XPathExpression xpath, XPathVariable[] vars, + IPublishedCache cache) { var doc = cache.GetByXPath(xpath, vars); return doc; } - private static IEnumerable ItemsAtRoot(IPublishedCache cache) - { - return cache.GetAtRoot(); - } + private static IEnumerable ItemsAtRoot(IPublishedCache cache) => cache.GetAtRoot(); #endregion #region Search /// - public IEnumerable Search(string term, string culture = "*", string indexName = Constants.UmbracoIndexes.ExternalIndexName) - { - return Search(term, 0, 0, out _, culture, indexName); - } + public IEnumerable Search(string term, string culture = "*", + string indexName = Constants.UmbracoIndexes.ExternalIndexName) => + Search(term, 0, 0, out _, culture, indexName); /// - public IEnumerable Search(string term, int skip, int take, out long totalRecords, string culture = "*", string indexName = Constants.UmbracoIndexes.ExternalIndexName) + public IEnumerable Search(string term, int skip, int take, out long totalRecords, + string culture = "*", string indexName = Constants.UmbracoIndexes.ExternalIndexName) { if (skip < 0) { - throw new ArgumentOutOfRangeException(nameof(skip), skip, "The value must be greater than or equal to zero."); + throw new ArgumentOutOfRangeException(nameof(skip), skip, + "The value must be greater than or equal to zero."); } if (take < 0) { - throw new ArgumentOutOfRangeException(nameof(take), take, "The value must be greater than or equal to zero."); + throw new ArgumentOutOfRangeException(nameof(take), take, + "The value must be greater than or equal to zero."); } if (string.IsNullOrEmpty(indexName)) @@ -202,7 +254,8 @@ namespace Umbraco.Web if (!_examineManager.TryGetIndex(indexName, out var index) || !(index is IUmbracoIndex umbIndex)) { - throw new InvalidOperationException($"No index found by name {indexName} or is not of type {typeof(IUmbracoIndex)}"); + throw new InvalidOperationException( + $"No index found by name {indexName} or is not of type {typeof(IUmbracoIndex)}"); } var query = umbIndex.GetSearcher().CreateQuery(IndexTypes.Content); @@ -216,13 +269,16 @@ namespace Umbraco.Web else if (string.IsNullOrWhiteSpace(culture)) { // Only search invariant - queryExecutor = query.Field(UmbracoExamineFieldNames.VariesByCultureFieldName, "n") // Must not vary by culture + queryExecutor = query + .Field(UmbracoExamineFieldNames.VariesByCultureFieldName, "n") // Must not vary by culture .And().ManagedQuery(term); } else { // Only search the specified culture - var fields = umbIndex.GetCultureAndInvariantFields(culture).ToArray(); // Get all index fields suffixed with the culture name supplied + var fields = + umbIndex.GetCultureAndInvariantFields(culture) + .ToArray(); // Get all index fields suffixed with the culture name supplied queryExecutor = query.ManagedQuery(term, fields); } @@ -232,26 +288,28 @@ namespace Umbraco.Web totalRecords = results.TotalItemCount; - return new CultureContextualSearchResults(results.Skip(skip).ToPublishedSearchResults(_publishedSnapshot.Content), _variationContextAccessor, culture); + return new CultureContextualSearchResults( + results.Skip(skip).ToPublishedSearchResults(_publishedSnapshot.Content), _variationContextAccessor, + culture); } /// - public IEnumerable Search(IQueryExecutor query) - { - return Search(query, 0, 0, out _); - } + public IEnumerable Search(IQueryExecutor query) => Search(query, 0, 0, out _); /// - public IEnumerable Search(IQueryExecutor query, int skip, int take, out long totalRecords) + public IEnumerable Search(IQueryExecutor query, int skip, int take, + out long totalRecords) { if (skip < 0) { - throw new ArgumentOutOfRangeException(nameof(skip), skip, "The value must be greater than or equal to zero."); + throw new ArgumentOutOfRangeException(nameof(skip), skip, + "The value must be greater than or equal to zero."); } if (take < 0) { - throw new ArgumentOutOfRangeException(nameof(take), take, "The value must be greater than or equal to zero."); + throw new ArgumentOutOfRangeException(nameof(take), take, + "The value must be greater than or equal to zero."); } var results = skip == 0 && take == 0 @@ -264,15 +322,17 @@ namespace Umbraco.Web } /// - /// This is used to contextualize the values in the search results when enumerating over them so that the correct culture values are used + /// This is used to contextualize the values in the search results when enumerating over them so that the correct + /// culture values are used /// private class CultureContextualSearchResults : IEnumerable { - private readonly IEnumerable _wrapped; - private readonly IVariationContextAccessor _variationContextAccessor; private readonly string _culture; + private readonly IVariationContextAccessor _variationContextAccessor; + private readonly IEnumerable _wrapped; - public CultureContextualSearchResults(IEnumerable wrapped, IVariationContextAccessor variationContextAccessor, string culture) + public CultureContextualSearchResults(IEnumerable wrapped, + IVariationContextAccessor variationContextAccessor, string culture) { _wrapped = wrapped; _variationContextAccessor = variationContextAccessor; @@ -287,24 +347,23 @@ namespace Umbraco.Web _variationContextAccessor.VariationContext = new VariationContext(_culture); //now the IPublishedContent returned will be contextualized to the culture specified and will be reset when the enumerator is disposed - return new CultureContextualSearchResultsEnumerator(_wrapped.GetEnumerator(), _variationContextAccessor, originalContext); + return new CultureContextualSearchResultsEnumerator(_wrapped.GetEnumerator(), _variationContextAccessor, + originalContext); } - IEnumerator IEnumerable.GetEnumerator() - { - return GetEnumerator(); - } + IEnumerator IEnumerable.GetEnumerator() => GetEnumerator(); /// - /// Resets the variation context when this is disposed + /// Resets the variation context when this is disposed /// private class CultureContextualSearchResultsEnumerator : IEnumerator { - private readonly IEnumerator _wrapped; - private readonly IVariationContextAccessor _variationContextAccessor; private readonly VariationContext _originalContext; + private readonly IVariationContextAccessor _variationContextAccessor; + private readonly IEnumerator _wrapped; - public CultureContextualSearchResultsEnumerator(IEnumerator wrapped, IVariationContextAccessor variationContextAccessor, VariationContext originalContext) + public CultureContextualSearchResultsEnumerator(IEnumerator wrapped, + IVariationContextAccessor variationContextAccessor, VariationContext originalContext) { _wrapped = wrapped; _variationContextAccessor = variationContextAccessor; @@ -318,10 +377,7 @@ namespace Umbraco.Web _variationContextAccessor.VariationContext = _originalContext; } - public bool MoveNext() - { - return _wrapped.MoveNext(); - } + public bool MoveNext() => _wrapped.MoveNext(); public void Reset() { diff --git a/src/Umbraco.TestData/UmbracoTestDataController.cs b/src/Umbraco.TestData/UmbracoTestDataController.cs index dad9e72c73..09f9177982 100644 --- a/src/Umbraco.TestData/UmbracoTestDataController.cs +++ b/src/Umbraco.TestData/UmbracoTestDataController.cs @@ -33,8 +33,8 @@ namespace Umbraco.TestData private readonly PropertyEditorCollection _propertyEditors; private readonly IShortStringHelper _shortStringHelper; - public UmbracoTestDataController(IScopeProvider scopeProvider, PropertyEditorCollection propertyEditors, IUmbracoContextAccessor umbracoContextAccessor, IUmbracoDatabaseFactory databaseFactory, ServiceContext services, AppCaches appCaches, ILogger logger, IProfilingLogger profilingLogger, UmbracoHelper umbracoHelper, IShortStringHelper shortStringHelper) - : base(umbracoContextAccessor, databaseFactory, services, appCaches, logger, profilingLogger, umbracoHelper) + public UmbracoTestDataController(IScopeProvider scopeProvider, PropertyEditorCollection propertyEditors, IUmbracoContextAccessor umbracoContextAccessor, IUmbracoDatabaseFactory databaseFactory, ServiceContext services, AppCaches appCaches, ILogger logger, IProfilingLogger profilingLogger, IShortStringHelper shortStringHelper) + : base(umbracoContextAccessor, databaseFactory, services, appCaches, logger, profilingLogger) { _scopeProvider = scopeProvider; _propertyEditors = propertyEditors; diff --git a/src/Umbraco.Tests/Routing/RenderRouteHandlerTests.cs b/src/Umbraco.Tests/Routing/RenderRouteHandlerTests.cs index 5b66d90722..80147256ad 100644 --- a/src/Umbraco.Tests/Routing/RenderRouteHandlerTests.cs +++ b/src/Umbraco.Tests/Routing/RenderRouteHandlerTests.cs @@ -144,7 +144,6 @@ namespace Umbraco.Tests.Routing var routeData = new RouteData() {Route = route}; var umbracoContext = GetUmbracoContext("~/dummy-page", template.Id, routeData, true); var httpContext = GetHttpContextFactory(url, routeData).HttpContext; - var httpContextAccessor = TestHelper.GetHttpContextAccessor(httpContext); var publishedRouter = CreatePublishedRouter(); var frequest = publishedRouter.CreateRequest(umbracoContext); frequest.PublishedContent = umbracoContext.Content.GetById(1172); @@ -160,8 +159,7 @@ namespace Umbraco.Tests.Routing umbracoContextAccessor, Factory.GetInstance(), Factory.GetInstance(), - Factory.GetInstance(), - new UmbracoHelper(Mock.Of(), Mock.Of(), Mock.Of(), Mock.Of(), Mock.Of())); + Factory.GetInstance()); }), ShortStringHelper); handler.GetHandlerForRoute(httpContext.Request.RequestContext, frequest); @@ -198,8 +196,8 @@ namespace Umbraco.Tests.Routing /// public class CustomDocumentController : RenderMvcController { - public CustomDocumentController(IGlobalSettings globalSettings, IUmbracoContextAccessor umbracoContextAccessor, ServiceContext services, AppCaches appCaches, IProfilingLogger profilingLogger, UmbracoHelper umbracoHelper) - : base(globalSettings, umbracoContextAccessor, services, appCaches, profilingLogger, umbracoHelper) + public CustomDocumentController(IGlobalSettings globalSettings, IUmbracoContextAccessor umbracoContextAccessor, ServiceContext services, AppCaches appCaches, IProfilingLogger profilingLogger) + : base(globalSettings, umbracoContextAccessor, services, appCaches, profilingLogger) { } diff --git a/src/Umbraco.Tests/TestHelpers/ControllerTesting/TestControllerActivator.cs b/src/Umbraco.Tests/TestHelpers/ControllerTesting/TestControllerActivator.cs index 6b67377202..d3cc51b38d 100644 --- a/src/Umbraco.Tests/TestHelpers/ControllerTesting/TestControllerActivator.cs +++ b/src/Umbraco.Tests/TestHelpers/ControllerTesting/TestControllerActivator.cs @@ -7,16 +7,16 @@ namespace Umbraco.Tests.TestHelpers.ControllerTesting { public class TestControllerActivator : TestControllerActivatorBase { - private readonly Func _factory; + private readonly Func _factory; - public TestControllerActivator(Func factory) + public TestControllerActivator(Func factory) { _factory = factory; } - protected override ApiController CreateController(Type controllerType, HttpRequestMessage msg, IUmbracoContextAccessor umbracoContextAccessor, UmbracoHelper helper) + protected override ApiController CreateController(Type controllerType, HttpRequestMessage msg, IUmbracoContextAccessor umbracoContextAccessor) { - return _factory(msg, umbracoContextAccessor, helper); + return _factory(msg, umbracoContextAccessor); } } } diff --git a/src/Umbraco.Tests/TestHelpers/ControllerTesting/TestControllerActivatorBase.cs b/src/Umbraco.Tests/TestHelpers/ControllerTesting/TestControllerActivatorBase.cs index 611ba086f5..35197e13e0 100644 --- a/src/Umbraco.Tests/TestHelpers/ControllerTesting/TestControllerActivatorBase.cs +++ b/src/Umbraco.Tests/TestHelpers/ControllerTesting/TestControllerActivatorBase.cs @@ -154,15 +154,9 @@ namespace Umbraco.Tests.TestHelpers.ControllerTesting urlHelper.Setup(provider => provider.GetUrl(It.IsAny(), It.IsAny(), It.IsAny(), It.IsAny())) .Returns(UrlInfo.Url("/hello/world/1234")); - var umbHelper = new UmbracoHelper(Mock.Of(), - Mock.Of(), - Mock.Of(), - Mock.Of(), - Mock.Of()); - - return CreateController(controllerType, request, umbracoContextAccessor, umbHelper); + return CreateController(controllerType, request, umbracoContextAccessor); } - protected abstract ApiController CreateController(Type controllerType, HttpRequestMessage msg, IUmbracoContextAccessor umbracoContextAccessor, UmbracoHelper helper); + protected abstract ApiController CreateController(Type controllerType, HttpRequestMessage msg, IUmbracoContextAccessor umbracoContextAccessor); } } diff --git a/src/Umbraco.Tests/TestHelpers/ControllerTesting/TestRunner.cs b/src/Umbraco.Tests/TestHelpers/ControllerTesting/TestRunner.cs index 9f9f933d72..34b649d3bb 100644 --- a/src/Umbraco.Tests/TestHelpers/ControllerTesting/TestRunner.cs +++ b/src/Umbraco.Tests/TestHelpers/ControllerTesting/TestRunner.cs @@ -15,9 +15,9 @@ namespace Umbraco.Tests.TestHelpers.ControllerTesting { public class TestRunner { - private readonly Func _controllerFactory; + private readonly Func _controllerFactory; - public TestRunner(Func controllerFactory) + public TestRunner(Func controllerFactory) { _controllerFactory = controllerFactory; } diff --git a/src/Umbraco.Tests/TestHelpers/ControllerTesting/TestStartup.cs b/src/Umbraco.Tests/TestHelpers/ControllerTesting/TestStartup.cs index 0827a1f786..f038112b0b 100644 --- a/src/Umbraco.Tests/TestHelpers/ControllerTesting/TestStartup.cs +++ b/src/Umbraco.Tests/TestHelpers/ControllerTesting/TestStartup.cs @@ -16,10 +16,10 @@ namespace Umbraco.Tests.TestHelpers.ControllerTesting /// public class TestStartup { - private readonly Func _controllerFactory; + private readonly Func _controllerFactory; private readonly Action _initialize; - public TestStartup(Action initialize, Func controllerFactory) + public TestStartup(Action initialize, Func controllerFactory) { _controllerFactory = controllerFactory; _initialize = initialize; diff --git a/src/Umbraco.Tests/Testing/TestingTests/MockTests.cs b/src/Umbraco.Tests/Testing/TestingTests/MockTests.cs index c604e1a5d6..439c9b17f2 100644 --- a/src/Umbraco.Tests/Testing/TestingTests/MockTests.cs +++ b/src/Umbraco.Tests/Testing/TestingTests/MockTests.cs @@ -66,7 +66,6 @@ namespace Umbraco.Tests.Testing.TestingTests // ReSharper disable once UnusedVariable var helper = new UmbracoHelper(Mock.Of(), - Mock.Of(), Mock.Of(), Mock.Of(), Mock.Of()); @@ -106,11 +105,9 @@ namespace Umbraco.Tests.Testing.TestingTests var memberTypeService = Mock.Of(); var membershipProvider = new MembersMembershipProvider(memberService, memberTypeService, Mock.Of(), TestHelper.GetHostingEnvironment(), TestHelper.GetIpResolver()); var membershipHelper = new MembershipHelper(Mock.Of(), Mock.Of(), membershipProvider, Mock.Of(), memberService, memberTypeService, Mock.Of(), AppCaches.Disabled, logger, ShortStringHelper, Mock.Of()); - var umbracoHelper = new UmbracoHelper(Mock.Of(), Mock.Of(), Mock.Of(), - Mock.Of(), Mock.Of()); var umbracoMapper = new UmbracoMapper(new MapDefinitionCollection(new[] { Mock.Of() })); - var umbracoApiController = new FakeUmbracoApiController(Mock.Of(), Mock.Of(), Mock.Of(), ServiceContext.CreatePartial(), AppCaches.NoCache, logger, Mock.Of(), umbracoHelper, umbracoMapper, Mock.Of()); + var umbracoApiController = new FakeUmbracoApiController(Mock.Of(), Mock.Of(), Mock.Of(), ServiceContext.CreatePartial(), AppCaches.NoCache, logger, Mock.Of(), umbracoMapper, Mock.Of()); Assert.Pass(); } @@ -118,7 +115,7 @@ namespace Umbraco.Tests.Testing.TestingTests internal class FakeUmbracoApiController : UmbracoApiController { - public FakeUmbracoApiController(IGlobalSettings globalSettings, IUmbracoContextAccessor umbracoContextAccessor, ISqlContext sqlContext, ServiceContext services, AppCaches appCaches, IProfilingLogger logger, IRuntimeState runtimeState, UmbracoHelper umbracoHelper, UmbracoMapper umbracoMapper, IPublishedUrlProvider publishedUrlProvider) - : base(globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, umbracoHelper, umbracoMapper, publishedUrlProvider) { } + public FakeUmbracoApiController(IGlobalSettings globalSettings, IUmbracoContextAccessor umbracoContextAccessor, ISqlContext sqlContext, ServiceContext services, AppCaches appCaches, IProfilingLogger logger, IRuntimeState runtimeState, UmbracoMapper umbracoMapper, IPublishedUrlProvider publishedUrlProvider) + : base(globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, umbracoMapper, publishedUrlProvider) { } } } diff --git a/src/Umbraco.Tests/Web/Controllers/AuthenticationControllerTests.cs b/src/Umbraco.Tests/Web/Controllers/AuthenticationControllerTests.cs index a176067541..9ecedee056 100644 --- a/src/Umbraco.Tests/Web/Controllers/AuthenticationControllerTests.cs +++ b/src/Umbraco.Tests/Web/Controllers/AuthenticationControllerTests.cs @@ -61,7 +61,7 @@ namespace Umbraco.Tests.Web.Controllers [Test] public async System.Threading.Tasks.Task GetCurrentUser_Fips() { - ApiController CtrlFactory(HttpRequestMessage message, IUmbracoContextAccessor umbracoContextAccessor, UmbracoHelper helper) + ApiController CtrlFactory(HttpRequestMessage message, IUmbracoContextAccessor umbracoContextAccessor) { //setup some mocks var userServiceMock = Mock.Get(ServiceContext.UserService); @@ -87,7 +87,6 @@ namespace Umbraco.Tests.Web.Controllers Factory.GetInstance(), Factory.GetInstance(), Factory.GetInstance(), - helper, Factory.GetInstance(), Factory.GetInstance(), Factory.GetInstance(), diff --git a/src/Umbraco.Tests/Web/Controllers/ContentControllerTests.cs b/src/Umbraco.Tests/Web/Controllers/ContentControllerTests.cs index 2ed2ff568f..e3c2a89593 100644 --- a/src/Umbraco.Tests/Web/Controllers/ContentControllerTests.cs +++ b/src/Umbraco.Tests/Web/Controllers/ContentControllerTests.cs @@ -252,7 +252,7 @@ namespace Umbraco.Tests.Web.Controllers [Test] public async Task PostSave_Validate_Existing_Content() { - ApiController CtrlFactory(HttpRequestMessage message, IUmbracoContextAccessor umbracoContextAccessor, UmbracoHelper helper) + ApiController CtrlFactory(HttpRequestMessage message, IUmbracoContextAccessor umbracoContextAccessor) { var contentServiceMock = Mock.Get(ServiceContext.ContentService); contentServiceMock.Setup(x => x.GetById(123)).Returns(() => null); //do not find it @@ -269,7 +269,6 @@ namespace Umbraco.Tests.Web.Controllers Factory.GetInstance(), Factory.GetInstance(), Factory.GetInstance(), - helper, ShortStringHelper, Factory.GetInstance(), Factory.GetInstance()); @@ -293,7 +292,7 @@ namespace Umbraco.Tests.Web.Controllers [Test] public async Task PostSave_Validate_At_Least_One_Variant_Flagged_For_Saving() { - ApiController CtrlFactory(HttpRequestMessage message, IUmbracoContextAccessor umbracoContextAccessor, UmbracoHelper helper) + ApiController CtrlFactory(HttpRequestMessage message, IUmbracoContextAccessor umbracoContextAccessor) { var propertyEditorCollection = new PropertyEditorCollection(new DataEditorCollection(Enumerable.Empty())); var controller = new ContentController( @@ -306,7 +305,6 @@ namespace Umbraco.Tests.Web.Controllers Factory.GetInstance(), Factory.GetInstance(), Factory.GetInstance(), - helper, ShortStringHelper, Factory.GetInstance(), Factory.GetInstance()); @@ -335,7 +333,7 @@ namespace Umbraco.Tests.Web.Controllers [Test] public async Task PostSave_Validate_Properties_Exist() { - ApiController CtrlFactory(HttpRequestMessage message, IUmbracoContextAccessor umbracoContextAccessor, UmbracoHelper helper) + ApiController CtrlFactory(HttpRequestMessage message, IUmbracoContextAccessor umbracoContextAccessor) { var contentServiceMock = Mock.Get(ServiceContext.ContentService); contentServiceMock.Setup(x => x.GetById(123)).Returns(() => GetMockedContent()); @@ -351,7 +349,6 @@ namespace Umbraco.Tests.Web.Controllers Factory.GetInstance(), Factory.GetInstance(), Factory.GetInstance(), - helper, ShortStringHelper, Factory.GetInstance(), Factory.GetInstance()); @@ -383,7 +380,7 @@ namespace Umbraco.Tests.Web.Controllers { var content = GetMockedContent(); - ApiController CtrlFactory(HttpRequestMessage message, IUmbracoContextAccessor umbracoContextAccessor, UmbracoHelper helper) + ApiController CtrlFactory(HttpRequestMessage message, IUmbracoContextAccessor umbracoContextAccessor) { var contentServiceMock = Mock.Get(ServiceContext.ContentService); contentServiceMock.Setup(x => x.GetById(123)).Returns(() => content); @@ -401,7 +398,6 @@ namespace Umbraco.Tests.Web.Controllers Factory.GetInstance(), Factory.GetInstance(), Factory.GetInstance(), - helper, ShortStringHelper, Factory.GetInstance(), Factory.GetInstance()); @@ -425,7 +421,7 @@ namespace Umbraco.Tests.Web.Controllers { var content = GetMockedContent(); - ApiController CtrlFactory(HttpRequestMessage message, IUmbracoContextAccessor umbracoContextAccessor, UmbracoHelper helper) + ApiController CtrlFactory(HttpRequestMessage message, IUmbracoContextAccessor umbracoContextAccessor) { var contentServiceMock = Mock.Get(ServiceContext.ContentService); contentServiceMock.Setup(x => x.GetById(123)).Returns(() => content); @@ -443,7 +439,6 @@ namespace Umbraco.Tests.Web.Controllers Factory.GetInstance(), Factory.GetInstance(), Factory.GetInstance(), - helper, ShortStringHelper, Factory.GetInstance(), Factory.GetInstance() @@ -474,7 +469,7 @@ namespace Umbraco.Tests.Web.Controllers { var content = GetMockedContent(); - ApiController CtrlFactory(HttpRequestMessage message, IUmbracoContextAccessor umbracoContextAccessor, UmbracoHelper helper) + ApiController CtrlFactory(HttpRequestMessage message, IUmbracoContextAccessor umbracoContextAccessor) { var contentServiceMock = Mock.Get(ServiceContext.ContentService); contentServiceMock.Setup(x => x.GetById(123)).Returns(() => content); @@ -492,7 +487,6 @@ namespace Umbraco.Tests.Web.Controllers Factory.GetInstance(), Factory.GetInstance(), Factory.GetInstance(), - helper, ShortStringHelper, Factory.GetInstance(), Factory.GetInstance() diff --git a/src/Umbraco.Tests/Web/Controllers/PluginControllerAreaTests.cs b/src/Umbraco.Tests/Web/Controllers/PluginControllerAreaTests.cs index b0665bbfc1..23131b04e6 100644 --- a/src/Umbraco.Tests/Web/Controllers/PluginControllerAreaTests.cs +++ b/src/Umbraco.Tests/Web/Controllers/PluginControllerAreaTests.cs @@ -54,7 +54,7 @@ namespace Umbraco.Tests.Web.Controllers public class Plugin1Controller : PluginController { public Plugin1Controller(IUmbracoContextAccessor umbracoContextAccessor) - : base(umbracoContextAccessor, null, null, null, null, null, null) + : base(umbracoContextAccessor, null, null, null, null, null) { } } @@ -63,7 +63,7 @@ namespace Umbraco.Tests.Web.Controllers public class Plugin2Controller : PluginController { public Plugin2Controller(IUmbracoContextAccessor umbracoContextAccessor) - : base(umbracoContextAccessor, null, null, null, null, null, null) + : base(umbracoContextAccessor, null, null, null, null, null) { } } @@ -72,7 +72,7 @@ namespace Umbraco.Tests.Web.Controllers public class Plugin3Controller : PluginController { public Plugin3Controller(IUmbracoContextAccessor umbracoContextAccessor) - : base(umbracoContextAccessor, null, null, null, null, null, null) + : base(umbracoContextAccessor, null, null, null, null, null) { } } @@ -80,7 +80,7 @@ namespace Umbraco.Tests.Web.Controllers public class Plugin4Controller : PluginController { public Plugin4Controller(IUmbracoContextAccessor umbracoContextAccessor) - : base(umbracoContextAccessor, null, null, null, null, null, null) + : base(umbracoContextAccessor, null, null, null, null, null) { } } diff --git a/src/Umbraco.Tests/Web/Controllers/UsersControllerTests.cs b/src/Umbraco.Tests/Web/Controllers/UsersControllerTests.cs index 0b0fa8f157..d914ef2c39 100644 --- a/src/Umbraco.Tests/Web/Controllers/UsersControllerTests.cs +++ b/src/Umbraco.Tests/Web/Controllers/UsersControllerTests.cs @@ -62,7 +62,7 @@ namespace Umbraco.Tests.Web.Controllers [Test] public async System.Threading.Tasks.Task Save_User() { - ApiController CtrlFactory(HttpRequestMessage message, IUmbracoContextAccessor umbracoContextAccessor, UmbracoHelper helper) + ApiController CtrlFactory(HttpRequestMessage message, IUmbracoContextAccessor umbracoContextAccessor) { var userServiceMock = Mock.Get(ServiceContext.UserService); @@ -86,7 +86,6 @@ namespace Umbraco.Tests.Web.Controllers Factory.GetInstance(), Factory.GetInstance(), Factory.GetInstance(), - helper, Factory.GetInstance(), ShortStringHelper, Factory.GetInstance(), @@ -149,7 +148,7 @@ namespace Umbraco.Tests.Web.Controllers [Test] public async System.Threading.Tasks.Task GetPagedUsers_Empty() { - ApiController CtrlFactory(HttpRequestMessage message, IUmbracoContextAccessor umbracoContextAccessor, UmbracoHelper helper) + ApiController CtrlFactory(HttpRequestMessage message, IUmbracoContextAccessor umbracoContextAccessor) { var usersController = new UsersController( Factory.GetInstance(), @@ -159,7 +158,6 @@ namespace Umbraco.Tests.Web.Controllers Factory.GetInstance(), Factory.GetInstance(), Factory.GetInstance(), - helper, Factory.GetInstance(), ShortStringHelper, Factory.GetInstance(), @@ -183,7 +181,7 @@ namespace Umbraco.Tests.Web.Controllers [Test] public async System.Threading.Tasks.Task GetPagedUsers_10() { - ApiController CtrlFactory(HttpRequestMessage message, IUmbracoContextAccessor umbracoContextAccessor, UmbracoHelper helper) + ApiController CtrlFactory(HttpRequestMessage message, IUmbracoContextAccessor umbracoContextAccessor) { //setup some mocks var userServiceMock = Mock.Get(ServiceContext.UserService); @@ -202,7 +200,6 @@ namespace Umbraco.Tests.Web.Controllers Factory.GetInstance(), Factory.GetInstance(), Factory.GetInstance(), - helper, Factory.GetInstance(), ShortStringHelper, Factory.GetInstance(), @@ -266,7 +263,7 @@ namespace Umbraco.Tests.Web.Controllers Action> verification, object routeDefaults = null, string url = null) { - ApiController CtrlFactory(HttpRequestMessage message, IUmbracoContextAccessor umbracoContextAccessor, UmbracoHelper helper) + ApiController CtrlFactory(HttpRequestMessage message, IUmbracoContextAccessor umbracoContextAccessor) { //setup some mocks var userServiceMock = Mock.Get(ServiceContext.UserService); @@ -280,7 +277,6 @@ namespace Umbraco.Tests.Web.Controllers Factory.GetInstance(), Factory.GetInstance(), Factory.GetInstance(), - helper, Factory.GetInstance(), ShortStringHelper, Factory.GetInstance(), diff --git a/src/Umbraco.Tests/Web/Mvc/SurfaceControllerTests.cs b/src/Umbraco.Tests/Web/Mvc/SurfaceControllerTests.cs index fd222086aa..73d447d3b2 100644 --- a/src/Umbraco.Tests/Web/Mvc/SurfaceControllerTests.cs +++ b/src/Umbraco.Tests/Web/Mvc/SurfaceControllerTests.cs @@ -5,6 +5,7 @@ using System.Web.Routing; using System.Web.Security; using Moq; using NUnit.Framework; +using Umbraco.Core; using Umbraco.Core.Cache; using Umbraco.Core.Dictionary; using Umbraco.Core.Logging; @@ -26,6 +27,7 @@ namespace Umbraco.Tests.Web.Mvc [UmbracoTest(WithApplication = true)] public class SurfaceControllerTests : UmbracoTestBase { + public override void SetUp() { base.SetUp(); @@ -55,7 +57,7 @@ namespace Umbraco.Tests.Web.Mvc var umbracoContextAccessor = new TestUmbracoContextAccessor(umbracoContext); - var ctrl = new TestSurfaceController(umbracoContextAccessor); + var ctrl = new TestSurfaceController(umbracoContextAccessor, Mock.Of()); var result = ctrl.Index(); @@ -85,7 +87,7 @@ namespace Umbraco.Tests.Web.Mvc var umbracoContextAccessor = new TestUmbracoContextAccessor(umbCtx); - var ctrl = new TestSurfaceController(umbracoContextAccessor); + var ctrl = new TestSurfaceController(umbracoContextAccessor, Mock.Of()); Assert.IsNotNull(ctrl.UmbracoContext); } @@ -118,14 +120,9 @@ namespace Umbraco.Tests.Web.Mvc var umbracoContextAccessor = new TestUmbracoContextAccessor(umbracoContext); - var helper = new UmbracoHelper( - content.Object, - Mock.Of(), - Mock.Of(), - Mock.Of(), - Mock.Of(query => query.Content(2) == content.Object)); + var publishedContentQuery = Mock.Of(query => query.Content(2) == content.Object); - var ctrl = new TestSurfaceController(umbracoContextAccessor, helper); + var ctrl = new TestSurfaceController(umbracoContextAccessor,publishedContentQuery); var result = ctrl.GetContent(2) as PublishedContentResult; Assert.IsNotNull(result); @@ -171,7 +168,7 @@ namespace Umbraco.Tests.Web.Mvc var routeData = new RouteData(); routeData.DataTokens.Add(Core.Constants.Web.UmbracoRouteDefinitionDataToken, routeDefinition); - var ctrl = new TestSurfaceController(umbracoContextAccessor, new UmbracoHelper()); + var ctrl = new TestSurfaceController(umbracoContextAccessor, Mock.Of()); ctrl.ControllerContext = new ControllerContext(Mock.Of(), routeData, ctrl); var result = ctrl.GetContentFromCurrentPage() as PublishedContentResult; @@ -181,9 +178,12 @@ namespace Umbraco.Tests.Web.Mvc public class TestSurfaceController : SurfaceController { - public TestSurfaceController(IUmbracoContextAccessor umbracoContextAccessor, UmbracoHelper helper = null) - : base(umbracoContextAccessor, null, ServiceContext.CreatePartial(), AppCaches.Disabled, null, null, helper) + private readonly IPublishedContentQuery _publishedContentQuery; + + public TestSurfaceController(IUmbracoContextAccessor umbracoContextAccessor, IPublishedContentQuery publishedContentQuery) + : base(umbracoContextAccessor, null, ServiceContext.CreatePartial(), AppCaches.Disabled, null, null) { + _publishedContentQuery = publishedContentQuery; } public ActionResult Index() @@ -194,7 +194,7 @@ namespace Umbraco.Tests.Web.Mvc public ActionResult GetContent(int id) { - var content = Umbraco.Content(id); + var content = _publishedContentQuery.Content(id); return new PublishedContentResult(content); } diff --git a/src/Umbraco.Tests/Web/UmbracoHelperTests.cs b/src/Umbraco.Tests/Web/UmbracoHelperTests.cs index ccb42e478a..b479961896 100644 --- a/src/Umbraco.Tests/Web/UmbracoHelperTests.cs +++ b/src/Umbraco.Tests/Web/UmbracoHelperTests.cs @@ -24,234 +24,6 @@ namespace Umbraco.Tests.Web Current.Reset(); } - - - // ------- Int32 conversion tests - [Test] - public static void Converting_Boxed_34_To_An_Int_Returns_34() - { - // Arrange - const int sample = 34; - - // Act - bool success = UmbracoHelper.ConvertIdObjectToInt( - sample, - out int result - ); - - // Assert - Assert.IsTrue(success); - Assert.That(result, Is.EqualTo(34)); - } - - [Test] - public static void Converting_String_54_To_An_Int_Returns_54() - { - // Arrange - const string sample = "54"; - - // Act - bool success = UmbracoHelper.ConvertIdObjectToInt( - sample, - out int result - ); - - // Assert - Assert.IsTrue(success); - Assert.That(result, Is.EqualTo(54)); - } - - [Test] - public static void Converting_Hello_To_An_Int_Returns_False() - { - // Arrange - const string sample = "Hello"; - - // Act - bool success = UmbracoHelper.ConvertIdObjectToInt( - sample, - out int result - ); - - // Assert - Assert.IsFalse(success); - Assert.That(result, Is.EqualTo(0)); - } - - [Test] - public static void Converting_Unsupported_Object_To_An_Int_Returns_False() - { - // Arrange - var clearlyWillNotConvertToInt = new StringBuilder(0); - - // Act - bool success = UmbracoHelper.ConvertIdObjectToInt( - clearlyWillNotConvertToInt, - out int result - ); - - // Assert - Assert.IsFalse(success); - Assert.That(result, Is.EqualTo(0)); - } - - // ------- GUID conversion tests - [Test] - public static void Converting_Boxed_Guid_To_A_Guid_Returns_Original_Guid_Value() - { - // Arrange - Guid sample = Guid.NewGuid(); - - // Act - bool success = UmbracoHelper.ConvertIdObjectToGuid( - sample, - out Guid result - ); - - // Assert - Assert.IsTrue(success); - Assert.That(result, Is.EqualTo(sample)); - } - - [Test] - public static void Converting_String_Guid_To_A_Guid_Returns_Original_Guid_Value() - { - // Arrange - Guid sample = Guid.NewGuid(); - - // Act - bool success = UmbracoHelper.ConvertIdObjectToGuid( - sample.ToString(), - out Guid result - ); - - // Assert - Assert.IsTrue(success); - Assert.That(result, Is.EqualTo(sample)); - } - - [Test] - public static void Converting_Hello_To_A_Guid_Returns_False() - { - // Arrange - const string sample = "Hello"; - - // Act - bool success = UmbracoHelper.ConvertIdObjectToGuid( - sample, - out Guid result - ); - - // Assert - Assert.IsFalse(success); - Assert.That(result, Is.EqualTo(new Guid("00000000-0000-0000-0000-000000000000"))); - } - - [Test] - public static void Converting_Unsupported_Object_To_A_Guid_Returns_False() - { - // Arrange - var clearlyWillNotConvertToGuid = new StringBuilder(0); - - // Act - bool success = UmbracoHelper.ConvertIdObjectToGuid( - clearlyWillNotConvertToGuid, - out Guid result - ); - - // Assert - Assert.IsFalse(success); - Assert.That(result, Is.EqualTo(new Guid("00000000-0000-0000-0000-000000000000"))); - } - - // ------- UDI Conversion Tests - /// - /// This requires PluginManager.Current to be initialised before running. - /// - [Test] - public static void Converting_Boxed_Udi_To_A_Udi_Returns_Original_Udi_Value() - { - // Arrange - UdiParser.ResetUdiTypes(); - Udi sample = new GuidUdi(Constants.UdiEntityType.AnyGuid, Guid.NewGuid()); - - // Act - bool success = UmbracoHelper.ConvertIdObjectToUdi( - sample, - out Udi result - ); - - // Assert - Assert.IsTrue(success); - Assert.That(result, Is.EqualTo(sample)); - } - - /// - /// This requires PluginManager.Current to be initialised before running. - /// - [Test] - public void Converting_String_Udi_To_A_Udi_Returns_Original_Udi_Value() - { - // Arrange - SetUpDependencyContainer(); - UdiParser.ResetUdiTypes(); - Udi sample = new GuidUdi(Constants.UdiEntityType.AnyGuid, Guid.NewGuid()); - - // Act - bool success = UmbracoHelper.ConvertIdObjectToUdi( - sample.ToString(), - out Udi result - ); - - // Assert - Assert.IsTrue(success, "Conversion of UDI failed."); - Assert.That(result, Is.EqualTo(sample)); - } - - /// - /// This requires PluginManager.Current to be initialised before running. - /// - [Test] - public void Converting_Hello_To_A_Udi_Returns_False() - { - // Arrange - SetUpDependencyContainer(); - UdiParser.ResetUdiTypes(); - const string sample = "Hello"; - - // Act - bool success = UmbracoHelper.ConvertIdObjectToUdi( - sample, - out Udi result - ); - - // Assert - Assert.IsFalse(success); - Assert.That(result, Is.Null); - } - - /// - /// This requires PluginManager.Current to be initialised before running. - /// - [Test] - public static void Converting_Unsupported_Object_To_A_Udi_Returns_False() - { - // Arrange - UdiParser.ResetUdiTypes(); - - var clearlyWillNotConvertToGuid = new StringBuilder(0); - - // Act - bool success = UmbracoHelper.ConvertIdObjectToUdi( - clearlyWillNotConvertToGuid, - out Udi result - ); - - // Assert - Assert.IsFalse(success); - Assert.That(result, Is.Null); - } - private void SetUpDependencyContainer() { // FIXME: bad in a unit test - but Udi has a static ctor that wants it?! diff --git a/src/Umbraco.Web.UI/Umbraco/PartialViewMacros/Templates/Gallery.cshtml b/src/Umbraco.Web.UI/Umbraco/PartialViewMacros/Templates/Gallery.cshtml index 8bcb535bd6..9462b3b638 100755 --- a/src/Umbraco.Web.UI/Umbraco/PartialViewMacros/Templates/Gallery.cshtml +++ b/src/Umbraco.Web.UI/Umbraco/PartialViewMacros/Templates/Gallery.cshtml @@ -26,7 +26,7 @@
@foreach (var mediaId in mediaIds.Split(',')) { - var media = Umbraco.Media(mediaId); + var media = Current.PublishedContentQuery.Media(mediaId); @* a single image *@ if (media.IsDocumentType("Image")) diff --git a/src/Umbraco.Web.UI/Umbraco/PartialViewMacros/Templates/ListChildPagesFromChangeableSource.cshtml b/src/Umbraco.Web.UI/Umbraco/PartialViewMacros/Templates/ListChildPagesFromChangeableSource.cshtml index 46c8de695c..ec41d45c0c 100755 --- a/src/Umbraco.Web.UI/Umbraco/PartialViewMacros/Templates/ListChildPagesFromChangeableSource.cshtml +++ b/src/Umbraco.Web.UI/Umbraco/PartialViewMacros/Templates/ListChildPagesFromChangeableSource.cshtml @@ -1,4 +1,5 @@ @using Umbraco.Web +@using Umbraco.Web.Composing @inherits Umbraco.Web.Macros.PartialViewMacroPage @* @@ -18,7 +19,7 @@ @if (startNodeId != null) { @* Get the starting page *@ - var startNode = Umbraco.Content(startNodeId); + var startNode = Current.PublishedContentQuery.Content(startNodeId); var selection = startNode.Children.Where(x => x.IsVisible()).ToArray(); if (selection.Length > 0) diff --git a/src/Umbraco.Web.UI/Umbraco/PartialViewMacros/Templates/ListImagesFromMediaFolder.cshtml b/src/Umbraco.Web.UI/Umbraco/PartialViewMacros/Templates/ListImagesFromMediaFolder.cshtml index 7a561cf94d..386bc824df 100755 --- a/src/Umbraco.Web.UI/Umbraco/PartialViewMacros/Templates/ListImagesFromMediaFolder.cshtml +++ b/src/Umbraco.Web.UI/Umbraco/PartialViewMacros/Templates/ListImagesFromMediaFolder.cshtml @@ -1,4 +1,5 @@ @using Umbraco.Web +@using Umbraco.Web.Composing @inherits Umbraco.Web.Macros.PartialViewMacroPage @* @@ -18,7 +19,7 @@ @if (mediaId != null) { @* Get the media item associated with the id passed in *@ - var media = Umbraco.Media(mediaId); + var media = Current.PublishedContentQuery.Media(mediaId); var selection = media.Children.ToArray(); if (selection.Length > 0) diff --git a/src/Umbraco.Web/Composing/Current.cs b/src/Umbraco.Web/Composing/Current.cs index 47c36177fe..a431be4998 100644 --- a/src/Umbraco.Web/Composing/Current.cs +++ b/src/Umbraco.Web/Composing/Current.cs @@ -116,6 +116,9 @@ namespace Umbraco.Web.Composing public static UmbracoHelper UmbracoHelper => Factory.GetInstance(); + public static IUmbracoComponentRenderer UmbracoComponentRenderer + => Factory.GetInstance(); + public static DistributedCache DistributedCache => Factory.GetInstance(); @@ -265,6 +268,7 @@ namespace Umbraco.Web.Composing public static IMenuItemCollectionFactory MenuItemCollectionFactory => Factory.GetInstance(); public static MembershipHelper MembershipHelper => Factory.GetInstance(); public static IUmbracoApplicationLifetime UmbracoApplicationLifetime => Factory.GetInstance(); + public static IPublishedContentQuery PublishedContentQuery => Factory.GetInstance(); #endregion } diff --git a/src/Umbraco.Web/Controllers/UmbLoginController.cs b/src/Umbraco.Web/Controllers/UmbLoginController.cs index dc77d3485b..cd0489433c 100644 --- a/src/Umbraco.Web/Controllers/UmbLoginController.cs +++ b/src/Umbraco.Web/Controllers/UmbLoginController.cs @@ -19,9 +19,9 @@ namespace Umbraco.Web.Controllers } public UmbLoginController(IUmbracoContextAccessor umbracoContextAccessor, IUmbracoDatabaseFactory databaseFactory, - ServiceContext services, AppCaches appCaches, ILogger logger, IProfilingLogger profilingLogger, UmbracoHelper umbracoHelper, + ServiceContext services, AppCaches appCaches, ILogger logger, IProfilingLogger profilingLogger, MembershipHelper membershipHelper) - : base(umbracoContextAccessor, databaseFactory, services, appCaches, logger, profilingLogger, umbracoHelper) + : base(umbracoContextAccessor, databaseFactory, services, appCaches, logger, profilingLogger) { _membershipHelper = membershipHelper; } diff --git a/src/Umbraco.Web/Controllers/UmbLoginStatusController.cs b/src/Umbraco.Web/Controllers/UmbLoginStatusController.cs index aed60af168..825dd1e904 100644 --- a/src/Umbraco.Web/Controllers/UmbLoginStatusController.cs +++ b/src/Umbraco.Web/Controllers/UmbLoginStatusController.cs @@ -22,8 +22,8 @@ namespace Umbraco.Web.Controllers public UmbLoginStatusController(IUmbracoContextAccessor umbracoContextAccessor, IUmbracoDatabaseFactory databaseFactory, ServiceContext services, AppCaches appCaches, ILogger logger, - IProfilingLogger profilingLogger, UmbracoHelper umbracoHelper, MembershipHelper membershipHelper) - : base(umbracoContextAccessor, databaseFactory, services, appCaches, logger, profilingLogger, umbracoHelper) + IProfilingLogger profilingLogger, MembershipHelper membershipHelper) + : base(umbracoContextAccessor, databaseFactory, services, appCaches, logger, profilingLogger) { _membershipHelper = membershipHelper; } diff --git a/src/Umbraco.Web/Controllers/UmbProfileController.cs b/src/Umbraco.Web/Controllers/UmbProfileController.cs index b736a3fcc7..c5a37e7629 100644 --- a/src/Umbraco.Web/Controllers/UmbProfileController.cs +++ b/src/Umbraco.Web/Controllers/UmbProfileController.cs @@ -22,8 +22,8 @@ namespace Umbraco.Web.Controllers public UmbProfileController(IUmbracoContextAccessor umbracoContextAccessor, IUmbracoDatabaseFactory databaseFactory, ServiceContext services, AppCaches appCaches, ILogger logger, IProfilingLogger profilingLogger, - UmbracoHelper umbracoHelper, MembershipHelper membershipHelper) - : base(umbracoContextAccessor, databaseFactory, services, appCaches, logger, profilingLogger, umbracoHelper) + MembershipHelper membershipHelper) + : base(umbracoContextAccessor, databaseFactory, services, appCaches, logger, profilingLogger) { _membershipHelper = membershipHelper; } diff --git a/src/Umbraco.Web/Controllers/UmbRegisterController.cs b/src/Umbraco.Web/Controllers/UmbRegisterController.cs index ad5fd0c900..1e83fadda6 100644 --- a/src/Umbraco.Web/Controllers/UmbRegisterController.cs +++ b/src/Umbraco.Web/Controllers/UmbRegisterController.cs @@ -22,8 +22,8 @@ namespace Umbraco.Web.Controllers public UmbRegisterController(IUmbracoContextAccessor umbracoContextAccessor, IUmbracoDatabaseFactory databaseFactory, ServiceContext services, AppCaches appCaches, ILogger logger, - IProfilingLogger profilingLogger, UmbracoHelper umbracoHelper, MembershipHelper membershipHelper) - : base(umbracoContextAccessor, databaseFactory, services, appCaches, logger, profilingLogger, umbracoHelper) + IProfilingLogger profilingLogger, MembershipHelper membershipHelper) + : base(umbracoContextAccessor, databaseFactory, services, appCaches, logger, profilingLogger) { _membershipHelper = membershipHelper; } diff --git a/src/Umbraco.Web/Editors/AuthenticationController.cs b/src/Umbraco.Web/Editors/AuthenticationController.cs index dbfb6f81a4..0d206f8d8d 100644 --- a/src/Umbraco.Web/Editors/AuthenticationController.cs +++ b/src/Umbraco.Web/Editors/AuthenticationController.cs @@ -57,12 +57,11 @@ namespace Umbraco.Web.Editors AppCaches appCaches, IProfilingLogger logger, IRuntimeState runtimeState, - UmbracoHelper umbracoHelper, UmbracoMapper umbracoMapper, IUmbracoSettingsSection umbracoSettingsSection, IIOHelper ioHelper, IPublishedUrlProvider publishedUrlProvider) - : base(globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, umbracoHelper, umbracoMapper, publishedUrlProvider) + : base(globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, umbracoMapper, publishedUrlProvider) { _passwordConfiguration = passwordConfiguration ?? throw new ArgumentNullException(nameof(passwordConfiguration)); _runtimeState = runtimeState ?? throw new ArgumentNullException(nameof(runtimeState)); diff --git a/src/Umbraco.Web/Editors/BackOfficeController.cs b/src/Umbraco.Web/Editors/BackOfficeController.cs index 64cd0d1a0d..1b7482cd59 100644 --- a/src/Umbraco.Web/Editors/BackOfficeController.cs +++ b/src/Umbraco.Web/Editors/BackOfficeController.cs @@ -63,7 +63,6 @@ namespace Umbraco.Web.Editors AppCaches appCaches, IProfilingLogger profilingLogger, IRuntimeState runtimeState, - UmbracoHelper umbracoHelper, IUmbracoVersion umbracoVersion, IGridConfig gridConfig, IUmbracoSettingsSection umbracoSettingsSection, @@ -71,7 +70,7 @@ namespace Umbraco.Web.Editors TreeCollection treeCollection, IHostingEnvironment hostingEnvironment, IHttpContextAccessor httpContextAccessor) - : base(globalSettings, umbracoContextAccessor, services, appCaches, profilingLogger, umbracoHelper) + : base(globalSettings, umbracoContextAccessor, services, appCaches, profilingLogger) { _manifestParser = manifestParser; _features = features; diff --git a/src/Umbraco.Web/Editors/BackOfficeNotificationsController.cs b/src/Umbraco.Web/Editors/BackOfficeNotificationsController.cs index eb6b76ab46..fe9e82c580 100644 --- a/src/Umbraco.Web/Editors/BackOfficeNotificationsController.cs +++ b/src/Umbraco.Web/Editors/BackOfficeNotificationsController.cs @@ -29,11 +29,10 @@ namespace Umbraco.Web.Editors AppCaches appCaches, IProfilingLogger logger, IRuntimeState runtimeState, - UmbracoHelper umbracoHelper, IShortStringHelper shortStringHelper, UmbracoMapper umbracoMapper, IPublishedUrlProvider publishedUrlProvider) - : base(globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, umbracoHelper, shortStringHelper, umbracoMapper, publishedUrlProvider) + : base(globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, shortStringHelper, umbracoMapper, publishedUrlProvider) { } } diff --git a/src/Umbraco.Web/Editors/CodeFileController.cs b/src/Umbraco.Web/Editors/CodeFileController.cs index f127b0cd14..325b39e4f2 100644 --- a/src/Umbraco.Web/Editors/CodeFileController.cs +++ b/src/Umbraco.Web/Editors/CodeFileController.cs @@ -46,13 +46,12 @@ namespace Umbraco.Web.Editors AppCaches appCaches, IProfilingLogger logger, IRuntimeState runtimeState, - UmbracoHelper umbracoHelper, IShortStringHelper shortStringHelper, UmbracoMapper umbracoMapper, IIOHelper ioHelper, IFileSystems fileSystems, IPublishedUrlProvider publishedUrlProvider) - : base(globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, umbracoHelper, shortStringHelper, umbracoMapper, publishedUrlProvider) + : base(globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, shortStringHelper, umbracoMapper, publishedUrlProvider) { _ioHelper = ioHelper; _fileSystems = fileSystems; diff --git a/src/Umbraco.Web/Editors/ContentController.cs b/src/Umbraco.Web/Editors/ContentController.cs index 0b63c94ba8..2ea1ec3a24 100644 --- a/src/Umbraco.Web/Editors/ContentController.cs +++ b/src/Umbraco.Web/Editors/ContentController.cs @@ -69,11 +69,10 @@ namespace Umbraco.Web.Editors AppCaches appCaches, IProfilingLogger logger, IRuntimeState runtimeState, - UmbracoHelper umbracoHelper, IShortStringHelper shortStringHelper, UmbracoMapper umbracoMapper, IPublishedUrlProvider publishedUrlProvider) - : base(cultureDictionary, globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, umbracoHelper, shortStringHelper, umbracoMapper, publishedUrlProvider) + : base(cultureDictionary, globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, shortStringHelper, umbracoMapper, publishedUrlProvider) { _propertyEditors = propertyEditors ?? throw new ArgumentNullException(nameof(propertyEditors)); _allLangs = new Lazy>(() => Services.LocalizationService.GetAllLanguages().ToDictionary(x => x.IsoCode, x => x, StringComparer.InvariantCultureIgnoreCase)); diff --git a/src/Umbraco.Web/Editors/ContentControllerBase.cs b/src/Umbraco.Web/Editors/ContentControllerBase.cs index 83d5a87323..a7949084b5 100644 --- a/src/Umbraco.Web/Editors/ContentControllerBase.cs +++ b/src/Umbraco.Web/Editors/ContentControllerBase.cs @@ -40,11 +40,10 @@ namespace Umbraco.Web.Editors AppCaches appCaches, IProfilingLogger logger, IRuntimeState runtimeState, - UmbracoHelper umbracoHelper, IShortStringHelper shortStringHelper, UmbracoMapper umbracoMapper, IPublishedUrlProvider publishedUrlProvider) - :base(globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, umbracoHelper, shortStringHelper, umbracoMapper, publishedUrlProvider) + :base(globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, shortStringHelper, umbracoMapper, publishedUrlProvider) { CultureDictionary = cultureDictionary; } diff --git a/src/Umbraco.Web/Editors/ContentTypeController.cs b/src/Umbraco.Web/Editors/ContentTypeController.cs index fc7189cf6f..506eac6aac 100644 --- a/src/Umbraco.Web/Editors/ContentTypeController.cs +++ b/src/Umbraco.Web/Editors/ContentTypeController.cs @@ -63,14 +63,13 @@ namespace Umbraco.Web.Editors AppCaches appCaches, IProfilingLogger logger, IRuntimeState runtimeState, - UmbracoHelper umbracoHelper, IScopeProvider scopeProvider, IShortStringHelper shortStringHelper, UmbracoMapper umbracoMapper, IIOHelper ioHelper, IPublishedUrlProvider publishedUrlProvider, EditorValidatorCollection editorValidatorCollection) - : base(cultureDictionary, globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, umbracoHelper, shortStringHelper, umbracoMapper, publishedUrlProvider, editorValidatorCollection) + : base(cultureDictionary, globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, shortStringHelper, umbracoMapper, publishedUrlProvider, editorValidatorCollection) { _serializer = serializer; _globalSettings = globalSettings; diff --git a/src/Umbraco.Web/Editors/ContentTypeControllerBase.cs b/src/Umbraco.Web/Editors/ContentTypeControllerBase.cs index bca8c28f64..85ead9924d 100644 --- a/src/Umbraco.Web/Editors/ContentTypeControllerBase.cs +++ b/src/Umbraco.Web/Editors/ContentTypeControllerBase.cs @@ -43,12 +43,11 @@ namespace Umbraco.Web.Editors AppCaches appCaches, IProfilingLogger logger, IRuntimeState runtimeState, - UmbracoHelper umbracoHelper, IShortStringHelper shortStringHelper, UmbracoMapper umbracoMapper, IPublishedUrlProvider publishedUrlProvider, EditorValidatorCollection editorValidatorCollection) - : base(globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, umbracoHelper, shortStringHelper, umbracoMapper, publishedUrlProvider) + : base(globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, shortStringHelper, umbracoMapper, publishedUrlProvider) { _editorValidatorCollection = editorValidatorCollection; CultureDictionary = cultureDictionary; diff --git a/src/Umbraco.Web/Editors/CurrentUserController.cs b/src/Umbraco.Web/Editors/CurrentUserController.cs index 36f39940cb..85a4f97fb6 100644 --- a/src/Umbraco.Web/Editors/CurrentUserController.cs +++ b/src/Umbraco.Web/Editors/CurrentUserController.cs @@ -46,7 +46,6 @@ namespace Umbraco.Web.Editors AppCaches appCaches, IProfilingLogger logger, IRuntimeState runtimeState, - UmbracoHelper umbracoHelper, IMediaFileSystem mediaFileSystem, IShortStringHelper shortStringHelper, UmbracoMapper umbracoMapper, @@ -54,7 +53,7 @@ namespace Umbraco.Web.Editors IIOHelper ioHelper, IImageUrlGenerator imageUrlGenerator, IPublishedUrlProvider publishedUrlProvider) - : base(globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, umbracoHelper, shortStringHelper, umbracoMapper, publishedUrlProvider) + : base(globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, shortStringHelper, umbracoMapper, publishedUrlProvider) { _mediaFileSystem = mediaFileSystem; _umbracoSettingsSection = umbracoSettingsSection ?? throw new ArgumentNullException(nameof(umbracoSettingsSection)); diff --git a/src/Umbraco.Web/Editors/DashboardController.cs b/src/Umbraco.Web/Editors/DashboardController.cs index 8c955b5c29..84aad2d0c0 100644 --- a/src/Umbraco.Web/Editors/DashboardController.cs +++ b/src/Umbraco.Web/Editors/DashboardController.cs @@ -50,12 +50,11 @@ namespace Umbraco.Web.Editors IProfilingLogger logger, IRuntimeState runtimeState, IDashboardService dashboardService, - UmbracoHelper umbracoHelper, IUmbracoVersion umbracoVersion, IShortStringHelper shortStringHelper, UmbracoMapper umbracoMapper, IPublishedUrlProvider publishedUrlProvider) - : base(globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, umbracoHelper, umbracoMapper,publishedUrlProvider) + : base(globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, umbracoMapper,publishedUrlProvider) { _dashboardService = dashboardService; _umbracoVersion = umbracoVersion; diff --git a/src/Umbraco.Web/Editors/DataTypeController.cs b/src/Umbraco.Web/Editors/DataTypeController.cs index 835bda19b6..0ab54d9f98 100644 --- a/src/Umbraco.Web/Editors/DataTypeController.cs +++ b/src/Umbraco.Web/Editors/DataTypeController.cs @@ -54,12 +54,11 @@ namespace Umbraco.Web.Editors AppCaches appCaches, IProfilingLogger logger, IRuntimeState runtimeState, - UmbracoHelper umbracoHelper, IShortStringHelper shortStringHelper, UmbracoMapper umbracoMapper, IUmbracoSettingsSection umbracoSettingsSection, IPublishedUrlProvider publishedUrlProvider) - : base(globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, umbracoHelper, shortStringHelper, umbracoMapper, publishedUrlProvider) + : base(globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, shortStringHelper, umbracoMapper, publishedUrlProvider) { _propertyEditors = propertyEditors; _umbracoSettingsSection = umbracoSettingsSection ?? throw new ArgumentNullException(nameof(umbracoSettingsSection)); diff --git a/src/Umbraco.Web/Editors/DictionaryController.cs b/src/Umbraco.Web/Editors/DictionaryController.cs index 8d835b74b8..56701d35ed 100644 --- a/src/Umbraco.Web/Editors/DictionaryController.cs +++ b/src/Umbraco.Web/Editors/DictionaryController.cs @@ -43,11 +43,10 @@ namespace Umbraco.Web.Editors AppCaches appCaches, IProfilingLogger logger, IRuntimeState runtimeState, - UmbracoHelper umbracoHelper, IShortStringHelper shortStringHelper, UmbracoMapper umbracoMapper, IPublishedUrlProvider publishedUrlProvider) - : base(globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, umbracoHelper, shortStringHelper, umbracoMapper, publishedUrlProvider) + : base(globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, shortStringHelper, umbracoMapper, publishedUrlProvider) { } diff --git a/src/Umbraco.Web/Editors/EntityController.cs b/src/Umbraco.Web/Editors/EntityController.cs index 0d72e08318..5324bf12ad 100644 --- a/src/Umbraco.Web/Editors/EntityController.cs +++ b/src/Umbraco.Web/Editors/EntityController.cs @@ -53,6 +53,7 @@ namespace Umbraco.Web.Editors private readonly ITreeService _treeService; private readonly UmbracoTreeSearcher _treeSearcher; private readonly SearchableTreeCollection _searchableTreeCollection; + private readonly IPublishedContentQuery _publishedContentQuery; public EntityController( IGlobalSettings globalSettings, @@ -63,17 +64,18 @@ namespace Umbraco.Web.Editors IProfilingLogger logger, IRuntimeState runtimeState, ITreeService treeService, - UmbracoHelper umbracoHelper, SearchableTreeCollection searchableTreeCollection, UmbracoTreeSearcher treeSearcher, IShortStringHelper shortStringHelper, UmbracoMapper umbracoMapper, - IPublishedUrlProvider publishedUrlProvider) - : base(globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, umbracoHelper, shortStringHelper, umbracoMapper, publishedUrlProvider) + IPublishedUrlProvider publishedUrlProvider, + IPublishedContentQuery publishedContentQuery) + : base(globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, shortStringHelper, umbracoMapper, publishedUrlProvider) { _treeService = treeService; _searchableTreeCollection = searchableTreeCollection; _treeSearcher = treeSearcher; + _publishedContentQuery = publishedContentQuery; } /// @@ -189,7 +191,7 @@ namespace Umbraco.Web.Editors { var foundContent = GetResultForId(id, type); - return foundContent.Path.Split(new[] {','}, StringSplitOptions.RemoveEmptyEntries).Select(int.Parse); + return foundContent.Path.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries).Select(int.Parse); } /// @@ -233,7 +235,7 @@ namespace Umbraco.Web.Editors if (!intId.Success) throw new HttpResponseException(HttpStatusCode.NotFound); UmbracoEntityTypes entityType; - switch(udi.EntityType) + switch (udi.EntityType) { case Constants.UdiEntityType.Document: entityType = UmbracoEntityTypes.Document; @@ -283,7 +285,8 @@ namespace Umbraco.Web.Editors var ancestors = GetResultForAncestors(id, type); //if content, skip the first node for replicating NiceUrl defaults - if(type == UmbracoEntityTypes.Document) { + if (type == UmbracoEntityTypes.Document) + { ancestors = ancestors.Skip(1); } @@ -313,7 +316,7 @@ namespace Umbraco.Web.Editors var q = ParseXPathQuery(query, nodeContextId); - var node = Umbraco.ContentSingleAtXPath(q); + var node = _publishedContentQuery.ContentSingleAtXPath(q); if (node == null) return null; @@ -332,7 +335,7 @@ namespace Umbraco.Web.Editors var ent = Services.EntityService.Get(nodeid); return ent.Path.Split(',').Reverse(); }, - publishedContentExists: i => Umbraco.Content(i) != null); + publishedContentExists: i => _publishedContentQuery.Content(i) != null); } [HttpGet] @@ -690,7 +693,7 @@ namespace Umbraco.Web.Editors case UmbracoEntityTypes.Media: return Security.CurrentUser.CalculateMediaStartNodeIds(Services.EntityService); default: - return Array.Empty(); + return Array.Empty(); } } @@ -1108,7 +1111,7 @@ namespace Umbraco.Web.Editors case UmbracoEntityTypes.Language: - if (!postFilter.IsNullOrWhiteSpace() ) + if (!postFilter.IsNullOrWhiteSpace()) throw new NotSupportedException("Filtering on languages is not currently supported"); return Services.LocalizationService.GetAllLanguages().Select(MapEntities()); diff --git a/src/Umbraco.Web/Editors/LogController.cs b/src/Umbraco.Web/Editors/LogController.cs index 7bcc0baa01..b502802775 100644 --- a/src/Umbraco.Web/Editors/LogController.cs +++ b/src/Umbraco.Web/Editors/LogController.cs @@ -35,13 +35,12 @@ namespace Umbraco.Web.Editors AppCaches appCaches, IProfilingLogger logger, IRuntimeState runtimeState, - UmbracoHelper umbracoHelper, IMediaFileSystem mediaFileSystem, IShortStringHelper shortStringHelper, UmbracoMapper umbracoMapper, IImageUrlGenerator imageUrlGenerator, IPublishedUrlProvider publishedUrlProvider) - : base(globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, umbracoHelper, shortStringHelper, umbracoMapper, publishedUrlProvider) + : base(globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, shortStringHelper, umbracoMapper, publishedUrlProvider) { _mediaFileSystem = mediaFileSystem; _imageUrlGenerator = imageUrlGenerator; diff --git a/src/Umbraco.Web/Editors/MacroRenderingController.cs b/src/Umbraco.Web/Editors/MacroRenderingController.cs index 06cd15dcb4..43b544cb1f 100644 --- a/src/Umbraco.Web/Editors/MacroRenderingController.cs +++ b/src/Umbraco.Web/Editors/MacroRenderingController.cs @@ -48,7 +48,6 @@ namespace Umbraco.Web.Editors AppCaches appCaches, IProfilingLogger logger, IRuntimeState runtimeState, - UmbracoHelper umbracoHelper, IShortStringHelper shortStringHelper, UmbracoMapper umbracoMapper, IUmbracoComponentRenderer componentRenderer, @@ -63,7 +62,6 @@ namespace Umbraco.Web.Editors appCaches, logger, runtimeState, - umbracoHelper, shortStringHelper, umbracoMapper, publishedUrlProvider) diff --git a/src/Umbraco.Web/Editors/MacrosController.cs b/src/Umbraco.Web/Editors/MacrosController.cs index 0ac75df477..babeb921fa 100644 --- a/src/Umbraco.Web/Editors/MacrosController.cs +++ b/src/Umbraco.Web/Editors/MacrosController.cs @@ -47,13 +47,12 @@ namespace Umbraco.Web.Editors AppCaches appCaches, IProfilingLogger logger, IRuntimeState runtimeState, - UmbracoHelper umbracoHelper, IShortStringHelper shortStringHelper, UmbracoMapper umbracoMapper, ParameterEditorCollection parameterEditorCollection, IIOHelper ioHelper, IPublishedUrlProvider publishedUrlProvider) - : base(globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, umbracoHelper, shortStringHelper, umbracoMapper, publishedUrlProvider) + : base(globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, shortStringHelper, umbracoMapper, publishedUrlProvider) { _parameterEditorCollection = parameterEditorCollection; _ioHelper = ioHelper; diff --git a/src/Umbraco.Web/Editors/MediaController.cs b/src/Umbraco.Web/Editors/MediaController.cs index 328a1be238..8351f5a029 100644 --- a/src/Umbraco.Web/Editors/MediaController.cs +++ b/src/Umbraco.Web/Editors/MediaController.cs @@ -63,14 +63,13 @@ namespace Umbraco.Web.Editors AppCaches appCaches, IProfilingLogger logger, IRuntimeState runtimeState, - UmbracoHelper umbracoHelper, IMediaFileSystem mediaFileSystem, IShortStringHelper shortStringHelper, UmbracoMapper umbracoMapper, IUmbracoSettingsSection umbracoSettingsSection, IIOHelper ioHelper, IPublishedUrlProvider publishedUrlProvider) - : base(cultureDictionary, globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, umbracoHelper, shortStringHelper, umbracoMapper, publishedUrlProvider) + : base(cultureDictionary, globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, shortStringHelper, umbracoMapper, publishedUrlProvider) { _propertyEditors = propertyEditors ?? throw new ArgumentNullException(nameof(propertyEditors)); _mediaFileSystem = mediaFileSystem; diff --git a/src/Umbraco.Web/Editors/MediaTypeController.cs b/src/Umbraco.Web/Editors/MediaTypeController.cs index f4c8f89e28..e6130ca1a9 100644 --- a/src/Umbraco.Web/Editors/MediaTypeController.cs +++ b/src/Umbraco.Web/Editors/MediaTypeController.cs @@ -51,13 +51,12 @@ namespace Umbraco.Web.Editors AppCaches appCaches, IProfilingLogger logger, IRuntimeState runtimeState, - UmbracoHelper umbracoHelper, IShortStringHelper shortStringHelper, UmbracoMapper umbracoMapper, IEntityService entityService, IPublishedUrlProvider publishedUrlProvider, EditorValidatorCollection editorValidatorCollection) - : base(cultureDictionary, globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, umbracoHelper, shortStringHelper, umbracoMapper, publishedUrlProvider, editorValidatorCollection) + : base(cultureDictionary, globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, shortStringHelper, umbracoMapper, publishedUrlProvider, editorValidatorCollection) { _shortStringHelper = shortStringHelper; _entityService = entityService ?? throw new ArgumentNullException(nameof(entityService)); diff --git a/src/Umbraco.Web/Editors/MemberController.cs b/src/Umbraco.Web/Editors/MemberController.cs index 9493047a56..55a3e29c5c 100644 --- a/src/Umbraco.Web/Editors/MemberController.cs +++ b/src/Umbraco.Web/Editors/MemberController.cs @@ -57,11 +57,10 @@ namespace Umbraco.Web.Editors AppCaches appCaches, IProfilingLogger logger, IRuntimeState runtimeState, - UmbracoHelper umbracoHelper, IShortStringHelper shortStringHelper, UmbracoMapper umbracoMapper, IPublishedUrlProvider publishedUrlProvider) - : base(cultureDictionary, globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, umbracoHelper, shortStringHelper, umbracoMapper, publishedUrlProvider) + : base(cultureDictionary, globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, shortStringHelper, umbracoMapper, publishedUrlProvider) { _passwordConfig = passwordConfig ?? throw new ArgumentNullException(nameof(passwordConfig)); _propertyEditors = propertyEditors ?? throw new ArgumentNullException(nameof(propertyEditors)); diff --git a/src/Umbraco.Web/Editors/MemberTypeController.cs b/src/Umbraco.Web/Editors/MemberTypeController.cs index fd071d5e5c..63ec9c62c7 100644 --- a/src/Umbraco.Web/Editors/MemberTypeController.cs +++ b/src/Umbraco.Web/Editors/MemberTypeController.cs @@ -39,12 +39,11 @@ namespace Umbraco.Web.Editors AppCaches appCaches, IProfilingLogger logger, IRuntimeState runtimeState, - UmbracoHelper umbracoHelper, IShortStringHelper shortStringHelper, UmbracoMapper umbracoMapper, IPublishedUrlProvider publishedUrlProvider, EditorValidatorCollection editorValidatorCollection) - : base(cultureDictionary, globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, umbracoHelper, shortStringHelper, umbracoMapper, publishedUrlProvider, editorValidatorCollection) + : base(cultureDictionary, globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, shortStringHelper, umbracoMapper, publishedUrlProvider, editorValidatorCollection) { } diff --git a/src/Umbraco.Web/Editors/PackageController.cs b/src/Umbraco.Web/Editors/PackageController.cs index a43bae566f..6dc913237d 100644 --- a/src/Umbraco.Web/Editors/PackageController.cs +++ b/src/Umbraco.Web/Editors/PackageController.cs @@ -43,12 +43,11 @@ namespace Umbraco.Web.Editors AppCaches appCaches, IProfilingLogger logger, IRuntimeState runtimeState, - UmbracoHelper umbracoHelper, IShortStringHelper shortStringHelper, UmbracoMapper umbracoMapper, IIOHelper ioHelper, IPublishedUrlProvider publishedUrlProvider) - : base(globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, umbracoHelper, shortStringHelper, umbracoMapper, publishedUrlProvider) + : base(globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, shortStringHelper, umbracoMapper, publishedUrlProvider) { _ioHelper = ioHelper; } diff --git a/src/Umbraco.Web/Editors/PackageInstallController.cs b/src/Umbraco.Web/Editors/PackageInstallController.cs index ed37bc9fbd..672b47f1eb 100644 --- a/src/Umbraco.Web/Editors/PackageInstallController.cs +++ b/src/Umbraco.Web/Editors/PackageInstallController.cs @@ -50,14 +50,13 @@ namespace Umbraco.Web.Editors AppCaches appCaches, IProfilingLogger logger, IRuntimeState runtimeState, - UmbracoHelper umbracoHelper, IShortStringHelper shortStringHelper, IUmbracoVersion umbracoVersion, UmbracoMapper umbracoMapper, IIOHelper ioHelper, IPublishedUrlProvider publishedUrlProvider, IUmbracoApplicationLifetime umbracoApplicationLifetime) - : base(globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, umbracoHelper, shortStringHelper, umbracoMapper, publishedUrlProvider) + : base(globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, shortStringHelper, umbracoMapper, publishedUrlProvider) { _umbracoVersion = umbracoVersion; _ioHelper = ioHelper; diff --git a/src/Umbraco.Web/Editors/RelationTypeController.cs b/src/Umbraco.Web/Editors/RelationTypeController.cs index 26d9f60cf9..b5b983c9ff 100644 --- a/src/Umbraco.Web/Editors/RelationTypeController.cs +++ b/src/Umbraco.Web/Editors/RelationTypeController.cs @@ -38,11 +38,10 @@ namespace Umbraco.Web.Editors AppCaches appCaches, IProfilingLogger logger, IRuntimeState runtimeState, - UmbracoHelper umbracoHelper, IShortStringHelper shortStringHelper, UmbracoMapper umbracoMapper, IPublishedUrlProvider publishedUrlProvider) - : base(globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, umbracoHelper, shortStringHelper, umbracoMapper, publishedUrlProvider) + : base(globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, shortStringHelper, umbracoMapper, publishedUrlProvider) { } diff --git a/src/Umbraco.Web/Editors/SectionController.cs b/src/Umbraco.Web/Editors/SectionController.cs index 88da2a1166..f352d9154f 100644 --- a/src/Umbraco.Web/Editors/SectionController.cs +++ b/src/Umbraco.Web/Editors/SectionController.cs @@ -29,8 +29,8 @@ namespace Umbraco.Web.Editors private readonly ITreeService _treeService; public SectionController(IGlobalSettings globalSettings, IUmbracoContextAccessor umbracoContextAccessor, ISqlContext sqlContext, ServiceContext services, AppCaches appCaches, IProfilingLogger logger, IRuntimeState runtimeState, - IDashboardService dashboardService, ISectionService sectionService, ITreeService treeService, UmbracoHelper umbracoHelper, IShortStringHelper shortStringHelper, UmbracoMapper umbracoMapper, IPublishedUrlProvider publishedUrlProvider) - : base(globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, umbracoHelper, shortStringHelper, umbracoMapper, publishedUrlProvider) + IDashboardService dashboardService, ISectionService sectionService, ITreeService treeService, IShortStringHelper shortStringHelper, UmbracoMapper umbracoMapper, IPublishedUrlProvider publishedUrlProvider) + : base(globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, shortStringHelper, umbracoMapper, publishedUrlProvider) { _dashboardService = dashboardService; _sectionService = sectionService; @@ -45,7 +45,7 @@ namespace Umbraco.Web.Editors // this is a bit nasty since we'll be proxying via the app tree controller but we sort of have to do that // since tree's by nature are controllers and require request contextual data - var appTreeController = new ApplicationTreeController(GlobalSettings, UmbracoContextAccessor, SqlContext, Services, AppCaches, Logger, RuntimeState, _treeService, _sectionService, Umbraco, Mapper, PublishedUrlProvider) + var appTreeController = new ApplicationTreeController(GlobalSettings, UmbracoContextAccessor, SqlContext, Services, AppCaches, Logger, RuntimeState, _treeService, _sectionService, Mapper, PublishedUrlProvider) { ControllerContext = ControllerContext }; diff --git a/src/Umbraco.Web/Editors/TemplateController.cs b/src/Umbraco.Web/Editors/TemplateController.cs index fe86cabd01..a02536e2bb 100644 --- a/src/Umbraco.Web/Editors/TemplateController.cs +++ b/src/Umbraco.Web/Editors/TemplateController.cs @@ -34,11 +34,10 @@ namespace Umbraco.Web.Editors AppCaches appCaches, IProfilingLogger logger, IRuntimeState runtimeState, - UmbracoHelper umbracoHelper, IShortStringHelper shortStringHelper, UmbracoMapper umbracoMapper, IPublishedUrlProvider publishedUrlProvider) - : base(globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, umbracoHelper, shortStringHelper, umbracoMapper, publishedUrlProvider) + : base(globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, shortStringHelper, umbracoMapper, publishedUrlProvider) { } diff --git a/src/Umbraco.Web/Editors/TemplateQueryController.cs b/src/Umbraco.Web/Editors/TemplateQueryController.cs index ed8023cc8d..df7f8a0d96 100644 --- a/src/Umbraco.Web/Editors/TemplateQueryController.cs +++ b/src/Umbraco.Web/Editors/TemplateQueryController.cs @@ -27,6 +27,7 @@ namespace Umbraco.Web.Editors public class TemplateQueryController : UmbracoAuthorizedJsonController { private readonly IVariationContextAccessor _variationContextAccessor; + private readonly IPublishedContentQuery _publishedContentQuery; public TemplateQueryController( IGlobalSettings globalSettings, @@ -36,14 +37,15 @@ namespace Umbraco.Web.Editors AppCaches appCaches, IProfilingLogger logger, IRuntimeState runtimeState, - UmbracoHelper umbracoHelper, IVariationContextAccessor variationContextAccessor, IShortStringHelper shortStringHelper, UmbracoMapper umbracoMapper, - IPublishedUrlProvider publishedUrlProvider) - : base(globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, umbracoHelper, shortStringHelper, umbracoMapper, publishedUrlProvider) + IPublishedUrlProvider publishedUrlProvider, + IPublishedContentQuery publishedContentQuery) + : base(globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, shortStringHelper, umbracoMapper, publishedUrlProvider) { _variationContextAccessor = variationContextAccessor; + _publishedContentQuery = publishedContentQuery; } private IEnumerable Terms => new List @@ -79,7 +81,7 @@ namespace Umbraco.Web.Editors if (model == null) { - contents = Umbraco.ContentAtRoot().FirstOrDefault().Children(_variationContextAccessor); + contents = _publishedContentQuery.ContentAtRoot().FirstOrDefault().Children(_variationContextAccessor); queryExpression.Append("Umbraco.ContentAtRoot().FirstOrDefault().Children()"); } else @@ -110,7 +112,7 @@ namespace Umbraco.Web.Editors IPublishedContent sourceDocument; if (model.Source != null && model.Source.Id > 0) { - sourceDocument = Umbraco.Content(model.Source.Id); + sourceDocument = _publishedContentQuery.Content(model.Source.Id); if (sourceDocument == null) queryExpression.AppendFormat("Umbraco.Content({0})", model.Source.Id); @@ -119,7 +121,7 @@ namespace Umbraco.Web.Editors } else { - sourceDocument = Umbraco.ContentAtRoot().FirstOrDefault(); + sourceDocument = _publishedContentQuery.ContentAtRoot().FirstOrDefault(); queryExpression.Append("Umbraco.ContentAtRoot().FirstOrDefault()"); } diff --git a/src/Umbraco.Web/Editors/TinyMceController.cs b/src/Umbraco.Web/Editors/TinyMceController.cs index fdb67df1bf..e83a6676fe 100644 --- a/src/Umbraco.Web/Editors/TinyMceController.cs +++ b/src/Umbraco.Web/Editors/TinyMceController.cs @@ -42,13 +42,12 @@ namespace Umbraco.Web.Editors AppCaches appCaches, IProfilingLogger logger, IRuntimeState runtimeState, - UmbracoHelper umbracoHelper, UmbracoMapper umbracoMapper, IShortStringHelper shortStringHelper, IUmbracoSettingsSection umbracoSettingsSection, IIOHelper ioHelper, IPublishedUrlProvider publishedUrlProvider) - : base(globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, umbracoHelper, umbracoMapper, publishedUrlProvider) + : base(globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, umbracoMapper, publishedUrlProvider) { _shortStringHelper = shortStringHelper ?? throw new ArgumentNullException(nameof(shortStringHelper)); _umbracoSettingsSection = umbracoSettingsSection ?? throw new ArgumentNullException(nameof(umbracoSettingsSection)); diff --git a/src/Umbraco.Web/Editors/TourController.cs b/src/Umbraco.Web/Editors/TourController.cs index c3b9732807..6b586ed162 100644 --- a/src/Umbraco.Web/Editors/TourController.cs +++ b/src/Umbraco.Web/Editors/TourController.cs @@ -36,14 +36,13 @@ namespace Umbraco.Web.Editors AppCaches appCaches, IProfilingLogger logger, IRuntimeState runtimeState, - UmbracoHelper umbracoHelper, IShortStringHelper shortStringHelper, UmbracoMapper umbracoMapper, TourFilterCollection filters, IUmbracoSettingsSection umbracoSettingsSection, IIOHelper ioHelper, IPublishedUrlProvider publishedUrlProvider) - : base(globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, umbracoHelper, shortStringHelper, umbracoMapper, publishedUrlProvider) + : base(globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, shortStringHelper, umbracoMapper, publishedUrlProvider) { _filters = filters; _umbracoSettingsSection = umbracoSettingsSection ?? throw new ArgumentNullException(nameof(umbracoSettingsSection)); diff --git a/src/Umbraco.Web/Editors/UmbracoAuthorizedJsonController.cs b/src/Umbraco.Web/Editors/UmbracoAuthorizedJsonController.cs index d55a901525..64aba378f4 100644 --- a/src/Umbraco.Web/Editors/UmbracoAuthorizedJsonController.cs +++ b/src/Umbraco.Web/Editors/UmbracoAuthorizedJsonController.cs @@ -38,11 +38,10 @@ namespace Umbraco.Web.Editors AppCaches appCaches, IProfilingLogger logger, IRuntimeState runtimeState, - UmbracoHelper umbracoHelper, IShortStringHelper shortStringHelper, UmbracoMapper umbracoMapper, IPublishedUrlProvider publishedUrlProvider) - : base(globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, umbracoHelper, umbracoMapper, publishedUrlProvider) + : base(globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, umbracoMapper, publishedUrlProvider) { ShortStringHelper = shortStringHelper ?? throw new ArgumentNullException(nameof(shortStringHelper)); } diff --git a/src/Umbraco.Web/Editors/UsersController.cs b/src/Umbraco.Web/Editors/UsersController.cs index 3390677a08..0aa63a1e16 100644 --- a/src/Umbraco.Web/Editors/UsersController.cs +++ b/src/Umbraco.Web/Editors/UsersController.cs @@ -59,7 +59,6 @@ namespace Umbraco.Web.Editors AppCaches appCaches, IProfilingLogger logger, IRuntimeState runtimeState, - UmbracoHelper umbracoHelper, IMediaFileSystem mediaFileSystem, IShortStringHelper shortStringHelper, UmbracoMapper umbracoMapper, @@ -67,7 +66,7 @@ namespace Umbraco.Web.Editors IIOHelper ioHelper, IImageUrlGenerator imageUrlGenerator, IPublishedUrlProvider publishedUrlProvider) - : base(globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, umbracoHelper, shortStringHelper, umbracoMapper, publishedUrlProvider) + : base(globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, shortStringHelper, umbracoMapper, publishedUrlProvider) { _mediaFileSystem = mediaFileSystem; _umbracoSettingsSection = umbracoSettingsSection ?? throw new ArgumentNullException(nameof(umbracoSettingsSection)); diff --git a/src/Umbraco.Web/Mvc/EnsurePublishedContentRequestAttribute.cs b/src/Umbraco.Web/Mvc/EnsurePublishedContentRequestAttribute.cs index 2de0accd74..feeec0a1ba 100644 --- a/src/Umbraco.Web/Mvc/EnsurePublishedContentRequestAttribute.cs +++ b/src/Umbraco.Web/Mvc/EnsurePublishedContentRequestAttribute.cs @@ -24,7 +24,7 @@ namespace Umbraco.Web.Mvc private readonly string _dataTokenName; private IUmbracoContextAccessor _umbracoContextAccessor; private readonly int? _contentId; - private UmbracoHelper _helper; + private IPublishedContentQuery _publishedContentQuery; /// /// Constructor - can be used for testing @@ -74,10 +74,7 @@ namespace Umbraco.Web.Mvc // TODO: try lazy property injection? private IPublishedRouter PublishedRouter => Current.Factory.GetInstance(); - /// - /// Exposes an UmbracoHelper - /// - protected UmbracoHelper Umbraco => _helper ?? (_helper = Current.Factory.GetInstance()); + private IPublishedContentQuery PublishedContentQuery => _publishedContentQuery ?? (_publishedContentQuery = Current.Factory.GetInstance()); public override void OnActionExecuted(ActionExecutedContext filterContext) { @@ -103,7 +100,7 @@ namespace Umbraco.Web.Mvc { if (_contentId.HasValue) { - var content = Umbraco.Content(_contentId); + var content = PublishedContentQuery.Content(_contentId.Value); if (content == null) { throw new InvalidOperationException("Could not resolve content with id " + _contentId); diff --git a/src/Umbraco.Web/Mvc/PluginController.cs b/src/Umbraco.Web/Mvc/PluginController.cs index bd5d01995d..9f34de174b 100644 --- a/src/Umbraco.Web/Mvc/PluginController.cs +++ b/src/Umbraco.Web/Mvc/PluginController.cs @@ -76,13 +76,12 @@ namespace Umbraco.Web.Mvc Current.Factory.GetInstance(), Current.Factory.GetInstance(), Current.Factory.GetInstance(), - Current.Factory.GetInstance(), - Current.Factory.GetInstance() + Current.Factory.GetInstance() ) { } - protected PluginController(IUmbracoContextAccessor umbracoContextAccessor, IUmbracoDatabaseFactory databaseFactory, ServiceContext services, AppCaches appCaches, ILogger logger, IProfilingLogger profilingLogger, UmbracoHelper umbracoHelper) + protected PluginController(IUmbracoContextAccessor umbracoContextAccessor, IUmbracoDatabaseFactory databaseFactory, ServiceContext services, AppCaches appCaches, ILogger logger, IProfilingLogger profilingLogger) { UmbracoContextAccessor = umbracoContextAccessor; DatabaseFactory = databaseFactory; @@ -90,7 +89,6 @@ namespace Umbraco.Web.Mvc AppCaches = appCaches; Logger = logger; ProfilingLogger = profilingLogger; - Umbraco = umbracoHelper; } /// diff --git a/src/Umbraco.Web/Mvc/RenderMvcController.cs b/src/Umbraco.Web/Mvc/RenderMvcController.cs index 005a2da495..7286f52c64 100644 --- a/src/Umbraco.Web/Mvc/RenderMvcController.cs +++ b/src/Umbraco.Web/Mvc/RenderMvcController.cs @@ -25,8 +25,8 @@ namespace Umbraco.Web.Mvc ActionInvoker = new RenderActionInvoker(); } - public RenderMvcController(IGlobalSettings globalSettings, IUmbracoContextAccessor umbracoContextAccessor, ServiceContext services, AppCaches appCaches, IProfilingLogger profilingLogger, UmbracoHelper umbracoHelper) - : base(globalSettings, umbracoContextAccessor, services, appCaches, profilingLogger, umbracoHelper) + public RenderMvcController(IGlobalSettings globalSettings, IUmbracoContextAccessor umbracoContextAccessor, ServiceContext services, AppCaches appCaches, IProfilingLogger profilingLogger) + : base(globalSettings, umbracoContextAccessor, services, appCaches, profilingLogger) { ActionInvoker = new RenderActionInvoker(); } diff --git a/src/Umbraco.Web/Mvc/SurfaceController.cs b/src/Umbraco.Web/Mvc/SurfaceController.cs index c03d59058c..877a3c31d8 100644 --- a/src/Umbraco.Web/Mvc/SurfaceController.cs +++ b/src/Umbraco.Web/Mvc/SurfaceController.cs @@ -20,8 +20,8 @@ namespace Umbraco.Web.Mvc protected SurfaceController() { } - protected SurfaceController(IUmbracoContextAccessor umbracoContextAccessor, IUmbracoDatabaseFactory databaseFactory, ServiceContext services, AppCaches appCaches, ILogger logger, IProfilingLogger profilingLogger, UmbracoHelper umbracoHelper) - : base(umbracoContextAccessor, databaseFactory, services, appCaches, logger, profilingLogger, umbracoHelper) + protected SurfaceController(IUmbracoContextAccessor umbracoContextAccessor, IUmbracoDatabaseFactory databaseFactory, ServiceContext services, AppCaches appCaches, ILogger logger, IProfilingLogger profilingLogger) + : base(umbracoContextAccessor, databaseFactory, services, appCaches, logger, profilingLogger) { } /// diff --git a/src/Umbraco.Web/Mvc/UmbracoAuthorizedController.cs b/src/Umbraco.Web/Mvc/UmbracoAuthorizedController.cs index ebdd83cf20..0724cd138d 100644 --- a/src/Umbraco.Web/Mvc/UmbracoAuthorizedController.cs +++ b/src/Umbraco.Web/Mvc/UmbracoAuthorizedController.cs @@ -21,8 +21,8 @@ namespace Umbraco.Web.Mvc { } - protected UmbracoAuthorizedController(IGlobalSettings globalSettings, IUmbracoContextAccessor umbracoContextAccessor, ServiceContext services, AppCaches appCaches, IProfilingLogger profilingLogger, UmbracoHelper umbracoHelper) - : base(globalSettings, umbracoContextAccessor, services, appCaches, profilingLogger, umbracoHelper) + protected UmbracoAuthorizedController(IGlobalSettings globalSettings, IUmbracoContextAccessor umbracoContextAccessor, ServiceContext services, AppCaches appCaches, IProfilingLogger profilingLogger) + : base(globalSettings, umbracoContextAccessor, services, appCaches, profilingLogger) { } } diff --git a/src/Umbraco.Web/Mvc/UmbracoController.cs b/src/Umbraco.Web/Mvc/UmbracoController.cs index 4455ef18c8..9cfd93ba9d 100644 --- a/src/Umbraco.Web/Mvc/UmbracoController.cs +++ b/src/Umbraco.Web/Mvc/UmbracoController.cs @@ -73,13 +73,12 @@ namespace Umbraco.Web.Mvc Current.Factory.GetInstance(), Current.Factory.GetInstance(), Current.Factory.GetInstance(), - Current.Factory.GetInstance(), - Current.Factory.GetInstance() + Current.Factory.GetInstance() ) { } - protected UmbracoController(IGlobalSettings globalSettings, IUmbracoContextAccessor umbracoContextAccessor, ServiceContext services, AppCaches appCaches, IProfilingLogger profilingLogger, UmbracoHelper umbracoHelper) + protected UmbracoController(IGlobalSettings globalSettings, IUmbracoContextAccessor umbracoContextAccessor, ServiceContext services, AppCaches appCaches, IProfilingLogger profilingLogger) { GlobalSettings = globalSettings; UmbracoContextAccessor = umbracoContextAccessor; @@ -87,7 +86,6 @@ namespace Umbraco.Web.Mvc AppCaches = appCaches; Logger = profilingLogger; ProfilingLogger = profilingLogger; - Umbraco = umbracoHelper; } } } diff --git a/src/Umbraco.Web/Profiling/WebProfilingController.cs b/src/Umbraco.Web/Profiling/WebProfilingController.cs index 7bc28f28ea..b37a7eefb8 100644 --- a/src/Umbraco.Web/Profiling/WebProfilingController.cs +++ b/src/Umbraco.Web/Profiling/WebProfilingController.cs @@ -28,11 +28,10 @@ namespace Umbraco.Web.Profiling AppCaches appCaches, IProfilingLogger logger, IRuntimeState runtimeState, - UmbracoHelper umbracoHelper, IShortStringHelper shortStringHelper, UmbracoMapper umbracoMapper, IPublishedUrlProvider publishedUrlProvider) - : base(globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, umbracoHelper, shortStringHelper, umbracoMapper, publishedUrlProvider) + : base(globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, shortStringHelper, umbracoMapper, publishedUrlProvider) { _runtimeState = runtimeState; } diff --git a/src/Umbraco.Web/PropertyEditors/RichTextPreValueController.cs b/src/Umbraco.Web/PropertyEditors/RichTextPreValueController.cs index 5d7ca9bdb0..e7ed10c8bf 100644 --- a/src/Umbraco.Web/PropertyEditors/RichTextPreValueController.cs +++ b/src/Umbraco.Web/PropertyEditors/RichTextPreValueController.cs @@ -33,13 +33,12 @@ namespace Umbraco.Web.PropertyEditors AppCaches appCaches, IProfilingLogger logger, IRuntimeState runtimeState, - UmbracoHelper umbracoHelper, IShortStringHelper shortStringHelper, IIOHelper ioHelper, UmbracoMapper umbracoMapper, IPublishedUrlProvider publishedUrlProvider ) - : base(globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, umbracoHelper, shortStringHelper, umbracoMapper, publishedUrlProvider) + : base(globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, shortStringHelper, umbracoMapper, publishedUrlProvider) { _ioHelper = ioHelper; } diff --git a/src/Umbraco.Web/PropertyEditors/TagsDataController.cs b/src/Umbraco.Web/PropertyEditors/TagsDataController.cs index 7d699077c3..9cb00090e3 100644 --- a/src/Umbraco.Web/PropertyEditors/TagsDataController.cs +++ b/src/Umbraco.Web/PropertyEditors/TagsDataController.cs @@ -1,4 +1,5 @@ -using System.Collections.Generic; +using System; +using System.Collections.Generic; using System.Linq; using Umbraco.Core; using Umbraco.Web.Models; @@ -17,6 +18,12 @@ namespace Umbraco.Web.PropertyEditors [PluginController("UmbracoApi")] public class TagsDataController : UmbracoAuthorizedApiController { + private readonly ITagQuery _tagQuery; + + public TagsDataController(ITagQuery tagQuery) + { + _tagQuery = tagQuery ?? throw new ArgumentNullException(nameof(tagQuery)); + } /// /// Returns all tags matching tagGroup, culture and an optional query /// @@ -28,9 +35,9 @@ namespace Umbraco.Web.PropertyEditors { if (culture == string.Empty) culture = null; - var result = Umbraco.TagQuery.GetAllTags(tagGroup, culture); + var result = _tagQuery.GetAllTags(tagGroup, culture); + - if (!query.IsNullOrWhiteSpace()) { //TODO: add the query to TagQuery + the tag service, this is ugly but all we can do for now. diff --git a/src/Umbraco.Web/Runtime/WebInitialComposer.cs b/src/Umbraco.Web/Runtime/WebInitialComposer.cs index e4b50a248c..0ea88d23df 100644 --- a/src/Umbraco.Web/Runtime/WebInitialComposer.cs +++ b/src/Umbraco.Web/Runtime/WebInitialComposer.cs @@ -132,8 +132,7 @@ namespace Umbraco.Web.Runtime composition.Register(factory => { var umbCtx = factory.GetInstance(); - return new UmbracoHelper(umbCtx.IsFrontEndUmbracoRequest ? umbCtx.PublishedRequest?.PublishedContent : null, - factory.GetInstance(), factory.GetInstance(), + return new UmbracoHelper(umbCtx.IsFrontEndUmbracoRequest ? umbCtx.PublishedRequest?.PublishedContent : null, factory.GetInstance(), factory.GetInstance(), factory.GetInstance()); }); else diff --git a/src/Umbraco.Web/Trees/ApplicationTreeController.cs b/src/Umbraco.Web/Trees/ApplicationTreeController.cs index 8ee39b49e5..d815f76b40 100644 --- a/src/Umbraco.Web/Trees/ApplicationTreeController.cs +++ b/src/Umbraco.Web/Trees/ApplicationTreeController.cs @@ -38,8 +38,8 @@ namespace Umbraco.Web.Trees public ApplicationTreeController(IGlobalSettings globalSettings, IUmbracoContextAccessor umbracoContextAccessor, ISqlContext sqlContext, ServiceContext services, AppCaches appCaches, IProfilingLogger logger, - IRuntimeState runtimeState, ITreeService treeService, ISectionService sectionService, UmbracoHelper umbracoHelper, UmbracoMapper umbracoMapper, IPublishedUrlProvider publishedUrlProvider) - : base(globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, umbracoHelper, umbracoMapper, publishedUrlProvider) + IRuntimeState runtimeState, ITreeService treeService, ISectionService sectionService, UmbracoMapper umbracoMapper, IPublishedUrlProvider publishedUrlProvider) + : base(globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, umbracoMapper, publishedUrlProvider) { _treeService = treeService; _sectionService = sectionService; diff --git a/src/Umbraco.Web/Trees/ContentBlueprintTreeController.cs b/src/Umbraco.Web/Trees/ContentBlueprintTreeController.cs index 843a1cef0c..2218142b90 100644 --- a/src/Umbraco.Web/Trees/ContentBlueprintTreeController.cs +++ b/src/Umbraco.Web/Trees/ContentBlueprintTreeController.cs @@ -40,11 +40,10 @@ namespace Umbraco.Web.Trees AppCaches appCaches, IProfilingLogger logger, IRuntimeState runtimeState, - UmbracoHelper umbracoHelper, UmbracoMapper umbracoMapper, IPublishedUrlProvider publishedUrlProvider, IMenuItemCollectionFactory menuItemCollectionFactory) - : base(globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, umbracoHelper, umbracoMapper, publishedUrlProvider) + : base(globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, umbracoMapper, publishedUrlProvider) { _menuItemCollectionFactory = menuItemCollectionFactory; } diff --git a/src/Umbraco.Web/Trees/ContentTreeController.cs b/src/Umbraco.Web/Trees/ContentTreeController.cs index 9b64111b85..a82d4faba6 100644 --- a/src/Umbraco.Web/Trees/ContentTreeController.cs +++ b/src/Umbraco.Web/Trees/ContentTreeController.cs @@ -63,11 +63,10 @@ namespace Umbraco.Web.Trees AppCaches appCaches, IProfilingLogger logger, IRuntimeState runtimeState, - UmbracoHelper umbracoHelper, UmbracoMapper umbracoMapper, IPublishedUrlProvider publishedUrlProvider, IMenuItemCollectionFactory menuItemCollectionFactory) - : base(globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, umbracoHelper, umbracoMapper, publishedUrlProvider, menuItemCollectionFactory) + : base(globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, umbracoMapper, publishedUrlProvider, menuItemCollectionFactory) { _treeSearcher = treeSearcher; _actions = actions; diff --git a/src/Umbraco.Web/Trees/ContentTreeControllerBase.cs b/src/Umbraco.Web/Trees/ContentTreeControllerBase.cs index 083c4b82e8..1b347cee36 100644 --- a/src/Umbraco.Web/Trees/ContentTreeControllerBase.cs +++ b/src/Umbraco.Web/Trees/ContentTreeControllerBase.cs @@ -38,11 +38,10 @@ namespace Umbraco.Web.Trees AppCaches appCaches, IProfilingLogger logger, IRuntimeState runtimeState, - UmbracoHelper umbracoHelper, UmbracoMapper umbracoMapper, IPublishedUrlProvider publishedUrlProvider, IMenuItemCollectionFactory menuItemCollectionFactory) - : base(globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, umbracoHelper, umbracoMapper, publishedUrlProvider) + : base(globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, umbracoMapper, publishedUrlProvider) { MenuItemCollectionFactory = menuItemCollectionFactory; } diff --git a/src/Umbraco.Web/Trees/ContentTypeTreeController.cs b/src/Umbraco.Web/Trees/ContentTypeTreeController.cs index 4fac87e226..e04bfab9c2 100644 --- a/src/Umbraco.Web/Trees/ContentTypeTreeController.cs +++ b/src/Umbraco.Web/Trees/ContentTypeTreeController.cs @@ -38,11 +38,10 @@ namespace Umbraco.Web.Trees AppCaches appCaches, IProfilingLogger logger, IRuntimeState runtimeState, - UmbracoHelper umbracoHelper, UmbracoMapper umbracoMapper, IPublishedUrlProvider publishedUrlProvider, IMenuItemCollectionFactory menuItemCollectionFactory) - : base(globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, umbracoHelper, umbracoMapper, publishedUrlProvider) + : base(globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, umbracoMapper, publishedUrlProvider) { _treeSearcher = treeSearcher; _menuItemCollectionFactory = menuItemCollectionFactory; diff --git a/src/Umbraco.Web/Trees/DataTypeTreeController.cs b/src/Umbraco.Web/Trees/DataTypeTreeController.cs index 100a5ffe7a..50882488f3 100644 --- a/src/Umbraco.Web/Trees/DataTypeTreeController.cs +++ b/src/Umbraco.Web/Trees/DataTypeTreeController.cs @@ -40,11 +40,10 @@ namespace Umbraco.Web.Trees AppCaches appCaches, IProfilingLogger logger, IRuntimeState runtimeState, - UmbracoHelper umbracoHelper, UmbracoMapper umbracoMapper, IPublishedUrlProvider publishedUrlProvider, IMenuItemCollectionFactory menuItemCollectionFactory) - : base(globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, umbracoHelper, umbracoMapper, publishedUrlProvider) + : base(globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, umbracoMapper, publishedUrlProvider) { _treeSearcher = treeSearcher; _menuItemCollectionFactory = menuItemCollectionFactory; diff --git a/src/Umbraco.Web/Trees/DictionaryTreeController.cs b/src/Umbraco.Web/Trees/DictionaryTreeController.cs index b8d16062ba..8c60532c76 100644 --- a/src/Umbraco.Web/Trees/DictionaryTreeController.cs +++ b/src/Umbraco.Web/Trees/DictionaryTreeController.cs @@ -38,11 +38,10 @@ namespace Umbraco.Web.Trees AppCaches appCaches, IProfilingLogger logger, IRuntimeState runtimeState, - UmbracoHelper umbracoHelper, UmbracoMapper umbracoMapper, IPublishedUrlProvider publishedUrlProvider, IMenuItemCollectionFactory menuItemCollectionFactory) - : base(globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, umbracoHelper, umbracoMapper, publishedUrlProvider) + : base(globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, umbracoMapper, publishedUrlProvider) { _menuItemCollectionFactory = menuItemCollectionFactory; } diff --git a/src/Umbraco.Web/Trees/FileSystemTreeController.cs b/src/Umbraco.Web/Trees/FileSystemTreeController.cs index e4bfbc53f7..eb13daea29 100644 --- a/src/Umbraco.Web/Trees/FileSystemTreeController.cs +++ b/src/Umbraco.Web/Trees/FileSystemTreeController.cs @@ -33,11 +33,10 @@ namespace Umbraco.Web.Trees AppCaches appCaches, IProfilingLogger logger, IRuntimeState runtimeState, - UmbracoHelper umbracoHelper, UmbracoMapper umbracoMapper, IPublishedUrlProvider publishedUrlProvider, IMenuItemCollectionFactory menuItemCollectionFactory) - : base(globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, umbracoHelper, umbracoMapper, publishedUrlProvider) + : base(globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, umbracoMapper, publishedUrlProvider) { MenuItemCollectionFactory = menuItemCollectionFactory; } diff --git a/src/Umbraco.Web/Trees/MacrosTreeController.cs b/src/Umbraco.Web/Trees/MacrosTreeController.cs index 5c03e11c37..217298a7eb 100644 --- a/src/Umbraco.Web/Trees/MacrosTreeController.cs +++ b/src/Umbraco.Web/Trees/MacrosTreeController.cs @@ -32,11 +32,10 @@ namespace Umbraco.Web.Trees AppCaches appCaches, IProfilingLogger logger, IRuntimeState runtimeState, - UmbracoHelper umbracoHelper, UmbracoMapper umbracoMapper, IPublishedUrlProvider publishedUrlProvider, IMenuItemCollectionFactory menuItemCollectionFactory) - : base(globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, umbracoHelper, umbracoMapper, publishedUrlProvider) + : base(globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, umbracoMapper, publishedUrlProvider) { _menuItemCollectionFactory = menuItemCollectionFactory; } diff --git a/src/Umbraco.Web/Trees/MediaTreeController.cs b/src/Umbraco.Web/Trees/MediaTreeController.cs index 0ac33734ff..37f0c8dead 100644 --- a/src/Umbraco.Web/Trees/MediaTreeController.cs +++ b/src/Umbraco.Web/Trees/MediaTreeController.cs @@ -50,11 +50,10 @@ namespace Umbraco.Web.Trees AppCaches appCaches, IProfilingLogger logger, IRuntimeState runtimeState, - UmbracoHelper umbracoHelper, UmbracoMapper umbracoMapper, IPublishedUrlProvider publishedUrlProvider, IMenuItemCollectionFactory menuItemCollectionFactory) - : base(globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, umbracoHelper, umbracoMapper, publishedUrlProvider, menuItemCollectionFactory) + : base(globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, umbracoMapper, publishedUrlProvider, menuItemCollectionFactory) { _treeSearcher = treeSearcher; } diff --git a/src/Umbraco.Web/Trees/MediaTypeTreeController.cs b/src/Umbraco.Web/Trees/MediaTypeTreeController.cs index c366791d2b..4677b251f3 100644 --- a/src/Umbraco.Web/Trees/MediaTypeTreeController.cs +++ b/src/Umbraco.Web/Trees/MediaTypeTreeController.cs @@ -38,12 +38,11 @@ namespace Umbraco.Web.Trees AppCaches appCaches, IProfilingLogger logger, IRuntimeState runtimeState, - UmbracoHelper umbracoHelper, UmbracoMapper umbracoMapper, IPublishedUrlProvider publishedUrlProvider, IMenuItemCollectionFactory menuItemCollectionFactory, IMediaTypeService mediaTypeService) - : base(globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, umbracoHelper, umbracoMapper, publishedUrlProvider) + : base(globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, umbracoMapper, publishedUrlProvider) { _treeSearcher = treeSearcher; _menuItemCollectionFactory = menuItemCollectionFactory; diff --git a/src/Umbraco.Web/Trees/MemberTreeController.cs b/src/Umbraco.Web/Trees/MemberTreeController.cs index ad77c837f6..b4efc27b24 100644 --- a/src/Umbraco.Web/Trees/MemberTreeController.cs +++ b/src/Umbraco.Web/Trees/MemberTreeController.cs @@ -52,12 +52,11 @@ namespace Umbraco.Web.Trees AppCaches appCaches, IProfilingLogger logger, IRuntimeState runtimeState, - UmbracoHelper umbracoHelper, UmbracoMapper umbracoMapper, IPublishedUrlProvider publishedUrlProvider, UmbracoTreeSearcher treeSearcher, IMenuItemCollectionFactory menuItemCollectionFactory) - : base(globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, umbracoHelper, umbracoMapper, publishedUrlProvider) + : base(globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, umbracoMapper, publishedUrlProvider) { _treeSearcher = treeSearcher; _menuItemCollectionFactory = menuItemCollectionFactory; diff --git a/src/Umbraco.Web/Trees/MemberTypeAndGroupTreeControllerBase.cs b/src/Umbraco.Web/Trees/MemberTypeAndGroupTreeControllerBase.cs index e54b200fea..258a2aea5f 100644 --- a/src/Umbraco.Web/Trees/MemberTypeAndGroupTreeControllerBase.cs +++ b/src/Umbraco.Web/Trees/MemberTypeAndGroupTreeControllerBase.cs @@ -33,11 +33,10 @@ namespace Umbraco.Web.Trees AppCaches appCaches, IProfilingLogger logger, IRuntimeState runtimeState, - UmbracoHelper umbracoHelper, UmbracoMapper umbracoMapper, IPublishedUrlProvider publishedUrlProvider, IMenuItemCollectionFactory menuItemCollectionFactory) - : base(globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, umbracoHelper, umbracoMapper, publishedUrlProvider) + : base(globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, umbracoMapper, publishedUrlProvider) { MenuItemCollectionFactory = menuItemCollectionFactory; } diff --git a/src/Umbraco.Web/Trees/PackagesTreeController.cs b/src/Umbraco.Web/Trees/PackagesTreeController.cs index 5608196109..022e33750a 100644 --- a/src/Umbraco.Web/Trees/PackagesTreeController.cs +++ b/src/Umbraco.Web/Trees/PackagesTreeController.cs @@ -30,11 +30,10 @@ namespace Umbraco.Web.Trees AppCaches appCaches, IProfilingLogger logger, IRuntimeState runtimeState, - UmbracoHelper umbracoHelper, UmbracoMapper umbracoMapper, IPublishedUrlProvider publishedUrlProvider, IMenuItemCollectionFactory menuItemCollectionFactory) - : base(globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, umbracoHelper, umbracoMapper, publishedUrlProvider) + : base(globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, umbracoMapper, publishedUrlProvider) { _menuItemCollectionFactory = menuItemCollectionFactory; } diff --git a/src/Umbraco.Web/Trees/RelationTypeTreeController.cs b/src/Umbraco.Web/Trees/RelationTypeTreeController.cs index 5601af0da3..dc849a3154 100644 --- a/src/Umbraco.Web/Trees/RelationTypeTreeController.cs +++ b/src/Umbraco.Web/Trees/RelationTypeTreeController.cs @@ -30,11 +30,10 @@ namespace Umbraco.Web.Trees AppCaches appCaches, IProfilingLogger logger, IRuntimeState runtimeState, - UmbracoHelper umbracoHelper, UmbracoMapper umbracoMapper, IPublishedUrlProvider publishedUrlProvider, IMenuItemCollectionFactory menuItemCollectionFactory) - : base(globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, umbracoHelper, umbracoMapper, publishedUrlProvider) + : base(globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, umbracoMapper, publishedUrlProvider) { _menuItemCollectionFactory = menuItemCollectionFactory; } diff --git a/src/Umbraco.Web/Trees/TemplatesTreeController.cs b/src/Umbraco.Web/Trees/TemplatesTreeController.cs index 647683e5c5..4745b4b172 100644 --- a/src/Umbraco.Web/Trees/TemplatesTreeController.cs +++ b/src/Umbraco.Web/Trees/TemplatesTreeController.cs @@ -40,11 +40,10 @@ namespace Umbraco.Web.Trees AppCaches appCaches, IProfilingLogger logger, IRuntimeState runtimeState, - UmbracoHelper umbracoHelper, UmbracoMapper umbracoMapper, IPublishedUrlProvider publishedUrlProvider, IMenuItemCollectionFactory menuItemCollectionFactory) - : base(globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, umbracoHelper, umbracoMapper, publishedUrlProvider) + : base(globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, umbracoMapper, publishedUrlProvider) { _treeSearcher = treeSearcher; _menuItemCollectionFactory = menuItemCollectionFactory; diff --git a/src/Umbraco.Web/Trees/TreeController.cs b/src/Umbraco.Web/Trees/TreeController.cs index 7185cbaf13..e76b45e623 100644 --- a/src/Umbraco.Web/Trees/TreeController.cs +++ b/src/Umbraco.Web/Trees/TreeController.cs @@ -28,10 +28,9 @@ namespace Umbraco.Web.Trees AppCaches appCaches, IProfilingLogger logger, IRuntimeState runtimeState, - UmbracoHelper umbracoHelper, UmbracoMapper umbracoMapper, IPublishedUrlProvider publishedUrlProvider) - : base(globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, umbracoHelper, umbracoMapper, publishedUrlProvider) + : base(globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, umbracoMapper, publishedUrlProvider) { _treeAttribute = GetTreeAttribute(); } diff --git a/src/Umbraco.Web/Trees/TreeControllerBase.cs b/src/Umbraco.Web/Trees/TreeControllerBase.cs index b6e71c058a..49f7eea845 100644 --- a/src/Umbraco.Web/Trees/TreeControllerBase.cs +++ b/src/Umbraco.Web/Trees/TreeControllerBase.cs @@ -42,10 +42,9 @@ namespace Umbraco.Web.Trees AppCaches appCaches, IProfilingLogger logger, IRuntimeState runtimeState, - UmbracoHelper umbracoHelper, UmbracoMapper umbracoMapper, IPublishedUrlProvider publishedUrlProvider) - : base(globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, umbracoHelper, umbracoMapper, publishedUrlProvider) + : base(globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, umbracoMapper, publishedUrlProvider) { } diff --git a/src/Umbraco.Web/Trees/UserTreeController.cs b/src/Umbraco.Web/Trees/UserTreeController.cs index 648e9ef29c..4d97be511d 100644 --- a/src/Umbraco.Web/Trees/UserTreeController.cs +++ b/src/Umbraco.Web/Trees/UserTreeController.cs @@ -30,11 +30,10 @@ namespace Umbraco.Web.Trees AppCaches appCaches, IProfilingLogger logger, IRuntimeState runtimeState, - UmbracoHelper umbracoHelper, UmbracoMapper umbracoMapper, IPublishedUrlProvider publishedUrlProvider, IMenuItemCollectionFactory menuItemCollectionFactory) - : base(globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, umbracoHelper, umbracoMapper, publishedUrlProvider) + : base(globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, umbracoMapper, publishedUrlProvider) { _menuItemCollectionFactory = menuItemCollectionFactory; } diff --git a/src/Umbraco.Web/UmbracoHelper.cs b/src/Umbraco.Web/UmbracoHelper.cs index 679fbb789c..764647988a 100644 --- a/src/Umbraco.Web/UmbracoHelper.cs +++ b/src/Umbraco.Web/UmbracoHelper.cs @@ -21,7 +21,6 @@ namespace Umbraco.Web public class UmbracoHelper { private readonly IPublishedContentQuery _publishedContentQuery; - private readonly ITagQuery _tagQuery; private readonly IUmbracoComponentRenderer _componentRenderer; private readonly ICultureDictionaryFactory _cultureDictionaryFactory; @@ -34,19 +33,15 @@ namespace Umbraco.Web /// Initializes a new instance of . /// /// The item assigned to the helper. - /// /// /// /// - /// /// Sets the current page to the context's published content request's content item. public UmbracoHelper(IPublishedContent currentPage, - ITagQuery tagQuery, ICultureDictionaryFactory cultureDictionary, IUmbracoComponentRenderer componentRenderer, IPublishedContentQuery publishedContentQuery) { - _tagQuery = tagQuery ?? throw new ArgumentNullException(nameof(tagQuery)); _cultureDictionaryFactory = cultureDictionary ?? throw new ArgumentNullException(nameof(cultureDictionary)); _componentRenderer = componentRenderer ?? throw new ArgumentNullException(nameof(componentRenderer)); _publishedContentQuery = publishedContentQuery ?? throw new ArgumentNullException(nameof(publishedContentQuery)); @@ -62,21 +57,6 @@ namespace Umbraco.Web #endregion - // ensures that we can return the specified value - T Ensure(T o) where T : class => o ?? throw new InvalidOperationException("This UmbracoHelper instance has not been initialized."); - - private IUmbracoComponentRenderer ComponentRenderer => Ensure(_componentRenderer); - private ICultureDictionaryFactory CultureDictionaryFactory => Ensure(_cultureDictionaryFactory); - - /// - /// Gets the tag context. - /// - public ITagQuery TagQuery => Ensure(_tagQuery); - - /// - /// Gets the query context. - /// - public IPublishedContentQuery ContentQuery => Ensure(_publishedContentQuery); /// /// Gets (or sets) the current item assigned to the UmbracoHelper. @@ -122,7 +102,7 @@ namespace Umbraco.Web /// public IHtmlString RenderTemplate(int contentId, int? altTemplateId = null) { - return ComponentRenderer.RenderTemplate(contentId, altTemplateId); + return _componentRenderer.RenderTemplate(contentId, altTemplateId); } #region RenderMacro @@ -134,7 +114,7 @@ namespace Umbraco.Web /// public IHtmlString RenderMacro(string alias) { - return ComponentRenderer.RenderMacro(AssignedContentItem?.Id ?? 0, alias, null); + return _componentRenderer.RenderMacro(AssignedContentItem?.Id ?? 0, alias, null); } /// @@ -145,7 +125,7 @@ namespace Umbraco.Web /// public IHtmlString RenderMacro(string alias, object parameters) { - return ComponentRenderer.RenderMacro(AssignedContentItem?.Id ?? 0, alias, parameters?.ToDictionary()); + return _componentRenderer.RenderMacro(AssignedContentItem?.Id ?? 0, alias, parameters?.ToDictionary()); } /// @@ -156,7 +136,7 @@ namespace Umbraco.Web /// public IHtmlString RenderMacro(string alias, IDictionary parameters) { - return ComponentRenderer.RenderMacro(AssignedContentItem?.Id ?? 0, alias, parameters); + return _componentRenderer.RenderMacro(AssignedContentItem?.Id ?? 0, alias, parameters); } #endregion @@ -192,8 +172,7 @@ namespace Umbraco.Web /// /// Returns the ICultureDictionary for access to dictionary items /// - public ICultureDictionary CultureDictionary => _cultureDictionary - ?? (_cultureDictionary = CultureDictionaryFactory.CreateDictionary()); + public ICultureDictionary CultureDictionary => _cultureDictionary ??= _cultureDictionaryFactory.CreateDictionary(); #endregion @@ -211,15 +190,11 @@ namespace Umbraco.Web return ContentForObject(id); } - private IPublishedContent ContentForObject(object id) + private IPublishedContent ContentForObject(object id) => _publishedContentQuery.Content(id); + + public IPublishedContent ContentSingleAtXPath(string xpath, params XPathVariable[] vars) { - if (ConvertIdObjectToInt(id, out var intId)) - return ContentQuery.Content(intId); - if (ConvertIdObjectToGuid(id, out var guidId)) - return ContentQuery.Content(guidId); - if (ConvertIdObjectToUdi(id, out var udiId)) - return ContentQuery.Content(udiId); - return null; + return _publishedContentQuery.ContentSingleAtXPath(xpath, vars); } /// @@ -227,40 +202,23 @@ namespace Umbraco.Web /// /// The unique identifier of the content item. /// The content, or null of the content item is not in the cache. - public IPublishedContent Content(int id) - { - return ContentQuery.Content(id); - } + public IPublishedContent Content(int id) => _publishedContentQuery.Content(id); /// /// Gets a content item from the cache. /// /// The key of the content item. /// The content, or null of the content item is not in the cache. - public IPublishedContent Content(Guid id) - { - return ContentQuery.Content(id); - } + public IPublishedContent Content(Guid id) => _publishedContentQuery.Content(id); /// /// Gets a content item from the cache. /// /// The unique identifier, or the key, of the content item. /// The content, or null of the content item is not in the cache. - public IPublishedContent Content(string id) - { - return ContentForObject(id); - } + public IPublishedContent Content(string id) => _publishedContentQuery.Content(id); - public IPublishedContent Content(Udi id) - { - return ContentQuery.Content(id); - } - - public IPublishedContent ContentSingleAtXPath(string xpath, params XPathVariable[] vars) - { - return ContentQuery.ContentSingleAtXPath(xpath, vars); - } + public IPublishedContent Content(Udi id) => _publishedContentQuery.Content(id); /// /// Gets content items from the cache. @@ -268,10 +226,7 @@ namespace Umbraco.Web /// The unique identifiers, or the keys, of the content items. /// The content items that were found in the cache. /// Does not support mixing identifiers and keys. - public IEnumerable Content(params object[] ids) - { - return ContentForObjects(ids); - } + public IEnumerable Content(params object[] ids) => _publishedContentQuery.Content(ids); /// /// Gets the contents corresponding to the identifiers. @@ -279,10 +234,7 @@ namespace Umbraco.Web /// The content identifiers. /// The existing contents corresponding to the identifiers. /// If an identifier does not match an existing content, it will be missing in the returned value. - public IEnumerable Content(params Udi[] ids) - { - return ids.Select(id => ContentQuery.Content(id)).WhereNotNull(); - } + public IEnumerable Content(params Udi[] ids) => _publishedContentQuery.Content(ids); /// /// Gets the contents corresponding to the identifiers. @@ -290,40 +242,23 @@ namespace Umbraco.Web /// The content identifiers. /// The existing contents corresponding to the identifiers. /// If an identifier does not match an existing content, it will be missing in the returned value. - public IEnumerable Content(params GuidUdi[] ids) - { - return ids.Select(id => ContentQuery.Content(id)); - } + public IEnumerable Content(params GuidUdi[] ids) => _publishedContentQuery.Content(ids); - private IEnumerable ContentForObjects(IEnumerable ids) - { - var idsA = ids.ToArray(); - if (ConvertIdsObjectToInts(idsA, out var intIds)) - return ContentQuery.Content(intIds); - if (ConvertIdsObjectToGuids(idsA, out var guidIds)) - return ContentQuery.Content(guidIds); - return Enumerable.Empty(); - } + private IEnumerable ContentForObjects(IEnumerable ids) => _publishedContentQuery.Content(ids); /// /// Gets content items from the cache. /// /// The unique identifiers of the content items. /// The content items that were found in the cache. - public IEnumerable Content(params int[] ids) - { - return ContentQuery.Content(ids); - } + public IEnumerable Content(params int[] ids) => _publishedContentQuery.Content(ids); /// /// Gets content items from the cache. /// /// The keys of the content items. /// The content items that were found in the cache. - public IEnumerable Content(params Guid[] ids) - { - return ContentQuery.Content(ids); - } + public IEnumerable Content(params Guid[] ids) => _publishedContentQuery.Content(ids); /// /// Gets content items from the cache. @@ -331,10 +266,7 @@ namespace Umbraco.Web /// The unique identifiers, or the keys, of the content items. /// The content items that were found in the cache. /// Does not support mixing identifiers and keys. - public IEnumerable Content(params string[] ids) - { - return ContentForObjects(ids); - } + public IEnumerable Content(params string[] ids) => _publishedContentQuery.Content(ids); /// /// Gets the contents corresponding to the identifiers. @@ -342,20 +274,7 @@ namespace Umbraco.Web /// The content identifiers. /// The existing contents corresponding to the identifiers. /// If an identifier does not match an existing content, it will be missing in the returned value. - public IEnumerable Content(IEnumerable ids) - { - return ContentForObjects(ids); - } - /// - /// Gets the contents corresponding to the identifiers. - /// - /// The content identifiers. - /// The existing contents corresponding to the identifiers. - /// If an identifier does not match an existing content, it will be missing in the returned value. - public IEnumerable Content(IEnumerable ids) - { - return ids.Select(id => ContentQuery.Content(id)).WhereNotNull(); - } + public IEnumerable Content(IEnumerable ids) => _publishedContentQuery.Content(ids); /// /// Gets the contents corresponding to the identifiers. @@ -363,10 +282,7 @@ namespace Umbraco.Web /// The content identifiers. /// The existing contents corresponding to the identifiers. /// If an identifier does not match an existing content, it will be missing in the returned value. - public IEnumerable Content(IEnumerable ids) - { - return ids.Select(id => ContentQuery.Content(id)); - } + public IEnumerable Content(IEnumerable ids) => _publishedContentQuery.Content(ids); /// /// Gets the contents corresponding to the identifiers. @@ -374,10 +290,7 @@ namespace Umbraco.Web /// The content identifiers. /// The existing contents corresponding to the identifiers. /// If an identifier does not match an existing content, it will be missing in the returned value. - public IEnumerable Content(IEnumerable ids) - { - return ContentForObjects(ids); - } + public IEnumerable Content(IEnumerable ids) => _publishedContentQuery.Content(ids); /// /// Gets the contents corresponding to the identifiers. @@ -385,124 +298,40 @@ namespace Umbraco.Web /// The content identifiers. /// The existing contents corresponding to the identifiers. /// If an identifier does not match an existing content, it will be missing in the returned value. - public IEnumerable Content(IEnumerable ids) - { - return ContentQuery.Content(ids); - } + public IEnumerable Content(IEnumerable ids) => _publishedContentQuery.Content(ids); + + /// + /// Gets the contents corresponding to the identifiers. + /// + /// The content identifiers. + /// The existing contents corresponding to the identifiers. + /// If an identifier does not match an existing content, it will be missing in the returned value. + public IEnumerable Content(IEnumerable ids) => _publishedContentQuery.Content(ids); public IEnumerable ContentAtXPath(string xpath, params XPathVariable[] vars) { - return ContentQuery.ContentAtXPath(xpath, vars); + return _publishedContentQuery.ContentAtXPath(xpath, vars); } public IEnumerable ContentAtXPath(XPathExpression xpath, params XPathVariable[] vars) { - return ContentQuery.ContentAtXPath(xpath, vars); + return _publishedContentQuery.ContentAtXPath(xpath, vars); } public IEnumerable ContentAtRoot() { - return ContentQuery.ContentAtRoot(); + return _publishedContentQuery.ContentAtRoot(); } - internal static bool ConvertIdObjectToInt(object id, out int intId) - { - switch (id) - { - case string s: - return int.TryParse(s, out intId); - case int i: - intId = i; - return true; - - default: - intId = default; - return false; - } - } - - internal static bool ConvertIdObjectToGuid(object id, out Guid guidId) - { - switch (id) - { - case string s: - return Guid.TryParse(s, out guidId); - - case Guid g: - guidId = g; - return true; - - default: - guidId = default; - return false; - } - } - - private static bool ConvertIdsObjectToInts(IEnumerable ids, out IEnumerable intIds) - { - var list = new List(); - intIds = null; - foreach (var id in ids) - { - if (ConvertIdObjectToInt(id, out var intId)) - list.Add(intId); - else - return false; // if one of them is not an int, fail - } - intIds = list; - return true; - } - - private static bool ConvertIdsObjectToGuids(IEnumerable ids, out IEnumerable guidIds) - { - var list = new List(); - guidIds = null; - foreach (var id in ids) - { - Guid guidId; - if (ConvertIdObjectToGuid(id, out guidId)) - list.Add(guidId); - else - return false; // if one of them is not a guid, fail - } - guidIds = list; - return true; - } - - /// Had to change to internal for testing. - internal static bool ConvertIdObjectToUdi(object id, out Udi guidId) - { - switch (id) - { - case string s: - return UdiParser.TryParse(s, out guidId); - - case Udi u: - guidId = u; - return true; - - default: - guidId = default; - return false; - } - } #endregion - #region Media - public IPublishedContent Media(Udi id) - { - var guidUdi = id as GuidUdi; - return guidUdi == null ? null : Media(guidUdi.Guid); - } + public IPublishedContent Media(Udi id) => _publishedContentQuery.Media(id); - public IPublishedContent Media(Guid id) - { - return ContentQuery.Media(id); - } + public IPublishedContent Media(Guid id) => _publishedContentQuery.Media(id); /// /// Overloaded method accepting an 'object' type @@ -519,26 +348,11 @@ namespace Umbraco.Web return MediaForObject(id); } - private IPublishedContent MediaForObject(object id) - { - if (ConvertIdObjectToInt(id, out var intId)) - return ContentQuery.Media(intId); - if (ConvertIdObjectToGuid(id, out var guidId)) - return ContentQuery.Media(guidId); - if (ConvertIdObjectToUdi(id, out var udiId)) - return ContentQuery.Media(udiId); - return null; - } + private IPublishedContent MediaForObject(object id) => _publishedContentQuery.Media(id); - public IPublishedContent Media(int id) - { - return ContentQuery.Media(id); - } + public IPublishedContent Media(int id) => _publishedContentQuery.Media(id); - public IPublishedContent Media(string id) - { - return MediaForObject(id); - } + public IPublishedContent Media(string id) => _publishedContentQuery.Media(id); /// /// Gets the medias corresponding to the identifiers. @@ -546,20 +360,9 @@ namespace Umbraco.Web /// The media identifiers. /// The existing medias corresponding to the identifiers. /// If an identifier does not match an existing media, it will be missing in the returned value. - public IEnumerable Media(params object[] ids) - { - return MediaForObjects(ids); - } + public IEnumerable Media(params object[] ids) => _publishedContentQuery.Media(ids); - private IEnumerable MediaForObjects(IEnumerable ids) - { - var idsA = ids.ToArray(); - if (ConvertIdsObjectToInts(idsA, out var intIds)) - return ContentQuery.Media(intIds); - if (ConvertIdsObjectToGuids(idsA, out var guidIds)) - return ContentQuery.Media(guidIds); - return Enumerable.Empty(); - } + private IEnumerable MediaForObjects(IEnumerable ids) => _publishedContentQuery.Media(ids); /// /// Gets the medias corresponding to the identifiers. @@ -567,10 +370,7 @@ namespace Umbraco.Web /// The media identifiers. /// The existing medias corresponding to the identifiers. /// If an identifier does not match an existing media, it will be missing in the returned value. - public IEnumerable Media(params int[] ids) - { - return ContentQuery.Media(ids); - } + public IEnumerable Media(params int[] ids) => _publishedContentQuery.Media(ids); /// /// Gets the medias corresponding to the identifiers. @@ -578,10 +378,7 @@ namespace Umbraco.Web /// The media identifiers. /// The existing medias corresponding to the identifiers. /// If an identifier does not match an existing media, it will be missing in the returned value. - public IEnumerable Media(params string[] ids) - { - return MediaForObjects(ids); - } + public IEnumerable Media(params string[] ids) => _publishedContentQuery.Media(ids); /// @@ -590,10 +387,7 @@ namespace Umbraco.Web /// The media identifiers. /// The existing medias corresponding to the identifiers. /// If an identifier does not match an existing media, it will be missing in the returned value. - public IEnumerable Media(params Udi[] ids) - { - return ids.Select(id => ContentQuery.Media(id)).WhereNotNull(); - } + public IEnumerable Media(params Udi[] ids) => _publishedContentQuery.Media(ids); /// /// Gets the medias corresponding to the identifiers. @@ -601,10 +395,7 @@ namespace Umbraco.Web /// The media identifiers. /// The existing medias corresponding to the identifiers. /// If an identifier does not match an existing media, it will be missing in the returned value. - public IEnumerable Media(params GuidUdi[] ids) - { - return ids.Select(id => ContentQuery.Media(id)); - } + public IEnumerable Media(params GuidUdi[] ids) => _publishedContentQuery.Media(ids); /// /// Gets the medias corresponding to the identifiers. @@ -612,10 +403,7 @@ namespace Umbraco.Web /// The media identifiers. /// The existing medias corresponding to the identifiers. /// If an identifier does not match an existing media, it will be missing in the returned value. - public IEnumerable Media(IEnumerable ids) - { - return MediaForObjects(ids); - } + public IEnumerable Media(IEnumerable ids) => _publishedContentQuery.Media(ids); /// /// Gets the medias corresponding to the identifiers. @@ -623,10 +411,7 @@ namespace Umbraco.Web /// The media identifiers. /// The existing medias corresponding to the identifiers. /// If an identifier does not match an existing media, it will be missing in the returned value. - public IEnumerable Media(IEnumerable ids) - { - return ContentQuery.Media(ids); - } + public IEnumerable Media(IEnumerable ids) => _publishedContentQuery.Media(ids); /// /// Gets the medias corresponding to the identifiers. @@ -634,10 +419,7 @@ namespace Umbraco.Web /// The media identifiers. /// The existing medias corresponding to the identifiers. /// If an identifier does not match an existing media, it will be missing in the returned value. - public IEnumerable Media(IEnumerable ids) - { - return ids.Select(id => ContentQuery.Media(id)).WhereNotNull(); - } + public IEnumerable Media(IEnumerable ids) => _publishedContentQuery.Media(ids); /// /// Gets the medias corresponding to the identifiers. @@ -645,10 +427,7 @@ namespace Umbraco.Web /// The media identifiers. /// The existing medias corresponding to the identifiers. /// If an identifier does not match an existing media, it will be missing in the returned value. - public IEnumerable Media(IEnumerable ids) - { - return ids.Select(id => ContentQuery.Media(id)); - } + public IEnumerable Media(IEnumerable ids) => _publishedContentQuery.Media(ids); /// /// Gets the medias corresponding to the identifiers. @@ -656,17 +435,15 @@ namespace Umbraco.Web /// The media identifiers. /// The existing medias corresponding to the identifiers. /// If an identifier does not match an existing media, it will be missing in the returned value. - public IEnumerable Media(IEnumerable ids) - { - return MediaForObjects(ids); - } + public IEnumerable Media(IEnumerable ids) => _publishedContentQuery.Media(ids); public IEnumerable MediaAtRoot() { - return ContentQuery.MediaAtRoot(); + return _publishedContentQuery.MediaAtRoot(); } #endregion + internal static bool DecryptAndValidateEncryptedRouteString(string ufprt, out IDictionary parts) { string decryptedString; diff --git a/src/Umbraco.Web/UmbracoHttpHandler.cs b/src/Umbraco.Web/UmbracoHttpHandler.cs index 27a3255edd..eb219f82d2 100644 --- a/src/Umbraco.Web/UmbracoHttpHandler.cs +++ b/src/Umbraco.Web/UmbracoHttpHandler.cs @@ -14,16 +14,15 @@ namespace Umbraco.Web private UrlHelper _url; protected UmbracoHttpHandler() - : this(Current.UmbracoContextAccessor, Current.UmbracoHelper, Current.Services, Current.ProfilingLogger) + : this(Current.UmbracoContextAccessor, Current.Services, Current.ProfilingLogger) { } - protected UmbracoHttpHandler(IUmbracoContextAccessor umbracoContextAccessor, UmbracoHelper umbracoHelper, ServiceContext service, IProfilingLogger plogger) + protected UmbracoHttpHandler(IUmbracoContextAccessor umbracoContextAccessor,ServiceContext service, IProfilingLogger plogger) { UmbracoContextAccessor = umbracoContextAccessor; Logger = plogger; ProfilingLogger = plogger; Services = service; - Umbraco = umbracoHelper; } public abstract void ProcessRequest(HttpContext context); @@ -45,11 +44,6 @@ namespace Umbraco.Web /// public IUmbracoContextAccessor UmbracoContextAccessor { get; } - /// - /// Gets the Umbraco helper. - /// - public UmbracoHelper Umbraco { get; } - /// /// Gets the services context. /// diff --git a/src/Umbraco.Web/UmbracoWebService.cs b/src/Umbraco.Web/UmbracoWebService.cs index 3b35dbd6c7..916ab5ad8e 100644 --- a/src/Umbraco.Web/UmbracoWebService.cs +++ b/src/Umbraco.Web/UmbracoWebService.cs @@ -21,18 +21,17 @@ namespace Umbraco.Web { private UrlHelper _url; - protected UmbracoWebService(IProfilingLogger profilingLogger, IUmbracoContextAccessor umbracoContextAccessor, UmbracoHelper umbraco, ServiceContext services, IGlobalSettings globalSettings) + protected UmbracoWebService(IProfilingLogger profilingLogger, IUmbracoContextAccessor umbracoContextAccessor, ServiceContext services, IGlobalSettings globalSettings) { Logger = profilingLogger; ProfilingLogger = profilingLogger; UmbracoContextAccessor = umbracoContextAccessor; - Umbraco = umbraco; Services = services; GlobalSettings = globalSettings; } protected UmbracoWebService() - : this(Current.ProfilingLogger, Current.UmbracoContextAccessor, Current.UmbracoHelper, Current.Services, Current.Configs.Global()) + : this(Current.ProfilingLogger, Current.UmbracoContextAccessor, Current.Services, Current.Configs.Global()) { } @@ -56,11 +55,6 @@ namespace Umbraco.Web /// public IUmbracoContextAccessor UmbracoContextAccessor { get; } - /// - /// Gets the Umbraco helper. - /// - public UmbracoHelper Umbraco { get; } - /// /// Gets the services context. /// diff --git a/src/Umbraco.Web/WebApi/UmbracoApiController.cs b/src/Umbraco.Web/WebApi/UmbracoApiController.cs index 1541389a4f..a832b4e823 100644 --- a/src/Umbraco.Web/WebApi/UmbracoApiController.cs +++ b/src/Umbraco.Web/WebApi/UmbracoApiController.cs @@ -20,8 +20,8 @@ namespace Umbraco.Web.WebApi { } - protected UmbracoApiController(IGlobalSettings globalSettings, IUmbracoContextAccessor umbracoContextAccessor, ISqlContext sqlContext, ServiceContext services, AppCaches appCaches, IProfilingLogger logger, IRuntimeState runtimeState, UmbracoHelper umbracoHelper, UmbracoMapper umbracoMapper, IPublishedUrlProvider publishedUrlProvider) - : base(globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, umbracoHelper, umbracoMapper, publishedUrlProvider) + protected UmbracoApiController(IGlobalSettings globalSettings, IUmbracoContextAccessor umbracoContextAccessor, ISqlContext sqlContext, ServiceContext services, AppCaches appCaches, IProfilingLogger logger, IRuntimeState runtimeState, UmbracoMapper umbracoMapper, IPublishedUrlProvider publishedUrlProvider) + : base(globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, umbracoMapper, publishedUrlProvider) { } } diff --git a/src/Umbraco.Web/WebApi/UmbracoApiControllerBase.cs b/src/Umbraco.Web/WebApi/UmbracoApiControllerBase.cs index 0d0b64b085..9f52e52864 100644 --- a/src/Umbraco.Web/WebApi/UmbracoApiControllerBase.cs +++ b/src/Umbraco.Web/WebApi/UmbracoApiControllerBase.cs @@ -45,7 +45,6 @@ namespace Umbraco.Web.WebApi Current.Factory.GetInstance(), Current.Factory.GetInstance(), Current.Factory.GetInstance(), - Current.Factory.GetInstance(), Current.Factory.GetInstance(), Current.Factory.GetInstance() ) @@ -54,7 +53,7 @@ namespace Umbraco.Web.WebApi /// /// Initializes a new instance of the class with all its dependencies. /// - protected UmbracoApiControllerBase(IGlobalSettings globalSettings, IUmbracoContextAccessor umbracoContextAccessor, ISqlContext sqlContext, ServiceContext services, AppCaches appCaches, IProfilingLogger logger, IRuntimeState runtimeState, UmbracoHelper umbracoHelper, UmbracoMapper umbracoMapper, IPublishedUrlProvider publishedUrlProvider) + protected UmbracoApiControllerBase(IGlobalSettings globalSettings, IUmbracoContextAccessor umbracoContextAccessor, ISqlContext sqlContext, ServiceContext services, AppCaches appCaches, IProfilingLogger logger, IRuntimeState runtimeState, UmbracoMapper umbracoMapper, IPublishedUrlProvider publishedUrlProvider) { UmbracoContextAccessor = umbracoContextAccessor; GlobalSettings = globalSettings; @@ -63,7 +62,6 @@ namespace Umbraco.Web.WebApi AppCaches = appCaches; Logger = logger; RuntimeState = runtimeState; - Umbraco = umbracoHelper; Mapper = umbracoMapper; PublishedUrlProvider = publishedUrlProvider; } @@ -120,11 +118,6 @@ namespace Umbraco.Web.WebApi /// protected Uri ApplicationUrl => RuntimeState.ApplicationUrl; - /// - /// Gets the Umbraco helper. - /// - public UmbracoHelper Umbraco { get; } - /// /// Gets the mapper. /// diff --git a/src/Umbraco.Web/WebApi/UmbracoAuthorizedApiController.cs b/src/Umbraco.Web/WebApi/UmbracoAuthorizedApiController.cs index ff24a2a6f5..57487e29fd 100644 --- a/src/Umbraco.Web/WebApi/UmbracoAuthorizedApiController.cs +++ b/src/Umbraco.Web/WebApi/UmbracoAuthorizedApiController.cs @@ -37,8 +37,8 @@ namespace Umbraco.Web.WebApi { } - protected UmbracoAuthorizedApiController(IGlobalSettings globalSettings, IUmbracoContextAccessor umbracoContextAccessor, ISqlContext sqlContext, ServiceContext services, AppCaches appCaches, IProfilingLogger logger, IRuntimeState runtimeState, UmbracoHelper umbracoHelper, UmbracoMapper umbracoMapper, IPublishedUrlProvider publishedUrlProvider) - : base(globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, umbracoHelper, umbracoMapper, publishedUrlProvider) + protected UmbracoAuthorizedApiController(IGlobalSettings globalSettings, IUmbracoContextAccessor umbracoContextAccessor, ISqlContext sqlContext, ServiceContext services, AppCaches appCaches, IProfilingLogger logger, IRuntimeState runtimeState, UmbracoMapper umbracoMapper, IPublishedUrlProvider publishedUrlProvider) + : base(globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, umbracoMapper, publishedUrlProvider) { }