From e74836cb488d69039592c855e81bca007d904716 Mon Sep 17 00:00:00 2001 From: Elitsa Marinovska Date: Thu, 18 Feb 2021 08:14:27 +0100 Subject: [PATCH 1/9] Moving classes to Infrastructure proj --- .../ModelsBuilder}/ApiVersion.cs | 9 +++------ .../ModelsBuilder}/Building/Builder.cs | 5 ++--- .../Building/ModelsGenerator.cs | 5 ++--- .../ModelsBuilder}/Building/PropertyModel.cs | 4 ++-- .../ModelsBuilder}/Building/TextBuilder.cs | 6 +++--- .../Building/TextHeaderWriter.cs | 4 ++-- .../ModelsBuilder}/Building/TypeModel.cs | 4 ++-- .../Building/TypeModelHasher.cs | 6 ++---- .../ImplementPropertyTypeAttribute.cs | 16 ++++++++++++++++ .../ModelsBuilder}/LiveModelsProvider.cs | 5 ++--- .../ModelsBuilderAssemblyAttribute.cs | 4 ++-- .../ModelsBuilder}/ModelsBuilderDashboard.cs | 2 +- .../ModelsBuilder}/ModelsGenerationError.cs | 2 +- .../ModelsBuilder}/OutOfDateModelsStatus.cs | 2 +- .../PublishedElementExtensions.cs | 4 ++-- .../ModelsBuilder}/PublishedModelUtility.cs | 4 ++-- .../ModelsBuilder}/RoslynCompiler.cs | 2 +- .../ModelsBuilder}/TypeExtensions.cs | 4 ++-- .../ModelsBuilder}/UmbracoServices.cs | 4 ++-- .../Umbraco.Infrastructure.csproj | 3 ++- .../ImplementPropertyTypeAttribute.cs | 19 ------------------- 21 files changed, 52 insertions(+), 62 deletions(-) rename src/{Umbraco.ModelsBuilder.Embedded => Umbraco.Infrastructure/ModelsBuilder}/ApiVersion.cs (81%) rename src/{Umbraco.ModelsBuilder.Embedded => Umbraco.Infrastructure/ModelsBuilder}/Building/Builder.cs (98%) rename src/{Umbraco.ModelsBuilder.Embedded => Umbraco.Infrastructure/ModelsBuilder}/Building/ModelsGenerator.cs (95%) rename src/{Umbraco.ModelsBuilder.Embedded => Umbraco.Infrastructure/ModelsBuilder}/Building/PropertyModel.cs (96%) rename src/{Umbraco.ModelsBuilder.Embedded => Umbraco.Infrastructure/ModelsBuilder}/Building/TextBuilder.cs (99%) rename src/{Umbraco.ModelsBuilder.Embedded => Umbraco.Infrastructure/ModelsBuilder}/Building/TextHeaderWriter.cs (92%) rename src/{Umbraco.ModelsBuilder.Embedded => Umbraco.Infrastructure/ModelsBuilder}/Building/TypeModel.cs (99%) rename src/{Umbraco.ModelsBuilder.Embedded => Umbraco.Infrastructure/ModelsBuilder}/Building/TypeModelHasher.cs (93%) create mode 100644 src/Umbraco.Infrastructure/ModelsBuilder/ImplementPropertyTypeAttribute.cs rename src/{Umbraco.ModelsBuilder.Embedded => Umbraco.Infrastructure/ModelsBuilder}/LiveModelsProvider.cs (97%) rename src/{Umbraco.ModelsBuilder.Embedded => Umbraco.Infrastructure/ModelsBuilder}/ModelsBuilderAssemblyAttribute.cs (93%) rename src/{Umbraco.ModelsBuilder.Embedded => Umbraco.Infrastructure/ModelsBuilder}/ModelsBuilderDashboard.cs (90%) rename src/{Umbraco.ModelsBuilder.Embedded => Umbraco.Infrastructure/ModelsBuilder}/ModelsGenerationError.cs (97%) rename src/{Umbraco.ModelsBuilder.Embedded => Umbraco.Infrastructure/ModelsBuilder}/OutOfDateModelsStatus.cs (98%) rename src/{Umbraco.ModelsBuilder.Embedded => Umbraco.Infrastructure/ModelsBuilder}/PublishedElementExtensions.cs (97%) rename src/{Umbraco.ModelsBuilder.Embedded => Umbraco.Infrastructure/ModelsBuilder}/PublishedModelUtility.cs (98%) rename src/{Umbraco.ModelsBuilder.Embedded => Umbraco.Infrastructure/ModelsBuilder}/RoslynCompiler.cs (98%) rename src/{Umbraco.ModelsBuilder.Embedded => Umbraco.Infrastructure/ModelsBuilder}/TypeExtensions.cs (94%) rename src/{Umbraco.ModelsBuilder.Embedded => Umbraco.Infrastructure/ModelsBuilder}/UmbracoServices.cs (99%) delete mode 100644 src/Umbraco.ModelsBuilder.Embedded/ImplementPropertyTypeAttribute.cs diff --git a/src/Umbraco.ModelsBuilder.Embedded/ApiVersion.cs b/src/Umbraco.Infrastructure/ModelsBuilder/ApiVersion.cs similarity index 81% rename from src/Umbraco.ModelsBuilder.Embedded/ApiVersion.cs rename to src/Umbraco.Infrastructure/ModelsBuilder/ApiVersion.cs index 22347edd60..aceb512dc4 100644 --- a/src/Umbraco.ModelsBuilder.Embedded/ApiVersion.cs +++ b/src/Umbraco.Infrastructure/ModelsBuilder/ApiVersion.cs @@ -1,8 +1,8 @@ -using System; +using System; using System.Reflection; using Semver; -namespace Umbraco.ModelsBuilder.Embedded +namespace Umbraco.Infrastructure.ModelsBuilder { /// /// Manages API version handshake between client and server. @@ -14,10 +14,7 @@ namespace Umbraco.ModelsBuilder.Embedded /// /// The currently executing version. /// - internal ApiVersion(SemVersion executingVersion) - { - Version = executingVersion ?? throw new ArgumentNullException(nameof(executingVersion)); - } + internal ApiVersion(SemVersion executingVersion) => Version = executingVersion ?? throw new ArgumentNullException(nameof(executingVersion)); private static SemVersion CurrentAssemblyVersion => SemVersion.Parse(Assembly.GetExecutingAssembly().GetCustomAttribute().InformationalVersion); diff --git a/src/Umbraco.ModelsBuilder.Embedded/Building/Builder.cs b/src/Umbraco.Infrastructure/ModelsBuilder/Building/Builder.cs similarity index 98% rename from src/Umbraco.ModelsBuilder.Embedded/Building/Builder.cs rename to src/Umbraco.Infrastructure/ModelsBuilder/Building/Builder.cs index aa7ab40ba5..ebde20fbbe 100644 --- a/src/Umbraco.ModelsBuilder.Embedded/Building/Builder.cs +++ b/src/Umbraco.Infrastructure/ModelsBuilder/Building/Builder.cs @@ -1,11 +1,11 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using Umbraco.Core; using Umbraco.Core.Configuration; using Umbraco.Core.Configuration.Models; -namespace Umbraco.ModelsBuilder.Embedded.Building +namespace Umbraco.Infrastructure.ModelsBuilder.Building { // NOTE // The idea was to have different types of builder, because I wanted to experiment with @@ -30,7 +30,6 @@ namespace Umbraco.ModelsBuilder.Embedded.Building "System.Linq.Expressions", "Umbraco.Core.Models.PublishedContent", "Umbraco.Web.PublishedCache", - "Umbraco.ModelsBuilder.Embedded", "Umbraco.Core" }; diff --git a/src/Umbraco.ModelsBuilder.Embedded/Building/ModelsGenerator.cs b/src/Umbraco.Infrastructure/ModelsBuilder/Building/ModelsGenerator.cs similarity index 95% rename from src/Umbraco.ModelsBuilder.Embedded/Building/ModelsGenerator.cs rename to src/Umbraco.Infrastructure/ModelsBuilder/Building/ModelsGenerator.cs index 9431b0141a..63bda2689c 100644 --- a/src/Umbraco.ModelsBuilder.Embedded/Building/ModelsGenerator.cs +++ b/src/Umbraco.Infrastructure/ModelsBuilder/Building/ModelsGenerator.cs @@ -4,9 +4,8 @@ using Microsoft.Extensions.Options; using Umbraco.Core.Configuration; using Umbraco.Core.Configuration.Models; using Umbraco.Core.Hosting; -using Umbraco.Core.IO; -namespace Umbraco.ModelsBuilder.Embedded.Building +namespace Umbraco.Infrastructure.ModelsBuilder.Building { public class ModelsGenerator { @@ -23,7 +22,7 @@ namespace Umbraco.ModelsBuilder.Embedded.Building _hostingEnvironment = hostingEnvironment; } - internal void GenerateModels() + public void GenerateModels() { var modelsDirectory = _config.ModelsDirectoryAbsolute(_hostingEnvironment); if (!Directory.Exists(modelsDirectory)) diff --git a/src/Umbraco.ModelsBuilder.Embedded/Building/PropertyModel.cs b/src/Umbraco.Infrastructure/ModelsBuilder/Building/PropertyModel.cs similarity index 96% rename from src/Umbraco.ModelsBuilder.Embedded/Building/PropertyModel.cs rename to src/Umbraco.Infrastructure/ModelsBuilder/Building/PropertyModel.cs index af5445b175..de0bc8f395 100644 --- a/src/Umbraco.ModelsBuilder.Embedded/Building/PropertyModel.cs +++ b/src/Umbraco.Infrastructure/ModelsBuilder/Building/PropertyModel.cs @@ -1,7 +1,7 @@ -using System; +using System; using System.Collections.Generic; -namespace Umbraco.ModelsBuilder.Embedded.Building +namespace Umbraco.Infrastructure.ModelsBuilder.Building { /// /// Represents a model property. diff --git a/src/Umbraco.ModelsBuilder.Embedded/Building/TextBuilder.cs b/src/Umbraco.Infrastructure/ModelsBuilder/Building/TextBuilder.cs similarity index 99% rename from src/Umbraco.ModelsBuilder.Embedded/Building/TextBuilder.cs rename to src/Umbraco.Infrastructure/ModelsBuilder/Building/TextBuilder.cs index 8328afb822..28e71d7f4b 100644 --- a/src/Umbraco.ModelsBuilder.Embedded/Building/TextBuilder.cs +++ b/src/Umbraco.Infrastructure/ModelsBuilder/Building/TextBuilder.cs @@ -1,16 +1,16 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Text.RegularExpressions; using Umbraco.Core.Configuration.Models; -namespace Umbraco.ModelsBuilder.Embedded.Building +namespace Umbraco.Infrastructure.ModelsBuilder.Building { /// /// Implements a builder that works by writing text. /// - internal class TextBuilder : Builder + public class TextBuilder : Builder { /// /// Initializes a new instance of the class with a list of models to generate diff --git a/src/Umbraco.ModelsBuilder.Embedded/Building/TextHeaderWriter.cs b/src/Umbraco.Infrastructure/ModelsBuilder/Building/TextHeaderWriter.cs similarity index 92% rename from src/Umbraco.ModelsBuilder.Embedded/Building/TextHeaderWriter.cs rename to src/Umbraco.Infrastructure/ModelsBuilder/Building/TextHeaderWriter.cs index 0ffad1c5bc..4c9c81e7aa 100644 --- a/src/Umbraco.ModelsBuilder.Embedded/Building/TextHeaderWriter.cs +++ b/src/Umbraco.Infrastructure/ModelsBuilder/Building/TextHeaderWriter.cs @@ -1,6 +1,6 @@ -using System.Text; +using System.Text; -namespace Umbraco.ModelsBuilder.Embedded.Building +namespace Umbraco.Infrastructure.ModelsBuilder.Building { internal static class TextHeaderWriter { diff --git a/src/Umbraco.ModelsBuilder.Embedded/Building/TypeModel.cs b/src/Umbraco.Infrastructure/ModelsBuilder/Building/TypeModel.cs similarity index 99% rename from src/Umbraco.ModelsBuilder.Embedded/Building/TypeModel.cs rename to src/Umbraco.Infrastructure/ModelsBuilder/Building/TypeModel.cs index 95356cf3ff..7ded306f60 100644 --- a/src/Umbraco.ModelsBuilder.Embedded/Building/TypeModel.cs +++ b/src/Umbraco.Infrastructure/ModelsBuilder/Building/TypeModel.cs @@ -1,9 +1,9 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using Umbraco.Core.Models.PublishedContent; -namespace Umbraco.ModelsBuilder.Embedded.Building +namespace Umbraco.Infrastructure.ModelsBuilder.Building { /// /// Represents a model. diff --git a/src/Umbraco.ModelsBuilder.Embedded/Building/TypeModelHasher.cs b/src/Umbraco.Infrastructure/ModelsBuilder/Building/TypeModelHasher.cs similarity index 93% rename from src/Umbraco.ModelsBuilder.Embedded/Building/TypeModelHasher.cs rename to src/Umbraco.Infrastructure/ModelsBuilder/Building/TypeModelHasher.cs index c5b053ca07..ab8043a72b 100644 --- a/src/Umbraco.ModelsBuilder.Embedded/Building/TypeModelHasher.cs +++ b/src/Umbraco.Infrastructure/ModelsBuilder/Building/TypeModelHasher.cs @@ -1,13 +1,11 @@ -using System; using System.Collections.Generic; using System.Linq; -using System.Security.Cryptography; using System.Text; using Umbraco.Core; -namespace Umbraco.ModelsBuilder.Embedded.Building +namespace Umbraco.Infrastructure.ModelsBuilder.Building { - internal class TypeModelHasher + public class TypeModelHasher { public static string Hash(IEnumerable typeModels) { diff --git a/src/Umbraco.Infrastructure/ModelsBuilder/ImplementPropertyTypeAttribute.cs b/src/Umbraco.Infrastructure/ModelsBuilder/ImplementPropertyTypeAttribute.cs new file mode 100644 index 0000000000..6a0d890cce --- /dev/null +++ b/src/Umbraco.Infrastructure/ModelsBuilder/ImplementPropertyTypeAttribute.cs @@ -0,0 +1,16 @@ +using System; + +namespace Umbraco.Infrastructure.ModelsBuilder +{ + /// + /// Indicates that a property implements a given property alias. + /// + /// And therefore it should not be generated. + [AttributeUsage(AttributeTargets.Property /*, AllowMultiple = false, Inherited = false*/)] + public class ImplementPropertyTypeAttribute : Attribute + { + public ImplementPropertyTypeAttribute(string alias) => Alias = alias; + + public string Alias { get; } + } +} diff --git a/src/Umbraco.ModelsBuilder.Embedded/LiveModelsProvider.cs b/src/Umbraco.Infrastructure/ModelsBuilder/LiveModelsProvider.cs similarity index 97% rename from src/Umbraco.ModelsBuilder.Embedded/LiveModelsProvider.cs rename to src/Umbraco.Infrastructure/ModelsBuilder/LiveModelsProvider.cs index eafc006c26..eea958e36f 100644 --- a/src/Umbraco.ModelsBuilder.Embedded/LiveModelsProvider.cs +++ b/src/Umbraco.Infrastructure/ModelsBuilder/LiveModelsProvider.cs @@ -6,11 +6,10 @@ using Umbraco.Configuration; using Umbraco.Core; using Umbraco.Core.Configuration.Models; using Umbraco.Core.Events; -using Umbraco.Extensions; -using Umbraco.ModelsBuilder.Embedded.Building; +using Umbraco.Infrastructure.ModelsBuilder.Building; using Umbraco.Web.Cache; -namespace Umbraco.ModelsBuilder.Embedded +namespace Umbraco.Infrastructure.ModelsBuilder { // supports LiveAppData - but not PureLive public sealed class LiveModelsProvider : INotificationHandler, INotificationHandler diff --git a/src/Umbraco.ModelsBuilder.Embedded/ModelsBuilderAssemblyAttribute.cs b/src/Umbraco.Infrastructure/ModelsBuilder/ModelsBuilderAssemblyAttribute.cs similarity index 93% rename from src/Umbraco.ModelsBuilder.Embedded/ModelsBuilderAssemblyAttribute.cs rename to src/Umbraco.Infrastructure/ModelsBuilder/ModelsBuilderAssemblyAttribute.cs index 7570c0b5b2..56179f37ac 100644 --- a/src/Umbraco.ModelsBuilder.Embedded/ModelsBuilderAssemblyAttribute.cs +++ b/src/Umbraco.Infrastructure/ModelsBuilder/ModelsBuilderAssemblyAttribute.cs @@ -1,6 +1,6 @@ -using System; +using System; -namespace Umbraco.ModelsBuilder.Embedded +namespace Umbraco.Infrastructure.ModelsBuilder { /// /// Indicates that an Assembly is a Models Builder assembly. diff --git a/src/Umbraco.ModelsBuilder.Embedded/ModelsBuilderDashboard.cs b/src/Umbraco.Infrastructure/ModelsBuilder/ModelsBuilderDashboard.cs similarity index 90% rename from src/Umbraco.ModelsBuilder.Embedded/ModelsBuilderDashboard.cs rename to src/Umbraco.Infrastructure/ModelsBuilder/ModelsBuilderDashboard.cs index 867b22d14b..9c2d2c03b5 100644 --- a/src/Umbraco.ModelsBuilder.Embedded/ModelsBuilderDashboard.cs +++ b/src/Umbraco.Infrastructure/ModelsBuilder/ModelsBuilderDashboard.cs @@ -2,7 +2,7 @@ using System; using Umbraco.Core.Composing; using Umbraco.Core.Dashboards; -namespace Umbraco.ModelsBuilder.Embedded +namespace Umbraco.Infrastructure.ModelsBuilder { [Weight(40)] public class ModelsBuilderDashboard : IDashboard diff --git a/src/Umbraco.ModelsBuilder.Embedded/ModelsGenerationError.cs b/src/Umbraco.Infrastructure/ModelsBuilder/ModelsGenerationError.cs similarity index 97% rename from src/Umbraco.ModelsBuilder.Embedded/ModelsGenerationError.cs rename to src/Umbraco.Infrastructure/ModelsBuilder/ModelsGenerationError.cs index 25f48a19cc..c506c49049 100644 --- a/src/Umbraco.ModelsBuilder.Embedded/ModelsGenerationError.cs +++ b/src/Umbraco.Infrastructure/ModelsBuilder/ModelsGenerationError.cs @@ -6,7 +6,7 @@ using Umbraco.Core.Configuration; using Umbraco.Core.Configuration.Models; using Umbraco.Core.Hosting; -namespace Umbraco.ModelsBuilder.Embedded +namespace Umbraco.Infrastructure.ModelsBuilder { public sealed class ModelsGenerationError { diff --git a/src/Umbraco.ModelsBuilder.Embedded/OutOfDateModelsStatus.cs b/src/Umbraco.Infrastructure/ModelsBuilder/OutOfDateModelsStatus.cs similarity index 98% rename from src/Umbraco.ModelsBuilder.Embedded/OutOfDateModelsStatus.cs rename to src/Umbraco.Infrastructure/ModelsBuilder/OutOfDateModelsStatus.cs index 83f105a486..d1caca2d46 100644 --- a/src/Umbraco.ModelsBuilder.Embedded/OutOfDateModelsStatus.cs +++ b/src/Umbraco.Infrastructure/ModelsBuilder/OutOfDateModelsStatus.cs @@ -6,7 +6,7 @@ using Umbraco.Core.Events; using Umbraco.Core.Hosting; using Umbraco.Web.Cache; -namespace Umbraco.ModelsBuilder.Embedded +namespace Umbraco.Infrastructure.ModelsBuilder { /// /// Used to track if ModelsBuilder models are out of date/stale diff --git a/src/Umbraco.ModelsBuilder.Embedded/PublishedElementExtensions.cs b/src/Umbraco.Infrastructure/ModelsBuilder/PublishedElementExtensions.cs similarity index 97% rename from src/Umbraco.ModelsBuilder.Embedded/PublishedElementExtensions.cs rename to src/Umbraco.Infrastructure/ModelsBuilder/PublishedElementExtensions.cs index 0611d466dc..2a767b718b 100644 --- a/src/Umbraco.ModelsBuilder.Embedded/PublishedElementExtensions.cs +++ b/src/Umbraco.Infrastructure/ModelsBuilder/PublishedElementExtensions.cs @@ -1,8 +1,8 @@ -using System; +using System; using System.Linq.Expressions; using System.Reflection; using Umbraco.Core.Models.PublishedContent; -using Umbraco.ModelsBuilder.Embedded; +using Umbraco.Infrastructure.ModelsBuilder; // same namespace as original Umbraco.Web PublishedElementExtensions // ReSharper disable once CheckNamespace diff --git a/src/Umbraco.ModelsBuilder.Embedded/PublishedModelUtility.cs b/src/Umbraco.Infrastructure/ModelsBuilder/PublishedModelUtility.cs similarity index 98% rename from src/Umbraco.ModelsBuilder.Embedded/PublishedModelUtility.cs rename to src/Umbraco.Infrastructure/ModelsBuilder/PublishedModelUtility.cs index fd1d5128a0..6638544d9c 100644 --- a/src/Umbraco.ModelsBuilder.Embedded/PublishedModelUtility.cs +++ b/src/Umbraco.Infrastructure/ModelsBuilder/PublishedModelUtility.cs @@ -1,10 +1,10 @@ -using System; +using System; using System.Linq; using System.Linq.Expressions; using Umbraco.Core.Models.PublishedContent; using Umbraco.Web.PublishedCache; -namespace Umbraco.ModelsBuilder.Embedded +namespace Umbraco.Infrastructure.ModelsBuilder { /// /// This is called from within the generated model classes diff --git a/src/Umbraco.ModelsBuilder.Embedded/RoslynCompiler.cs b/src/Umbraco.Infrastructure/ModelsBuilder/RoslynCompiler.cs similarity index 98% rename from src/Umbraco.ModelsBuilder.Embedded/RoslynCompiler.cs rename to src/Umbraco.Infrastructure/ModelsBuilder/RoslynCompiler.cs index 37aeb75b35..e2e7affffa 100644 --- a/src/Umbraco.ModelsBuilder.Embedded/RoslynCompiler.cs +++ b/src/Umbraco.Infrastructure/ModelsBuilder/RoslynCompiler.cs @@ -7,7 +7,7 @@ using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.CSharp; using Microsoft.CodeAnalysis.Text; -namespace Umbraco.ModelsBuilder.Embedded +namespace Umbraco.Infrastructure.ModelsBuilder { public class RoslynCompiler { diff --git a/src/Umbraco.ModelsBuilder.Embedded/TypeExtensions.cs b/src/Umbraco.Infrastructure/ModelsBuilder/TypeExtensions.cs similarity index 94% rename from src/Umbraco.ModelsBuilder.Embedded/TypeExtensions.cs rename to src/Umbraco.Infrastructure/ModelsBuilder/TypeExtensions.cs index 1f270a80a6..1a29931a1e 100644 --- a/src/Umbraco.ModelsBuilder.Embedded/TypeExtensions.cs +++ b/src/Umbraco.Infrastructure/ModelsBuilder/TypeExtensions.cs @@ -1,6 +1,6 @@ -using System; +using System; -namespace Umbraco.ModelsBuilder.Embedded +namespace Umbraco.Infrastructure.ModelsBuilder { internal static class TypeExtensions { diff --git a/src/Umbraco.ModelsBuilder.Embedded/UmbracoServices.cs b/src/Umbraco.Infrastructure/ModelsBuilder/UmbracoServices.cs similarity index 99% rename from src/Umbraco.ModelsBuilder.Embedded/UmbracoServices.cs rename to src/Umbraco.Infrastructure/ModelsBuilder/UmbracoServices.cs index 86954a8a85..be59e7aab8 100644 --- a/src/Umbraco.ModelsBuilder.Embedded/UmbracoServices.cs +++ b/src/Umbraco.Infrastructure/ModelsBuilder/UmbracoServices.cs @@ -7,9 +7,9 @@ using Umbraco.Core.Models; using Umbraco.Core.Models.PublishedContent; using Umbraco.Core.Services; using Umbraco.Core.Strings; -using Umbraco.ModelsBuilder.Embedded.Building; +using Umbraco.Infrastructure.ModelsBuilder.Building; -namespace Umbraco.ModelsBuilder.Embedded +namespace Umbraco.Infrastructure.ModelsBuilder { public sealed class UmbracoServices diff --git a/src/Umbraco.Infrastructure/Umbraco.Infrastructure.csproj b/src/Umbraco.Infrastructure/Umbraco.Infrastructure.csproj index f295805a55..7eac57df29 100644 --- a/src/Umbraco.Infrastructure/Umbraco.Infrastructure.csproj +++ b/src/Umbraco.Infrastructure/Umbraco.Infrastructure.csproj @@ -1,4 +1,4 @@ - + netstandard2.0 @@ -12,6 +12,7 @@ + diff --git a/src/Umbraco.ModelsBuilder.Embedded/ImplementPropertyTypeAttribute.cs b/src/Umbraco.ModelsBuilder.Embedded/ImplementPropertyTypeAttribute.cs deleted file mode 100644 index 6f52a7faa9..0000000000 --- a/src/Umbraco.ModelsBuilder.Embedded/ImplementPropertyTypeAttribute.cs +++ /dev/null @@ -1,19 +0,0 @@ -using System; - -namespace Umbraco.ModelsBuilder.Embedded -{ - /// - /// Indicates that a property implements a given property alias. - /// - /// And therefore it should not be generated. - [AttributeUsage(AttributeTargets.Property , AllowMultiple = false, Inherited = false)] - public class ImplementPropertyTypeAttribute : Attribute - { - public ImplementPropertyTypeAttribute(string alias) - { - Alias = alias; - } - - public string Alias { get; private set; } - } -} From 570d19f298a9e9ce296090fac683c0acf35ad232 Mon Sep 17 00:00:00 2001 From: Elitsa Marinovska Date: Thu, 18 Feb 2021 08:21:48 +0100 Subject: [PATCH 2/9] Migrating classes to Web.BackOffice proj --- .../ContentTypeModelValidator.cs | 4 ++-- .../ContentTypeModelValidatorBase.cs | 2 +- .../ModelsBuilder}/DashboardReport.cs | 3 ++- ...DisableModelsBuilderNotificationHandler.cs | 8 ++----- .../ModelsBuilder}/MediaTypeModelValidator.cs | 4 ++-- .../MemberTypeModelValidator.cs | 4 ++-- .../ModelsBuilderDashboardController.cs | 5 +++-- .../ModelsBuilder/UmbracoBuilderExtensions.cs | 21 +++++++++++++++++++ 8 files changed, 35 insertions(+), 16 deletions(-) rename src/{Umbraco.ModelsBuilder.Embedded/BackOffice => Umbraco.Web.BackOffice/ModelsBuilder}/ContentTypeModelValidator.cs (86%) rename src/{Umbraco.ModelsBuilder.Embedded/BackOffice => Umbraco.Web.BackOffice/ModelsBuilder}/ContentTypeModelValidatorBase.cs (98%) rename src/{Umbraco.ModelsBuilder.Embedded/BackOffice => Umbraco.Web.BackOffice/ModelsBuilder}/DashboardReport.cs (97%) rename src/{Umbraco.ModelsBuilder.Embedded => Umbraco.Web.BackOffice/ModelsBuilder}/DisableModelsBuilderNotificationHandler.cs (83%) rename src/{Umbraco.ModelsBuilder.Embedded/BackOffice => Umbraco.Web.BackOffice/ModelsBuilder}/MediaTypeModelValidator.cs (86%) rename src/{Umbraco.ModelsBuilder.Embedded/BackOffice => Umbraco.Web.BackOffice/ModelsBuilder}/MemberTypeModelValidator.cs (86%) rename src/{Umbraco.ModelsBuilder.Embedded/BackOffice => Umbraco.Web.BackOffice/ModelsBuilder}/ModelsBuilderDashboardController.cs (97%) create mode 100644 src/Umbraco.Web.BackOffice/ModelsBuilder/UmbracoBuilderExtensions.cs diff --git a/src/Umbraco.ModelsBuilder.Embedded/BackOffice/ContentTypeModelValidator.cs b/src/Umbraco.Web.BackOffice/ModelsBuilder/ContentTypeModelValidator.cs similarity index 86% rename from src/Umbraco.ModelsBuilder.Embedded/BackOffice/ContentTypeModelValidator.cs rename to src/Umbraco.Web.BackOffice/ModelsBuilder/ContentTypeModelValidator.cs index 023911d518..9906472d9a 100644 --- a/src/Umbraco.ModelsBuilder.Embedded/BackOffice/ContentTypeModelValidator.cs +++ b/src/Umbraco.Web.BackOffice/ModelsBuilder/ContentTypeModelValidator.cs @@ -1,8 +1,8 @@ -using Microsoft.Extensions.Options; +using Microsoft.Extensions.Options; using Umbraco.Core.Configuration.Models; using Umbraco.Web.Models.ContentEditing; -namespace Umbraco.ModelsBuilder.Embedded.BackOffice +namespace Umbraco.Web.BackOffice.ModelsBuilder { /// /// Used to validate the aliases for the content type when MB is enabled to ensure that diff --git a/src/Umbraco.ModelsBuilder.Embedded/BackOffice/ContentTypeModelValidatorBase.cs b/src/Umbraco.Web.BackOffice/ModelsBuilder/ContentTypeModelValidatorBase.cs similarity index 98% rename from src/Umbraco.ModelsBuilder.Embedded/BackOffice/ContentTypeModelValidatorBase.cs rename to src/Umbraco.Web.BackOffice/ModelsBuilder/ContentTypeModelValidatorBase.cs index c34f4516e4..754184079e 100644 --- a/src/Umbraco.ModelsBuilder.Embedded/BackOffice/ContentTypeModelValidatorBase.cs +++ b/src/Umbraco.Web.BackOffice/ModelsBuilder/ContentTypeModelValidatorBase.cs @@ -10,7 +10,7 @@ using Umbraco.Core.Models.PublishedContent; using Umbraco.Web.Editors; using Umbraco.Web.Models.ContentEditing; -namespace Umbraco.ModelsBuilder.Embedded.BackOffice +namespace Umbraco.Web.BackOffice.ModelsBuilder { public abstract class ContentTypeModelValidatorBase : EditorValidator where TModel : ContentTypeSave diff --git a/src/Umbraco.ModelsBuilder.Embedded/BackOffice/DashboardReport.cs b/src/Umbraco.Web.BackOffice/ModelsBuilder/DashboardReport.cs similarity index 97% rename from src/Umbraco.ModelsBuilder.Embedded/BackOffice/DashboardReport.cs rename to src/Umbraco.Web.BackOffice/ModelsBuilder/DashboardReport.cs index 6425673916..9aef059095 100644 --- a/src/Umbraco.ModelsBuilder.Embedded/BackOffice/DashboardReport.cs +++ b/src/Umbraco.Web.BackOffice/ModelsBuilder/DashboardReport.cs @@ -4,8 +4,9 @@ using Umbraco.Configuration; using Umbraco.Core; using Umbraco.Core.Configuration; using Umbraco.Core.Configuration.Models; +using Umbraco.Infrastructure.ModelsBuilder; -namespace Umbraco.ModelsBuilder.Embedded.BackOffice +namespace Umbraco.Web.BackOffice.ModelsBuilder { internal class DashboardReport { diff --git a/src/Umbraco.ModelsBuilder.Embedded/DisableModelsBuilderNotificationHandler.cs b/src/Umbraco.Web.BackOffice/ModelsBuilder/DisableModelsBuilderNotificationHandler.cs similarity index 83% rename from src/Umbraco.ModelsBuilder.Embedded/DisableModelsBuilderNotificationHandler.cs rename to src/Umbraco.Web.BackOffice/ModelsBuilder/DisableModelsBuilderNotificationHandler.cs index b455bbbf61..0cd0742708 100644 --- a/src/Umbraco.ModelsBuilder.Embedded/DisableModelsBuilderNotificationHandler.cs +++ b/src/Umbraco.Web.BackOffice/ModelsBuilder/DisableModelsBuilderNotificationHandler.cs @@ -1,9 +1,7 @@ using Umbraco.Core.Events; -using Umbraco.ModelsBuilder.Embedded.BackOffice; -using Umbraco.ModelsBuilder.Embedded.DependencyInjection; using Umbraco.Web.Features; -namespace Umbraco.ModelsBuilder.Embedded +namespace Umbraco.Web.BackOffice.ModelsBuilder { /// /// Used in conjunction with @@ -17,10 +15,8 @@ namespace Umbraco.ModelsBuilder.Embedded /// /// Handles the notification to disable MB controller features /// - public void Handle(UmbracoApplicationStarting notification) - { + public void Handle(UmbracoApplicationStarting notification) => // disable the embedded dashboard controller _features.Disabled.Controllers.Add(); - } } } diff --git a/src/Umbraco.ModelsBuilder.Embedded/BackOffice/MediaTypeModelValidator.cs b/src/Umbraco.Web.BackOffice/ModelsBuilder/MediaTypeModelValidator.cs similarity index 86% rename from src/Umbraco.ModelsBuilder.Embedded/BackOffice/MediaTypeModelValidator.cs rename to src/Umbraco.Web.BackOffice/ModelsBuilder/MediaTypeModelValidator.cs index 4ccdc1b362..f2b3a5344d 100644 --- a/src/Umbraco.ModelsBuilder.Embedded/BackOffice/MediaTypeModelValidator.cs +++ b/src/Umbraco.Web.BackOffice/ModelsBuilder/MediaTypeModelValidator.cs @@ -1,8 +1,8 @@ -using Microsoft.Extensions.Options; +using Microsoft.Extensions.Options; using Umbraco.Core.Configuration.Models; using Umbraco.Web.Models.ContentEditing; -namespace Umbraco.ModelsBuilder.Embedded.BackOffice +namespace Umbraco.Web.BackOffice.ModelsBuilder { /// /// Used to validate the aliases for the content type when MB is enabled to ensure that diff --git a/src/Umbraco.ModelsBuilder.Embedded/BackOffice/MemberTypeModelValidator.cs b/src/Umbraco.Web.BackOffice/ModelsBuilder/MemberTypeModelValidator.cs similarity index 86% rename from src/Umbraco.ModelsBuilder.Embedded/BackOffice/MemberTypeModelValidator.cs rename to src/Umbraco.Web.BackOffice/ModelsBuilder/MemberTypeModelValidator.cs index 9a735631ff..1c5a0e5741 100644 --- a/src/Umbraco.ModelsBuilder.Embedded/BackOffice/MemberTypeModelValidator.cs +++ b/src/Umbraco.Web.BackOffice/ModelsBuilder/MemberTypeModelValidator.cs @@ -1,8 +1,8 @@ -using Microsoft.Extensions.Options; +using Microsoft.Extensions.Options; using Umbraco.Core.Configuration.Models; using Umbraco.Web.Models.ContentEditing; -namespace Umbraco.ModelsBuilder.Embedded.BackOffice +namespace Umbraco.Web.BackOffice.ModelsBuilder { /// /// Used to validate the aliases for the content type when MB is enabled to ensure that diff --git a/src/Umbraco.ModelsBuilder.Embedded/BackOffice/ModelsBuilderDashboardController.cs b/src/Umbraco.Web.BackOffice/ModelsBuilder/ModelsBuilderDashboardController.cs similarity index 97% rename from src/Umbraco.ModelsBuilder.Embedded/BackOffice/ModelsBuilderDashboardController.cs rename to src/Umbraco.Web.BackOffice/ModelsBuilder/ModelsBuilderDashboardController.cs index f242854b3f..f913a43c37 100644 --- a/src/Umbraco.ModelsBuilder.Embedded/BackOffice/ModelsBuilderDashboardController.cs +++ b/src/Umbraco.Web.BackOffice/ModelsBuilder/ModelsBuilderDashboardController.cs @@ -6,11 +6,12 @@ using Microsoft.Extensions.Options; using Umbraco.Configuration; using Umbraco.Core.Configuration; using Umbraco.Core.Configuration.Models; -using Umbraco.ModelsBuilder.Embedded.Building; +using Umbraco.Infrastructure.ModelsBuilder; +using Umbraco.Infrastructure.ModelsBuilder.Building; using Umbraco.Web.BackOffice.Controllers; using Umbraco.Web.Common.Authorization; -namespace Umbraco.ModelsBuilder.Embedded.BackOffice +namespace Umbraco.Web.BackOffice.ModelsBuilder { /// /// API controller for use in the Umbraco back office with Angular resources diff --git a/src/Umbraco.Web.BackOffice/ModelsBuilder/UmbracoBuilderExtensions.cs b/src/Umbraco.Web.BackOffice/ModelsBuilder/UmbracoBuilderExtensions.cs new file mode 100644 index 0000000000..d5c89a9938 --- /dev/null +++ b/src/Umbraco.Web.BackOffice/ModelsBuilder/UmbracoBuilderExtensions.cs @@ -0,0 +1,21 @@ +using Microsoft.Extensions.DependencyInjection; +using Umbraco.Core.DependencyInjection; + +namespace Umbraco.Web.BackOffice.ModelsBuilder +{ + /// + /// Extension methods for for the common Umbraco functionality + /// + public static class UmbracoBuilderExtensions + { + /// + /// Can be called if using an external models builder to remove the embedded models builder controller features + /// + public static IUmbracoBuilder DisableModelsBuilderControllers(this IUmbracoBuilder builder) + { + builder.Services.AddSingleton(); + return builder; + } + + } +} From 74a67bf8bc5a0216f8b97198efce852c819cf27f Mon Sep 17 00:00:00 2001 From: Elitsa Marinovska Date: Thu, 18 Feb 2021 08:26:08 +0100 Subject: [PATCH 3/9] Migrating classes to Web.Common proj --- .../ModelsBuilder}/PureLiveModelFactory.cs | 7 +++---- .../ModelsBuilder}/RefreshingRazorViewEngine.cs | 2 +- .../ModelsBuilder}/UmbracoAssemblyLoadContext.cs | 2 +- 3 files changed, 5 insertions(+), 6 deletions(-) rename src/{Umbraco.ModelsBuilder.Embedded => Umbraco.Web.Common/ModelsBuilder}/PureLiveModelFactory.cs (99%) rename src/{Umbraco.ModelsBuilder.Embedded => Umbraco.Web.Common/ModelsBuilder}/RefreshingRazorViewEngine.cs (99%) rename src/{Umbraco.ModelsBuilder.Embedded => Umbraco.Web.Common/ModelsBuilder}/UmbracoAssemblyLoadContext.cs (94%) diff --git a/src/Umbraco.ModelsBuilder.Embedded/PureLiveModelFactory.cs b/src/Umbraco.Web.Common/ModelsBuilder/PureLiveModelFactory.cs similarity index 99% rename from src/Umbraco.ModelsBuilder.Embedded/PureLiveModelFactory.cs rename to src/Umbraco.Web.Common/ModelsBuilder/PureLiveModelFactory.cs index 41a0ac86f9..a3fc4cfdb6 100644 --- a/src/Umbraco.ModelsBuilder.Embedded/PureLiveModelFactory.cs +++ b/src/Umbraco.Web.Common/ModelsBuilder/PureLiveModelFactory.cs @@ -10,7 +10,6 @@ using System.Text; using System.Text.RegularExpressions; using System.Threading; using Microsoft.AspNetCore.Mvc.ApplicationParts; -using Microsoft.CodeAnalysis; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; using Umbraco.Core; @@ -19,10 +18,10 @@ using Umbraco.Core.Configuration.Models; using Umbraco.Core.Hosting; using Umbraco.Core.Logging; using Umbraco.Core.Models.PublishedContent; -using Umbraco.ModelsBuilder.Embedded.Building; -using File = System.IO.File; +using Umbraco.Infrastructure.ModelsBuilder; +using Umbraco.Infrastructure.ModelsBuilder.Building; -namespace Umbraco.ModelsBuilder.Embedded +namespace Umbraco.Web.Common.ModelsBuilder { internal class PureLiveModelFactory : ILivePublishedModelFactory, IRegisteredObject { diff --git a/src/Umbraco.ModelsBuilder.Embedded/RefreshingRazorViewEngine.cs b/src/Umbraco.Web.Common/ModelsBuilder/RefreshingRazorViewEngine.cs similarity index 99% rename from src/Umbraco.ModelsBuilder.Embedded/RefreshingRazorViewEngine.cs rename to src/Umbraco.Web.Common/ModelsBuilder/RefreshingRazorViewEngine.cs index ad82d1d7b3..82011ad31d 100644 --- a/src/Umbraco.ModelsBuilder.Embedded/RefreshingRazorViewEngine.cs +++ b/src/Umbraco.Web.Common/ModelsBuilder/RefreshingRazorViewEngine.cs @@ -60,7 +60,7 @@ using Microsoft.AspNetCore.Mvc.ViewEngines; * graph includes all of the above mentioned services, all the way up to the RazorProjectEngine and it's LazyMetadataReferenceFeature. */ -namespace Umbraco.ModelsBuilder.Embedded +namespace Umbraco.Web.Common.ModelsBuilder { /// /// Custom that wraps aspnetcore's default implementation diff --git a/src/Umbraco.ModelsBuilder.Embedded/UmbracoAssemblyLoadContext.cs b/src/Umbraco.Web.Common/ModelsBuilder/UmbracoAssemblyLoadContext.cs similarity index 94% rename from src/Umbraco.ModelsBuilder.Embedded/UmbracoAssemblyLoadContext.cs rename to src/Umbraco.Web.Common/ModelsBuilder/UmbracoAssemblyLoadContext.cs index d89714adbe..76a774889b 100644 --- a/src/Umbraco.ModelsBuilder.Embedded/UmbracoAssemblyLoadContext.cs +++ b/src/Umbraco.Web.Common/ModelsBuilder/UmbracoAssemblyLoadContext.cs @@ -1,7 +1,7 @@ using System.Reflection; using System.Runtime.Loader; -namespace Umbraco.ModelsBuilder.Embedded +namespace Umbraco.Web.Common.ModelsBuilder { internal class UmbracoAssemblyLoadContext : AssemblyLoadContext { From 4bccb995ecedb701e7072cf2d78c4421bc1637a5 Mon Sep 17 00:00:00 2001 From: Elitsa Marinovska Date: Thu, 18 Feb 2021 08:27:35 +0100 Subject: [PATCH 4/9] Introducing IModelsBuilderDashboardProvider --- .../ModelsBuilderDashboardProvider.cs | 20 +++++++++++++++++++ .../ModelsBuilder/UmbracoBuilderExtensions.cs | 2 ++ .../UmbracoBuilderExtensions.cs | 18 ++++------------- .../IModelsBuilderDashboardProvider.cs | 14 +++++++++++++ .../ModelsBuilderNotificationHandler.cs | 14 ++++++------- .../NoopModelsBuilderDashboardProvider.cs | 13 ++++++++++++ 6 files changed, 59 insertions(+), 22 deletions(-) create mode 100644 src/Umbraco.Web.BackOffice/ModelsBuilder/ModelsBuilderDashboardProvider.cs rename src/{Umbraco.ModelsBuilder.Embedded => Umbraco.Web.Common/ModelsBuilder}/DependencyInjection/UmbracoBuilderExtensions.cs (93%) create mode 100644 src/Umbraco.Web.Common/ModelsBuilder/IModelsBuilderDashboardProvider.cs rename src/{Umbraco.ModelsBuilder.Embedded => Umbraco.Web.Common/ModelsBuilder}/ModelsBuilderNotificationHandler.cs (94%) create mode 100644 src/Umbraco.Web.Common/ModelsBuilder/NoopModelsBuilderDashboardProvider.cs diff --git a/src/Umbraco.Web.BackOffice/ModelsBuilder/ModelsBuilderDashboardProvider.cs b/src/Umbraco.Web.BackOffice/ModelsBuilder/ModelsBuilderDashboardProvider.cs new file mode 100644 index 0000000000..f84982a04c --- /dev/null +++ b/src/Umbraco.Web.BackOffice/ModelsBuilder/ModelsBuilderDashboardProvider.cs @@ -0,0 +1,20 @@ +using Microsoft.AspNetCore.Routing; +using Umbraco.Extensions; +using Umbraco.Web.Common.ModelsBuilder; + +namespace Umbraco.Web.BackOffice.ModelsBuilder +{ + public class ModelsBuilderDashboardProvider: IModelsBuilderDashboardProvider + { + private readonly LinkGenerator _linkGenerator; + + public ModelsBuilderDashboardProvider(LinkGenerator linkGenerator) + { + _linkGenerator = linkGenerator; + } + + public string GetUrl() => + _linkGenerator.GetUmbracoApiServiceBaseUrl(controller => + controller.BuildModels()); + } +} diff --git a/src/Umbraco.Web.BackOffice/ModelsBuilder/UmbracoBuilderExtensions.cs b/src/Umbraco.Web.BackOffice/ModelsBuilder/UmbracoBuilderExtensions.cs index d5c89a9938..7c35d1b845 100644 --- a/src/Umbraco.Web.BackOffice/ModelsBuilder/UmbracoBuilderExtensions.cs +++ b/src/Umbraco.Web.BackOffice/ModelsBuilder/UmbracoBuilderExtensions.cs @@ -1,5 +1,6 @@ using Microsoft.Extensions.DependencyInjection; using Umbraco.Core.DependencyInjection; +using Umbraco.Web.Common.ModelsBuilder; namespace Umbraco.Web.BackOffice.ModelsBuilder { @@ -14,6 +15,7 @@ namespace Umbraco.Web.BackOffice.ModelsBuilder public static IUmbracoBuilder DisableModelsBuilderControllers(this IUmbracoBuilder builder) { builder.Services.AddSingleton(); + builder.Services.AddUnique(); return builder; } diff --git a/src/Umbraco.ModelsBuilder.Embedded/DependencyInjection/UmbracoBuilderExtensions.cs b/src/Umbraco.Web.Common/ModelsBuilder/DependencyInjection/UmbracoBuilderExtensions.cs similarity index 93% rename from src/Umbraco.ModelsBuilder.Embedded/DependencyInjection/UmbracoBuilderExtensions.cs rename to src/Umbraco.Web.Common/ModelsBuilder/DependencyInjection/UmbracoBuilderExtensions.cs index 852cde55fc..068518da64 100644 --- a/src/Umbraco.ModelsBuilder.Embedded/DependencyInjection/UmbracoBuilderExtensions.cs +++ b/src/Umbraco.Web.Common/ModelsBuilder/DependencyInjection/UmbracoBuilderExtensions.cs @@ -1,17 +1,14 @@ -using System; -using System.Collections.Generic; -using System.Linq; using Microsoft.AspNetCore.Mvc.Razor; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection.Extensions; using Microsoft.Extensions.Options; -using Umbraco.Core.Composing; using Umbraco.Core.Configuration; using Umbraco.Core.Configuration.Models; using Umbraco.Core.DependencyInjection; using Umbraco.Core.Events; using Umbraco.Core.Models.PublishedContent; -using Umbraco.ModelsBuilder.Embedded.Building; +using Umbraco.Infrastructure.ModelsBuilder; +using Umbraco.Infrastructure.ModelsBuilder.Building; using Umbraco.Web.Common.ModelBinders; using Umbraco.Web.WebAssets; @@ -73,7 +70,7 @@ using Umbraco.Web.WebAssets; * graph includes all of the above mentioned services, all the way up to the RazorProjectEngine and it's LazyMetadataReferenceFeature. */ -namespace Umbraco.ModelsBuilder.Embedded.DependencyInjection +namespace Umbraco.Web.Common.ModelsBuilder.DependencyInjection { /// /// Extension methods for for the common Umbraco functionality @@ -126,15 +123,8 @@ namespace Umbraco.ModelsBuilder.Embedded.DependencyInjection } }); - return builder; - } + builder.Services.AddUnique(); - /// - /// Can be called if using an external models builder to remove the embedded models builder controller features - /// - public static IUmbracoBuilder DisableModelsBuilderControllers(this IUmbracoBuilder builder) - { - builder.Services.AddSingleton(); return builder; } diff --git a/src/Umbraco.Web.Common/ModelsBuilder/IModelsBuilderDashboardProvider.cs b/src/Umbraco.Web.Common/ModelsBuilder/IModelsBuilderDashboardProvider.cs new file mode 100644 index 0000000000..47af1d2a94 --- /dev/null +++ b/src/Umbraco.Web.Common/ModelsBuilder/IModelsBuilderDashboardProvider.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Umbraco.Web.Routing; + +namespace Umbraco.Web.Common.ModelsBuilder +{ + public interface IModelsBuilderDashboardProvider + { + string GetUrl(); + } +} diff --git a/src/Umbraco.ModelsBuilder.Embedded/ModelsBuilderNotificationHandler.cs b/src/Umbraco.Web.Common/ModelsBuilder/ModelsBuilderNotificationHandler.cs similarity index 94% rename from src/Umbraco.ModelsBuilder.Embedded/ModelsBuilderNotificationHandler.cs rename to src/Umbraco.Web.Common/ModelsBuilder/ModelsBuilderNotificationHandler.cs index 0d6d1cc668..d612b9040c 100644 --- a/src/Umbraco.ModelsBuilder.Embedded/ModelsBuilderNotificationHandler.cs +++ b/src/Umbraco.Web.Common/ModelsBuilder/ModelsBuilderNotificationHandler.cs @@ -11,12 +11,11 @@ using Umbraco.Core.Models; using Umbraco.Core.Services; using Umbraco.Core.Services.Implement; using Umbraco.Core.Strings; -using Umbraco.Extensions; -using Umbraco.ModelsBuilder.Embedded.BackOffice; +using Umbraco.Infrastructure.ModelsBuilder; using Umbraco.Web.Common.ModelBinders; using Umbraco.Web.WebAssets; -namespace Umbraco.ModelsBuilder.Embedded +namespace Umbraco.Web.Common.ModelsBuilder { /// @@ -26,17 +25,16 @@ namespace Umbraco.ModelsBuilder.Embedded { private readonly ModelsBuilderSettings _config; private readonly IShortStringHelper _shortStringHelper; - private readonly LinkGenerator _linkGenerator; + private readonly IModelsBuilderDashboardProvider _modelsBuilderDashboardProvider; public ModelsBuilderNotificationHandler( IOptions config, IShortStringHelper shortStringHelper, - LinkGenerator linkGenerator) + IModelsBuilderDashboardProvider modelsBuilderDashboardProvider) { _config = config.Value; _shortStringHelper = shortStringHelper; - _shortStringHelper = shortStringHelper; - _linkGenerator = linkGenerator; + _modelsBuilderDashboardProvider = modelsBuilderDashboardProvider; } /// @@ -85,7 +83,7 @@ namespace Umbraco.ModelsBuilder.Embedded throw new ArgumentException("Invalid umbracoPlugins"); } - umbracoUrls["modelsBuilderBaseUrl"] = _linkGenerator.GetUmbracoApiServiceBaseUrl(controller => controller.BuildModels()); + umbracoUrls["modelsBuilderBaseUrl"] = _modelsBuilderDashboardProvider.GetUrl(); umbracoPlugins["modelsBuilder"] = GetModelsBuilderSettings(); } diff --git a/src/Umbraco.Web.Common/ModelsBuilder/NoopModelsBuilderDashboardProvider.cs b/src/Umbraco.Web.Common/ModelsBuilder/NoopModelsBuilderDashboardProvider.cs new file mode 100644 index 0000000000..7c5a0daabf --- /dev/null +++ b/src/Umbraco.Web.Common/ModelsBuilder/NoopModelsBuilderDashboardProvider.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Umbraco.Web.Common.ModelsBuilder +{ + public class NoopModelsBuilderDashboardProvider: IModelsBuilderDashboardProvider + { + public string GetUrl() => string.Empty; + } +} From a2cfd277ce32c64adc67628235bbda24b98ece1a Mon Sep 17 00:00:00 2001 From: Elitsa Marinovska Date: Thu, 18 Feb 2021 08:33:49 +0100 Subject: [PATCH 5/9] Cleanup --- build/NuSpecs/UmbracoCms.Web.nuspec | 3 -- build/build.ps1 | 2 +- .../DefaultUmbracoAssemblyProvider.cs | 3 +- src/Umbraco.Core/Properties/AssemblyInfo.cs | 1 - .../Umbraco.ModelsBuilder.Embedded.csproj | 37 ------------------- .../BuilderTests.cs | 6 +-- .../UmbracoApplicationTests.cs | 4 +- .../Umbraco.Tests.UnitTests.csproj | 1 - src/Umbraco.Web.UI.NetCore/Startup.cs | 1 - .../Umbraco.Web.UI.NetCore.csproj | 1 - .../UmbracoBuilderExtensions.cs | 2 +- .../Umbraco.Web.Website.csproj | 1 - src/Umbraco.Web/Properties/AssemblyInfo.cs | 1 - src/umbraco.sln | 24 +++++------- 14 files changed, 16 insertions(+), 71 deletions(-) delete mode 100644 src/Umbraco.ModelsBuilder.Embedded/Umbraco.ModelsBuilder.Embedded.csproj diff --git a/build/NuSpecs/UmbracoCms.Web.nuspec b/build/NuSpecs/UmbracoCms.Web.nuspec index 1d136daf95..92cb0f065e 100644 --- a/build/NuSpecs/UmbracoCms.Web.nuspec +++ b/build/NuSpecs/UmbracoCms.Web.nuspec @@ -43,18 +43,15 @@ - - - diff --git a/build/build.ps1 b/build/build.ps1 index 07d856d075..58d56fcdfe 100644 --- a/build/build.ps1 +++ b/build/build.ps1 @@ -478,7 +478,7 @@ { $this.VerifyNuGetConsistency( ("UmbracoCms", "UmbracoCms.Core", "UmbracoCms.Web"), - ("Umbraco.Core", "Umbraco.Infrastructure", "Umbraco.Web.UI.NetCore", "Umbraco.Examine.Lucene", "Umbraco.PublishedCache.NuCache", "Umbraco.Web.Common", "Umbraco.Web.Website", "Umbraco.Web.BackOffice", "Umbraco.ModelsBuilder.Embedded", "Umbraco.Persistence.SqlCe")) + ("Umbraco.Core", "Umbraco.Infrastructure", "Umbraco.Web.UI.NetCore", "Umbraco.Examine.Lucene", "Umbraco.PublishedCache.NuCache", "Umbraco.Web.Common", "Umbraco.Web.Website", "Umbraco.Web.BackOffice", "Umbraco.Persistence.SqlCe")) if ($this.OnError()) { return } }) diff --git a/src/Umbraco.Core/Composing/DefaultUmbracoAssemblyProvider.cs b/src/Umbraco.Core/Composing/DefaultUmbracoAssemblyProvider.cs index 3e0ea9c971..98c0d8674f 100644 --- a/src/Umbraco.Core/Composing/DefaultUmbracoAssemblyProvider.cs +++ b/src/Umbraco.Core/Composing/DefaultUmbracoAssemblyProvider.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Reflection; @@ -19,7 +19,6 @@ namespace Umbraco.Core.Composing "Umbraco.Core", "Umbraco.Infrastructure", "Umbraco.PublishedCache.NuCache", - "Umbraco.ModelsBuilder.Embedded", "Umbraco.Examine.Lucene", "Umbraco.Web.Common", "Umbraco.Web.BackOffice", diff --git a/src/Umbraco.Core/Properties/AssemblyInfo.cs b/src/Umbraco.Core/Properties/AssemblyInfo.cs index ede9e49a7d..9f49dade80 100644 --- a/src/Umbraco.Core/Properties/AssemblyInfo.cs +++ b/src/Umbraco.Core/Properties/AssemblyInfo.cs @@ -8,7 +8,6 @@ using System.Runtime.InteropServices; // Umbraco Cms [assembly: InternalsVisibleTo("Umbraco.Web")] [assembly: InternalsVisibleTo("Umbraco.Web.UI")] -[assembly: InternalsVisibleTo("Umbraco.ModelsBuilder.Embedded")] [assembly: InternalsVisibleTo("Umbraco.Tests")] [assembly: InternalsVisibleTo("Umbraco.Tests.Benchmarks")] diff --git a/src/Umbraco.ModelsBuilder.Embedded/Umbraco.ModelsBuilder.Embedded.csproj b/src/Umbraco.ModelsBuilder.Embedded/Umbraco.ModelsBuilder.Embedded.csproj deleted file mode 100644 index 3d24bd879a..0000000000 --- a/src/Umbraco.ModelsBuilder.Embedded/Umbraco.ModelsBuilder.Embedded.csproj +++ /dev/null @@ -1,37 +0,0 @@ - - - - net5.0 - Library - - - - bin\Release\Umbraco.ModelsBuilder.Embedded.xml - - - - - - - - - - - - - - - - <_Parameter1>Umbraco.Tests - - - <_Parameter1>Umbraco.Tests.UnitTests - - - <_Parameter1>Umbraco.Tests.Benchmarks - - - <_Parameter1>Umbraco.Tests.Integration - - - diff --git a/src/Umbraco.Tests.UnitTests/Umbraco.ModelsBuilder.Embedded/BuilderTests.cs b/src/Umbraco.Tests.UnitTests/Umbraco.ModelsBuilder.Embedded/BuilderTests.cs index af77d0e570..ad56863d7f 100644 --- a/src/Umbraco.Tests.UnitTests/Umbraco.ModelsBuilder.Embedded/BuilderTests.cs +++ b/src/Umbraco.Tests.UnitTests/Umbraco.ModelsBuilder.Embedded/BuilderTests.cs @@ -9,8 +9,8 @@ using NUnit.Framework; using Semver; using Umbraco.Core.Configuration.Models; using Umbraco.Core.Models.PublishedContent; -using Umbraco.ModelsBuilder.Embedded; -using Umbraco.ModelsBuilder.Embedded.Building; +using Umbraco.Infrastructure.ModelsBuilder; +using Umbraco.Infrastructure.ModelsBuilder.Building; namespace Umbraco.Tests.UnitTests.Umbraco.ModelsBuilder.Embedded { @@ -61,7 +61,6 @@ using System; using System.Linq.Expressions; using Umbraco.Core.Models.PublishedContent; using Umbraco.Web.PublishedCache; -using Umbraco.ModelsBuilder.Embedded; using Umbraco.Core; namespace Umbraco.Web.PublishedModels @@ -166,7 +165,6 @@ using System; using System.Linq.Expressions; using Umbraco.Core.Models.PublishedContent; using Umbraco.Web.PublishedCache; -using Umbraco.ModelsBuilder.Embedded; using Umbraco.Core; namespace Umbraco.Web.PublishedModels diff --git a/src/Umbraco.Tests.UnitTests/Umbraco.ModelsBuilder.Embedded/UmbracoApplicationTests.cs b/src/Umbraco.Tests.UnitTests/Umbraco.ModelsBuilder.Embedded/UmbracoApplicationTests.cs index 0c75318c87..beef5079c4 100644 --- a/src/Umbraco.Tests.UnitTests/Umbraco.ModelsBuilder.Embedded/UmbracoApplicationTests.cs +++ b/src/Umbraco.Tests.UnitTests/Umbraco.ModelsBuilder.Embedded/UmbracoApplicationTests.cs @@ -4,8 +4,8 @@ using System; using System.Collections.Generic; using NUnit.Framework; -using Umbraco.ModelsBuilder.Embedded; -using Umbraco.ModelsBuilder.Embedded.Building; +using Umbraco.Infrastructure.ModelsBuilder; +using Umbraco.Infrastructure.ModelsBuilder.Building; namespace Umbraco.Tests.UnitTests.Umbraco.ModelsBuilder.Embedded { diff --git a/src/Umbraco.Tests.UnitTests/Umbraco.Tests.UnitTests.csproj b/src/Umbraco.Tests.UnitTests/Umbraco.Tests.UnitTests.csproj index 25b0c97a1b..a6602c7be3 100644 --- a/src/Umbraco.Tests.UnitTests/Umbraco.Tests.UnitTests.csproj +++ b/src/Umbraco.Tests.UnitTests/Umbraco.Tests.UnitTests.csproj @@ -7,7 +7,6 @@ - diff --git a/src/Umbraco.Web.UI.NetCore/Startup.cs b/src/Umbraco.Web.UI.NetCore/Startup.cs index c3d3d18451..0c9971816b 100644 --- a/src/Umbraco.Web.UI.NetCore/Startup.cs +++ b/src/Umbraco.Web.UI.NetCore/Startup.cs @@ -6,7 +6,6 @@ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using Umbraco.Core.DependencyInjection; using Umbraco.Extensions; -using Umbraco.ModelsBuilder.Embedded.DependencyInjection; using Umbraco.Web.BackOffice.DependencyInjection; using Umbraco.Web.BackOffice.Security; using Umbraco.Web.Common.DependencyInjection; diff --git a/src/Umbraco.Web.UI.NetCore/Umbraco.Web.UI.NetCore.csproj b/src/Umbraco.Web.UI.NetCore/Umbraco.Web.UI.NetCore.csproj index b238b3598e..31a9528eca 100644 --- a/src/Umbraco.Web.UI.NetCore/Umbraco.Web.UI.NetCore.csproj +++ b/src/Umbraco.Web.UI.NetCore/Umbraco.Web.UI.NetCore.csproj @@ -11,7 +11,6 @@ true - diff --git a/src/Umbraco.Web.Website/DependencyInjection/UmbracoBuilderExtensions.cs b/src/Umbraco.Web.Website/DependencyInjection/UmbracoBuilderExtensions.cs index b1d21e87b9..320a99e614 100644 --- a/src/Umbraco.Web.Website/DependencyInjection/UmbracoBuilderExtensions.cs +++ b/src/Umbraco.Web.Website/DependencyInjection/UmbracoBuilderExtensions.cs @@ -4,7 +4,7 @@ using Microsoft.Extensions.Options; using Umbraco.Core.DependencyInjection; using Umbraco.Extensions; using Umbraco.Infrastructure.DependencyInjection; -using Umbraco.ModelsBuilder.Embedded.DependencyInjection; +using Umbraco.Web.Common.ModelsBuilder.DependencyInjection; using Umbraco.Web.Common.Routing; using Umbraco.Web.Website.Collections; using Umbraco.Web.Website.Controllers; diff --git a/src/Umbraco.Web.Website/Umbraco.Web.Website.csproj b/src/Umbraco.Web.Website/Umbraco.Web.Website.csproj index 4e898f349e..85de8d6683 100644 --- a/src/Umbraco.Web.Website/Umbraco.Web.Website.csproj +++ b/src/Umbraco.Web.Website/Umbraco.Web.Website.csproj @@ -20,7 +20,6 @@ - diff --git a/src/Umbraco.Web/Properties/AssemblyInfo.cs b/src/Umbraco.Web/Properties/AssemblyInfo.cs index e348aceaee..0ef8fcf488 100644 --- a/src/Umbraco.Web/Properties/AssemblyInfo.cs +++ b/src/Umbraco.Web/Properties/AssemblyInfo.cs @@ -12,7 +12,6 @@ using System.Runtime.InteropServices; // Umbraco Cms [assembly: InternalsVisibleTo("Umbraco.Web.UI")] -[assembly: InternalsVisibleTo("Umbraco.ModelsBuilder.Embedded")] [assembly: InternalsVisibleTo("Umbraco.Tests")] [assembly: InternalsVisibleTo("Umbraco.Tests.Benchmarks")] diff --git a/src/umbraco.sln b/src/umbraco.sln index b7f54cead9..840c7213e6 100644 --- a/src/umbraco.sln +++ b/src/umbraco.sln @@ -8,15 +8,15 @@ EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Build", "Build", "{2849E9D4-3B4E-40A3-A309-F3CB4F0E125F}" ProjectSection(SolutionItems) = preProject ..\linting\.editorconfig = ..\linting\.editorconfig + ..\build\azure-pipelines.yml = ..\build\azure-pipelines.yml ..\build\build-bootstrap.ps1 = ..\build\build-bootstrap.ps1 ..\build\build.ps1 = ..\build\build.ps1 - ..\NuGet.Config = ..\NuGet.Config - ..\linting\stylecop.json = ..\linting\stylecop.json ..\linting\codeanalysis.ruleset = ..\linting\codeanalysis.ruleset ..\linting\codeanalysis.tests.ruleset = ..\linting\codeanalysis.tests.ruleset ..\Directory.Build.props = ..\Directory.Build.props ..\Directory.Build.targets = ..\Directory.Build.targets - ..\build\azure-pipelines.yml = ..\build\azure-pipelines.yml + ..\NuGet.Config = ..\NuGet.Config + ..\linting\stylecop.json = ..\linting\stylecop.json EndProjectSection EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Docs", "Docs", "{FD962632-184C-4005-A5F3-E705D92FC645}" @@ -39,8 +39,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "NuSpecs", "NuSpecs", "{227C ProjectSection(SolutionItems) = preProject ..\build\NuSpecs\UmbracoCms.Core.nuspec = ..\build\NuSpecs\UmbracoCms.Core.nuspec ..\build\NuSpecs\UmbracoCms.nuspec = ..\build\NuSpecs\UmbracoCms.nuspec - ..\build\NuSpecs\UmbracoCms.Web.nuspec = ..\build\NuSpecs\UmbracoCms.Web.nuspec ..\build\NuSpecs\UmbracoCms.SqlCe.nuspec = ..\build\NuSpecs\UmbracoCms.SqlCe.nuspec + ..\build\NuSpecs\UmbracoCms.Web.nuspec = ..\build\NuSpecs\UmbracoCms.Web.nuspec EndProjectSection EndProject Project("{E24C65DC-7377-472B-9ABA-BC803B73C61A}") = "Umbraco.Web.UI.Client", "http://localhost:3961", "{3819A550-DCEC-4153-91B4-8BA9F7F0B9B4}" @@ -90,11 +90,11 @@ Project("{E24C65DC-7377-472B-9ABA-BC803B73C61A}") = "Umbraco.Tests.AcceptanceTes Release.AspNetCompiler.ForceOverwrite = "true" Release.AspNetCompiler.FixedNames = "false" Release.AspNetCompiler.Debug = "False" + SlnRelativePath = "Umbraco.Tests.AcceptanceTest\" DefaultWebSiteLanguage = "Visual C#" StartServerOnDebug = "false" VWDPort = "58896" VWDPort = "62926" - SlnRelativePath = "Umbraco.Tests.AcceptanceTest\" EndProjectSection EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Umbraco.Web", "Umbraco.Web\Umbraco.Web.csproj", "{651E1350-91B6-44B7-BD60-7207006D7003}" @@ -113,10 +113,10 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tools", "tools", "{E3F9F378 EndProjectSection EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "build", "build", "{5B03EF4E-E0AC-4905-861B-8C3EC1A0D458}" -ProjectSection(SolutionItems) = preProject - ..\build\NuSpecs\build\Umbraco.Cms.props = ..\build\NuSpecs\build\Umbraco.Cms.props - ..\build\NuSpecs\build\Umbraco.Cms.targets = ..\build\NuSpecs\build\Umbraco.Cms.targets -EndProjectSection + ProjectSection(SolutionItems) = preProject + ..\build\NuSpecs\build\Umbraco.Cms.props = ..\build\NuSpecs\build\Umbraco.Cms.props + ..\build\NuSpecs\build\Umbraco.Cms.targets = ..\build\NuSpecs\build\Umbraco.Cms.targets + EndProjectSection EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "DocTools", "DocTools", "{53594E5B-64A2-4545-8367-E3627D266AE8}" ProjectSection(SolutionItems) = preProject @@ -139,8 +139,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "IssueTemplates", "IssueTemp EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Umbraco.Core", "Umbraco.Core\Umbraco.Core.csproj", "{29AA69D9-B597-4395-8D42-43B1263C240A}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Umbraco.ModelsBuilder.Embedded", "Umbraco.ModelsBuilder.Embedded\Umbraco.ModelsBuilder.Embedded.csproj", "{52AC0BA8-A60E-4E36-897B-E8B97A54ED1C}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Umbraco.Infrastructure", "Umbraco.Infrastructure\Umbraco.Infrastructure.csproj", "{3AE7BF57-966B-45A5-910A-954D7C554441}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Umbraco.Persistence.SqlCe", "Umbraco.Persistence.SqlCe\Umbraco.Persistence.SqlCe.csproj", "{33085570-9BF2-4065-A9B0-A29D920D13BA}" @@ -195,10 +193,6 @@ Global {29AA69D9-B597-4395-8D42-43B1263C240A}.Debug|Any CPU.Build.0 = Debug|Any CPU {29AA69D9-B597-4395-8D42-43B1263C240A}.Release|Any CPU.ActiveCfg = Release|Any CPU {29AA69D9-B597-4395-8D42-43B1263C240A}.Release|Any CPU.Build.0 = Release|Any CPU - {52AC0BA8-A60E-4E36-897B-E8B97A54ED1C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {52AC0BA8-A60E-4E36-897B-E8B97A54ED1C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {52AC0BA8-A60E-4E36-897B-E8B97A54ED1C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {52AC0BA8-A60E-4E36-897B-E8B97A54ED1C}.Release|Any CPU.Build.0 = Release|Any CPU {3AE7BF57-966B-45A5-910A-954D7C554441}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {3AE7BF57-966B-45A5-910A-954D7C554441}.Debug|Any CPU.Build.0 = Debug|Any CPU {3AE7BF57-966B-45A5-910A-954D7C554441}.Release|Any CPU.ActiveCfg = Release|Any CPU From c453719c2d9b069eb6e6b1d8fab050bd31f7f496 Mon Sep 17 00:00:00 2001 From: Bjarke Berg Date: Mon, 22 Feb 2021 09:49:24 +0100 Subject: [PATCH 6/9] Fix the register of the IModelsBuilderDashboardProvider --- .../UmbracoBuilderExtensions.cs | 4 +++- .../ModelsBuilderDashboardProvider.cs | 3 +-- .../ModelsBuilder/UmbracoBuilderExtensions.cs | 14 ++++++++++---- .../UmbracoBuilderDependencyInjectionExtensions.cs | 7 ++++++- .../NoopModelsBuilderDashboardProvider.cs | 6 ------ 5 files changed, 20 insertions(+), 14 deletions(-) diff --git a/src/Umbraco.Web.BackOffice/DependencyInjection/UmbracoBuilderExtensions.cs b/src/Umbraco.Web.BackOffice/DependencyInjection/UmbracoBuilderExtensions.cs index 4baf6a29f5..30cc0ae67b 100644 --- a/src/Umbraco.Web.BackOffice/DependencyInjection/UmbracoBuilderExtensions.cs +++ b/src/Umbraco.Web.BackOffice/DependencyInjection/UmbracoBuilderExtensions.cs @@ -11,6 +11,7 @@ using Umbraco.Cms.Core.Services; using Umbraco.Cms.Web.BackOffice.Controllers; using Umbraco.Cms.Web.BackOffice.Filters; using Umbraco.Cms.Web.BackOffice.Middleware; +using Umbraco.Cms.Web.BackOffice.ModelsBuilder; using Umbraco.Cms.Web.BackOffice.Routing; using Umbraco.Cms.Web.BackOffice.Security; using Umbraco.Cms.Web.BackOffice.Services; @@ -43,7 +44,8 @@ namespace Umbraco.Extensions .AddWebServer() .AddPreviewSupport() .AddHostedServices() - .AddDistributedCache(); + .AddDistributedCache() + .AddModelsBuilderDashboard(); /// /// Adds Umbraco back office authentication requirements diff --git a/src/Umbraco.Web.BackOffice/ModelsBuilder/ModelsBuilderDashboardProvider.cs b/src/Umbraco.Web.BackOffice/ModelsBuilder/ModelsBuilderDashboardProvider.cs index 377cf0bc4c..6d1a7a13fc 100644 --- a/src/Umbraco.Web.BackOffice/ModelsBuilder/ModelsBuilderDashboardProvider.cs +++ b/src/Umbraco.Web.BackOffice/ModelsBuilder/ModelsBuilderDashboardProvider.cs @@ -1,9 +1,8 @@ using Microsoft.AspNetCore.Routing; -using Umbraco.Cms.Web.BackOffice.ModelsBuilder; using Umbraco.Extensions; using Umbraco.Web.Common.ModelsBuilder; -namespace Umbraco.Web.BackOffice.ModelsBuilder +namespace Umbraco.Cms.Web.BackOffice.ModelsBuilder { public class ModelsBuilderDashboardProvider: IModelsBuilderDashboardProvider { diff --git a/src/Umbraco.Web.BackOffice/ModelsBuilder/UmbracoBuilderExtensions.cs b/src/Umbraco.Web.BackOffice/ModelsBuilder/UmbracoBuilderExtensions.cs index 749dba2397..4e372d8e62 100644 --- a/src/Umbraco.Web.BackOffice/ModelsBuilder/UmbracoBuilderExtensions.cs +++ b/src/Umbraco.Web.BackOffice/ModelsBuilder/UmbracoBuilderExtensions.cs @@ -1,25 +1,31 @@ using Microsoft.Extensions.DependencyInjection; using Umbraco.Cms.Core.DependencyInjection; -using Umbraco.Cms.Web.BackOffice.ModelsBuilder; using Umbraco.Extensions; using Umbraco.Web.Common.ModelsBuilder; -namespace Umbraco.Web.BackOffice.ModelsBuilder +namespace Umbraco.Cms.Web.BackOffice.ModelsBuilder { /// /// Extension methods for for the common Umbraco functionality /// public static class UmbracoBuilderExtensions { + /// + /// Adds the ModelsBuilder dashboard. + /// + public static IUmbracoBuilder AddModelsBuilderDashboard(this IUmbracoBuilder builder) + { + builder.Services.AddUnique(); + return builder; + } + /// /// Can be called if using an external models builder to remove the embedded models builder controller features /// public static IUmbracoBuilder DisableModelsBuilderControllers(this IUmbracoBuilder builder) { builder.Services.AddSingleton(); - builder.Services.AddUnique(); return builder; } - } } diff --git a/src/Umbraco.Web.Common/ModelsBuilder/DependencyInjection/UmbracoBuilderDependencyInjectionExtensions.cs b/src/Umbraco.Web.Common/ModelsBuilder/DependencyInjection/UmbracoBuilderDependencyInjectionExtensions.cs index 44e7d8debe..7cbbf3c9c7 100644 --- a/src/Umbraco.Web.Common/ModelsBuilder/DependencyInjection/UmbracoBuilderDependencyInjectionExtensions.cs +++ b/src/Umbraco.Web.Common/ModelsBuilder/DependencyInjection/UmbracoBuilderDependencyInjectionExtensions.cs @@ -1,3 +1,4 @@ +using System.Linq; using Microsoft.AspNetCore.Mvc.Razor; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection.Extensions; @@ -125,7 +126,11 @@ namespace Umbraco.Extensions } }); - builder.Services.AddUnique(); + + if (!builder.Services.Any(x=>x.ServiceType == typeof(IModelsBuilderDashboardProvider))) + { + builder.Services.AddUnique(); + } return builder; } diff --git a/src/Umbraco.Web.Common/ModelsBuilder/NoopModelsBuilderDashboardProvider.cs b/src/Umbraco.Web.Common/ModelsBuilder/NoopModelsBuilderDashboardProvider.cs index 7c5a0daabf..bc9e9d32a7 100644 --- a/src/Umbraco.Web.Common/ModelsBuilder/NoopModelsBuilderDashboardProvider.cs +++ b/src/Umbraco.Web.Common/ModelsBuilder/NoopModelsBuilderDashboardProvider.cs @@ -1,9 +1,3 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - namespace Umbraco.Web.Common.ModelsBuilder { public class NoopModelsBuilderDashboardProvider: IModelsBuilderDashboardProvider From 890cd45677f2ae14dbe6eced093eaf38834d4ab5 Mon Sep 17 00:00:00 2001 From: Bjarke Berg Date: Mon, 22 Feb 2021 10:09:20 +0100 Subject: [PATCH 7/9] Fix namespace --- src/Umbraco.Core/IO/ViewHelper.cs | 2 +- .../Services/Implement/FileService.cs | 2 +- src/Umbraco.TestData/LoadTestController.cs | 12 +- .../cypress/integration/Content/content.ts | 5 +- .../integration/Settings/partialsViews.ts | 6 +- .../cypress/integration/Settings/templates.ts | 6 +- .../Repositories/TemplateRepositoryTest.cs | 6 +- .../Importing/StandardMvc-Package.xml | 166 +++++++++--------- .../Umbraco.Core/Templates/ViewHelperTests.cs | 14 +- .../Views/UmbracoViewPageTests.cs | 2 +- .../Macros/PartialViewMacroPage.cs | 2 +- .../Views/UmbracoViewPage.cs | 2 +- .../Views/Partials/blocklist/default.cshtml | 2 +- .../Partials/grid/bootstrap3-fluid.cshtml | 2 +- .../Views/Partials/grid/bootstrap3.cshtml | 2 +- .../Views/Partials/grid/editors/embed.cshtml | 3 +- .../Views/Partials/grid/editors/macro.cshtml | 2 +- 17 files changed, 117 insertions(+), 119 deletions(-) diff --git a/src/Umbraco.Core/IO/ViewHelper.cs b/src/Umbraco.Core/IO/ViewHelper.cs index 9a7016b6be..258c4a7f64 100644 --- a/src/Umbraco.Core/IO/ViewHelper.cs +++ b/src/Umbraco.Core/IO/ViewHelper.cs @@ -71,7 +71,7 @@ namespace Umbraco.Cms.Core.IO // @inherits Umbraco.Web.Mvc.UmbracoViewPage // @inherits Umbraco.Web.Mvc.UmbracoViewPage content.AppendLine("@using Umbraco.Cms.Web.Common.PublishedModels;"); - content.Append("@inherits Umbraco.Cms.Web.Common.AspNetCore.UmbracoViewPage"); + content.Append("@inherits Umbraco.Cms.Web.Common.Views.UmbracoViewPage"); if (modelClassName.IsNullOrWhiteSpace() == false) { content.Append("<"); diff --git a/src/Umbraco.Infrastructure/Services/Implement/FileService.cs b/src/Umbraco.Infrastructure/Services/Implement/FileService.cs index acab6caae4..ff42a35a25 100644 --- a/src/Umbraco.Infrastructure/Services/Implement/FileService.cs +++ b/src/Umbraco.Infrastructure/Services/Implement/FileService.cs @@ -33,7 +33,7 @@ namespace Umbraco.Core.Services.Implement private readonly GlobalSettings _globalSettings; private readonly IHostingEnvironment _hostingEnvironment; - private const string PartialViewHeader = "@inherits Umbraco.Web.Common.Views.UmbracoViewPage"; + private const string PartialViewHeader = "@inherits Umbraco.Cms.Web.Common.Views.UmbracoViewPage"; private const string PartialViewMacroHeader = "@inherits Umbraco.Web.Common.Macros.PartialViewMacroPage"; public FileService(IScopeProvider uowProvider, ILoggerFactory loggerFactory, IEventMessagesFactory eventMessagesFactory, diff --git a/src/Umbraco.TestData/LoadTestController.cs b/src/Umbraco.TestData/LoadTestController.cs index 6cbe31d70e..817b7a1d76 100644 --- a/src/Umbraco.TestData/LoadTestController.cs +++ b/src/Umbraco.TestData/LoadTestController.cs @@ -1,14 +1,12 @@ using System; -using System.Threading; +using System.Configuration; +using System.Diagnostics; using System.Linq; -using System.Web.Mvc; -using Umbraco.Core.Services; -using Umbraco.Core.Models; +using System.Threading; using System.Web; using System.Web.Hosting; +using System.Web.Mvc; using System.Web.Routing; -using System.Diagnostics; -using System.Configuration; using Microsoft.Extensions.DependencyInjection; using Umbraco.Cms.Core.Composing; using Umbraco.Cms.Core.DependencyInjection; @@ -63,7 +61,7 @@ namespace Umbraco.TestData "; private static readonly string _containerTemplateText = @" -@inherits Umbraco.Web.Mvc.UmbracoViewPage +@inherits Umbraco.Cms.Web.Common.Views.UmbracoViewPage @{ Layout = null; var container = Umbraco.ContentAtRoot().OfTypes(""" + _containerAlias + @""").FirstOrDefault(); diff --git a/src/Umbraco.Tests.AcceptanceTest/cypress/integration/Content/content.ts b/src/Umbraco.Tests.AcceptanceTest/cypress/integration/Content/content.ts index 22f1f883d0..c862708bbe 100644 --- a/src/Umbraco.Tests.AcceptanceTest/cypress/integration/Content/content.ts +++ b/src/Umbraco.Tests.AcceptanceTest/cypress/integration/Content/content.ts @@ -1,5 +1,6 @@ /// -import { DocumentTypeBuilder, ContentBuilder, AliasHelper } from 'umbraco-cypress-testhelpers'; +import {AliasHelper, ContentBuilder, DocumentTypeBuilder} from 'umbraco-cypress-testhelpers'; + context('Content', () => { beforeEach(() => { @@ -558,7 +559,7 @@ context('Content', () => { cy.saveDocumentType(pickerDocType); // Edit it the template to allow us to verify the rendered view. - cy.editTemplate(pickerDocTypeName, `@inherits Umbraco.Web.Mvc.UmbracoViewPage + cy.editTemplate(pickerDocTypeName, `@inherits Umbraco.Cms.Web.Common.Views.UmbracoViewPage @using ContentModels = Umbraco.Web.PublishedModels; @{ Layout = null; diff --git a/src/Umbraco.Tests.AcceptanceTest/cypress/integration/Settings/partialsViews.ts b/src/Umbraco.Tests.AcceptanceTest/cypress/integration/Settings/partialsViews.ts index 068338f8fa..f664123d3b 100644 --- a/src/Umbraco.Tests.AcceptanceTest/cypress/integration/Settings/partialsViews.ts +++ b/src/Umbraco.Tests.AcceptanceTest/cypress/integration/Settings/partialsViews.ts @@ -1,5 +1,5 @@ /// -import { PartialViewBuilder } from "umbraco-cypress-testhelpers"; +import {PartialViewBuilder} from "umbraco-cypress-testhelpers"; context('Partial Views', () => { @@ -95,7 +95,7 @@ context('Partial Views', () => { // Build and save partial view const partialView = new PartialViewBuilder() .withName(name) - .withContent("@inherits Umbraco.Web.Mvc.UmbracoViewPage") + .withContent("@inherits UUmbraco.Cms.Web.Common.Views.UmbracoViewPage") .build(); cy.savePartialView(partialView); @@ -123,7 +123,7 @@ context('Partial Views', () => { const partialView = new PartialViewBuilder() .withName(name) - .withContent("@inherits Umbraco.Web.Mvc.UmbracoViewPage\n") + .withContent("@inherits Umbraco.Cms.Web.Common.Views.UmbracoViewPage\n") .build(); cy.savePartialView(partialView); diff --git a/src/Umbraco.Tests.AcceptanceTest/cypress/integration/Settings/templates.ts b/src/Umbraco.Tests.AcceptanceTest/cypress/integration/Settings/templates.ts index c586384af7..3122c3ebf7 100644 --- a/src/Umbraco.Tests.AcceptanceTest/cypress/integration/Settings/templates.ts +++ b/src/Umbraco.Tests.AcceptanceTest/cypress/integration/Settings/templates.ts @@ -1,5 +1,5 @@ /// -import { TemplateBuilder } from 'umbraco-cypress-testhelpers'; +import {TemplateBuilder} from 'umbraco-cypress-testhelpers'; context('Templates', () => { @@ -54,7 +54,7 @@ context('Templates', () => { const template = new TemplateBuilder() .withName(name) - .withContent('@inherits Umbraco.Web.Mvc.UmbracoViewPage\n') + .withContent('@inherits Umbraco.Cms.Web.Common.Views.UmbracoViewPage\n') .build(); cy.saveTemplate(template); @@ -87,7 +87,7 @@ context('Templates', () => { const template = new TemplateBuilder() .withName(name) - .withContent('@inherits Umbraco.Web.Mvc.UmbracoViewPage\n') + .withContent('@inherits Umbraco.Cms.Web.Common.Views.UmbracoViewPage\n') .build(); cy.saveTemplate(template); diff --git a/src/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/TemplateRepositoryTest.cs b/src/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/TemplateRepositoryTest.cs index e704b82bdd..b323abf472 100644 --- a/src/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/TemplateRepositoryTest.cs +++ b/src/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/TemplateRepositoryTest.cs @@ -8,6 +8,7 @@ using System.Linq; using System.Text; using Microsoft.Extensions.Logging; using NUnit.Framework; +using Umbraco.Cms.Core; using Umbraco.Cms.Core.Cache; using Umbraco.Cms.Core.Configuration.Models; using Umbraco.Cms.Core.Hosting; @@ -24,7 +25,6 @@ using Umbraco.Core.Persistence.Repositories.Implement; using Umbraco.Core.Scoping; using Umbraco.Core.Serialization; using Umbraco.Extensions; -using Constants = Umbraco.Cms.Core.Constants; namespace Umbraco.Cms.Tests.Integration.Umbraco.Infrastructure.Persistence.Repositories { @@ -95,7 +95,7 @@ namespace Umbraco.Cms.Tests.Integration.Umbraco.Infrastructure.Persistence.Repos Assert.That(repository.Get("test"), Is.Not.Null); Assert.That(FileSystems.MvcViewsFileSystem.FileExists("test.cshtml"), Is.True); Assert.AreEqual( - @"@usingUmbraco.Cms.Web.Common.PublishedModels;@inheritsUmbraco.Cms.Web.Common.AspNetCore.UmbracoViewPage@{Layout=null;}".StripWhitespace(), + @"@usingUmbraco.Cms.Web.Common.PublishedModels;@inheritsUmbraco.Cms.Web.Common.Views.UmbracoViewPage@{Layout=null;}".StripWhitespace(), template.Content.StripWhitespace()); } } @@ -123,7 +123,7 @@ namespace Umbraco.Cms.Tests.Integration.Umbraco.Infrastructure.Persistence.Repos Assert.That(repository.Get("test2"), Is.Not.Null); Assert.That(FileSystems.MvcViewsFileSystem.FileExists("test2.cshtml"), Is.True); Assert.AreEqual( - "@usingUmbraco.Cms.Web.Common.PublishedModels;@inherits Umbraco.Cms.Web.Common.AspNetCore.UmbracoViewPage @{ Layout = \"test.cshtml\";}".StripWhitespace(), + "@usingUmbraco.Cms.Web.Common.PublishedModels;@inherits Umbraco.Cms.Web.Common.Views.UmbracoViewPage @{ Layout = \"test.cshtml\";}".StripWhitespace(), template2.Content.StripWhitespace()); } } diff --git a/src/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/Importing/StandardMvc-Package.xml b/src/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/Importing/StandardMvc-Package.xml index ee6f7cea4a..a4787dd570 100644 --- a/src/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/Importing/StandardMvc-Package.xml +++ b/src/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/Importing/StandardMvc-Package.xml @@ -189,17 +189,17 @@ http://www.creativefounds.co.uk - @@ -1099,7 +1099,7 @@ Google Maps - A map macro that you can use within Rich Text Areas Articles SW_Master -
- + @Html.Raw(Model.Content.GetPropertyValue("bodyText")) - +
    @foreach (var item in nodes.Skip((page - 1) * pageSize).Take(pageSize)) { @@ -1172,9 +1172,9 @@ Google Maps - A map macro that you can use within Rich Text Areas

    @item.GetPropertyValue("articleSummary") - +

    - + }
@@ -1185,7 +1185,7 @@ Google Maps - A map macro that you can use within Rich Text Areas @for (int p = 1; p < totalPages + 1; p++) { //string selected = (p == page) ? "selected" : String.Empty; - //
  • @p
  • + //
  • @p
  • @p if (p < totalPages) { @@ -1197,7 +1197,7 @@ Google Maps - A map macro that you can use within Rich Text Areas
    - + @Html.Partial("ContentPanels",@Model.Content) ]]>
    @@ -1207,13 +1207,13 @@ Google Maps - A map macro that you can use within Rich Text Areas ClientAreas SW_Master - x.IsVisible() && x.TemplateId > 0 && Umbraco.MemberHasAccess(x.Id, x.Path)); }
    - + - - + +
    ]]>
    @@ -1243,7 +1243,7 @@ Google Maps - A map macro that you can use within Rich Text Areas Layout = "SW_Master.cshtml"; }
    - + ]]> @@ -1266,9 +1266,9 @@ Google Maps - A map macro that you can use within Rich Text Areas @{ Layout = "SW_Master.cshtml"; } - +
    -
      +
        @{ var nodeIds = Model.Content.GetPropertyValue("slideshow").ToString().Split(','); List slides = new List(); @@ -1313,7 +1313,7 @@ Google Maps - A map macro that you can use within Rich Text Areas
    - +
    @Html.Raw(Model.Content.GetPropertyValue("panelContent1").ToString()) @@ -1345,7 +1345,7 @@ Google Maps - A map macro that you can use within Rich Text Areas } }
    - + ]]> @@ -1420,13 +1420,13 @@ Google Maps - A map macro that you can use within Rich Text Areas page = 1; } } - + }
    @@ -1470,14 +1470,14 @@ Google Maps - A map macro that you can use within Rich Text Areas

    @Html.Raw(searchHiglight)

    - + } } @@ -1489,7 +1489,7 @@ Google Maps - A map macro that you can use within Rich Text Areas @for (int p = 1; p < totalPages + 1; p++) { //string selected = (p == page) ? "selected" : String.Empty; - //
  • @p
  • + //
  • @p
  • @p if (p < totalPages) { @@ -1514,7 +1514,7 @@ Google Maps - A map macro that you can use within Rich Text Areas Layout = "SW_Master.cshtml"; }
    - + @helper traverse(IPublishedContent node) { - var cc = node.Children.Where(x=>x.IsVisible() && x.TemplateId > 0); + var cc = node.Children.Where(x=>x.IsVisible() && x.TemplateId > 0); if (cc.Count()>0) {
      @@ -1560,7 +1560,7 @@ Google Maps - A map macro that you can use within Rich Text Areas Layout = "SW_Master.cshtml"; }
      - + ]]> @@ -1590,27 +1590,27 @@ Google Maps - A map macro that you can use within Rich Text Areas @Model.Content.GetPropertyValue("title") - - + + - + - +