From adbd2f0ccaa992abb41d6ceca7726eac9eb5f154 Mon Sep 17 00:00:00 2001 From: Shannon Date: Mon, 28 Oct 2019 21:53:32 +1100 Subject: [PATCH] Changes namespaces, removes legacy PureLiveAssemblyAttribute --- .../{Api => }/ApiVersion.cs | 2 +- .../ContentTypeModelValidator.cs | 16 +++++------- .../BackOffice/DashboardReport.cs | 3 +-- .../ModelsBuilderBackOfficeController.cs | 1 - src/Umbraco.ModelsBuilder/Building/Builder.cs | 3 +-- .../{Umbraco => Building}/ModelsGenerator.cs | 4 +-- .../Building/TextBuilder.cs | 1 - .../Building/TextHeaderWriter.cs | 1 - .../TypeModelHasher.cs} | 5 ++-- .../Compose/ModelsBuilderComponent.cs | 1 - .../Compose/ModelsBuilderComposer.cs | 2 +- .../{Umbraco => }/LiveModelsProvider.cs | 10 ++++---- .../{Umbraco => }/LiveModelsProviderModule.cs | 4 +-- .../{Umbraco => }/ModelsGenerationError.cs | 2 +- .../{Umbraco => }/OutOfDateModelsStatus.cs | 2 +- .../{Umbraco => }/PublishedModelUtility.cs | 6 ++--- .../PureLiveAssemblyAttribute.cs | 15 ----------- .../{Umbraco => }/PureLiveModelFactory.cs | 25 ++++++++----------- .../Umbraco.ModelsBuilder.csproj | 23 ++++++++--------- .../{Umbraco => }/UmbracoServices.cs | 6 ++--- .../ModelsBuilder/BuilderTests.cs | 3 --- .../ModelsBuilder/UmbracoApplicationTests.cs | 1 - 22 files changed, 49 insertions(+), 87 deletions(-) rename src/Umbraco.ModelsBuilder/{Api => }/ApiVersion.cs (97%) rename src/Umbraco.ModelsBuilder/{Validation => BackOffice}/ContentTypeModelValidator.cs (90%) rename src/Umbraco.ModelsBuilder/{Umbraco => Building}/ModelsGenerator.cs (94%) rename src/Umbraco.ModelsBuilder/{Umbraco/ModelsBuilderHasher.cs => Building/TypeModelHasher.cs} (92%) rename src/Umbraco.ModelsBuilder/{Umbraco => }/LiveModelsProvider.cs (95%) rename src/Umbraco.ModelsBuilder/{Umbraco => }/LiveModelsProviderModule.cs (95%) rename src/Umbraco.ModelsBuilder/{Umbraco => }/ModelsGenerationError.cs (97%) rename src/Umbraco.ModelsBuilder/{Umbraco => }/OutOfDateModelsStatus.cs (97%) rename src/Umbraco.ModelsBuilder/{Umbraco => }/PublishedModelUtility.cs (92%) delete mode 100644 src/Umbraco.ModelsBuilder/PureLiveAssemblyAttribute.cs rename src/Umbraco.ModelsBuilder/{Umbraco => }/PureLiveModelFactory.cs (96%) rename src/Umbraco.ModelsBuilder/{Umbraco => }/UmbracoServices.cs (98%) diff --git a/src/Umbraco.ModelsBuilder/Api/ApiVersion.cs b/src/Umbraco.ModelsBuilder/ApiVersion.cs similarity index 97% rename from src/Umbraco.ModelsBuilder/Api/ApiVersion.cs rename to src/Umbraco.ModelsBuilder/ApiVersion.cs index a7f2db397e..67d0ec5c4c 100644 --- a/src/Umbraco.ModelsBuilder/Api/ApiVersion.cs +++ b/src/Umbraco.ModelsBuilder/ApiVersion.cs @@ -2,7 +2,7 @@ using System.Reflection; using Semver; -namespace Umbraco.ModelsBuilder.Api +namespace Umbraco.ModelsBuilder { /// /// Manages API version handshake between client and server. diff --git a/src/Umbraco.ModelsBuilder/Validation/ContentTypeModelValidator.cs b/src/Umbraco.ModelsBuilder/BackOffice/ContentTypeModelValidator.cs similarity index 90% rename from src/Umbraco.ModelsBuilder/Validation/ContentTypeModelValidator.cs rename to src/Umbraco.ModelsBuilder/BackOffice/ContentTypeModelValidator.cs index d22d146553..1971c62c9f 100644 --- a/src/Umbraco.ModelsBuilder/Validation/ContentTypeModelValidator.cs +++ b/src/Umbraco.ModelsBuilder/BackOffice/ContentTypeModelValidator.cs @@ -8,12 +8,12 @@ using Umbraco.ModelsBuilder.Configuration; using Umbraco.Web.Editors; using Umbraco.Web.Models.ContentEditing; -namespace Umbraco.ModelsBuilder.Validation +namespace Umbraco.ModelsBuilder.BackOffice { /// - /// Used to validate the aliases for the content type when MB is enabled to ensure that - /// no illegal aliases are used - /// + /// Used to validate the aliases for the content type when MB is enabled to ensure that + /// no illegal aliases are used + /// public class ContentTypeModelValidator : ContentTypeModelValidatorBase { } @@ -32,8 +32,8 @@ namespace Umbraco.ModelsBuilder.Validation { } public abstract class ContentTypeModelValidatorBase : EditorValidator - where TModel: ContentTypeSave - where TProperty: PropertyTypeBasic + where TModel : ContentTypeSave + where TProperty : PropertyTypeBasic { protected override IEnumerable Validate(TModel model) { @@ -57,9 +57,7 @@ namespace Umbraco.ModelsBuilder.Validation var validationResult = ValidateProperty(prop, groupIndex, propertyIndex); if (validationResult != null) - { yield return validationResult; - } } } @@ -73,13 +71,11 @@ namespace Umbraco.ModelsBuilder.Validation var alias = property.Alias; if (reservedProperties.InvariantContains(alias) || reservedMethods.InvariantContains(alias)) - { return new ValidationResult( string.Format("The alias {0} is a reserved term and cannot be used", alias), new[] { string.Format("Groups[{0}].Properties[{1}].Alias", groupIndex, propertyIndex) }); - } return null; } diff --git a/src/Umbraco.ModelsBuilder/BackOffice/DashboardReport.cs b/src/Umbraco.ModelsBuilder/BackOffice/DashboardReport.cs index 85f7030eff..64fb217fce 100644 --- a/src/Umbraco.ModelsBuilder/BackOffice/DashboardReport.cs +++ b/src/Umbraco.ModelsBuilder/BackOffice/DashboardReport.cs @@ -1,7 +1,6 @@ using System.Text; using Umbraco.Core.Composing; using Umbraco.ModelsBuilder.Configuration; -using Umbraco.ModelsBuilder.Umbraco; namespace Umbraco.ModelsBuilder.BackOffice { @@ -29,7 +28,7 @@ namespace Umbraco.ModelsBuilder.BackOffice var sb = new StringBuilder(); sb.Append("Version: "); - sb.Append(Api.ApiVersion.Current.Version); + sb.Append(ApiVersion.Current.Version); sb.Append("
 
"); sb.Append("ModelsBuilder is enabled, with the following configuration:"); diff --git a/src/Umbraco.ModelsBuilder/BackOffice/ModelsBuilderBackOfficeController.cs b/src/Umbraco.ModelsBuilder/BackOffice/ModelsBuilderBackOfficeController.cs index 6092c9678b..e4efca70bd 100644 --- a/src/Umbraco.ModelsBuilder/BackOffice/ModelsBuilderBackOfficeController.cs +++ b/src/Umbraco.ModelsBuilder/BackOffice/ModelsBuilderBackOfficeController.cs @@ -9,7 +9,6 @@ using System.Web.Hosting; using Umbraco.Core.Exceptions; using Umbraco.ModelsBuilder.Building; using Umbraco.ModelsBuilder.Configuration; -using Umbraco.ModelsBuilder.Umbraco; using Umbraco.Web.Editors; using Umbraco.Web.WebApi.Filters; diff --git a/src/Umbraco.ModelsBuilder/Building/Builder.cs b/src/Umbraco.ModelsBuilder/Building/Builder.cs index fa05b9d9a1..885e51133b 100644 --- a/src/Umbraco.ModelsBuilder/Building/Builder.cs +++ b/src/Umbraco.ModelsBuilder/Building/Builder.cs @@ -38,8 +38,7 @@ namespace Umbraco.ModelsBuilder.Building "Umbraco.Core.Models", "Umbraco.Core.Models.PublishedContent", "Umbraco.Web", - "Umbraco.ModelsBuilder", - "Umbraco.ModelsBuilder.Umbraco", + "Umbraco.ModelsBuilder" }; /// diff --git a/src/Umbraco.ModelsBuilder/Umbraco/ModelsGenerator.cs b/src/Umbraco.ModelsBuilder/Building/ModelsGenerator.cs similarity index 94% rename from src/Umbraco.ModelsBuilder/Umbraco/ModelsGenerator.cs rename to src/Umbraco.ModelsBuilder/Building/ModelsGenerator.cs index 5ef86b50ca..6f6872e8ff 100644 --- a/src/Umbraco.ModelsBuilder/Umbraco/ModelsGenerator.cs +++ b/src/Umbraco.ModelsBuilder/Building/ModelsGenerator.cs @@ -2,11 +2,9 @@ using System.IO; using System.Text; using System.Web; -using Umbraco.ModelsBuilder.Building; using Umbraco.ModelsBuilder.Configuration; -using Umbraco.ModelsBuilder.Umbraco; -namespace Umbraco.ModelsBuilder.Umbraco +namespace Umbraco.ModelsBuilder.Building { public class ModelsGenerator { diff --git a/src/Umbraco.ModelsBuilder/Building/TextBuilder.cs b/src/Umbraco.ModelsBuilder/Building/TextBuilder.cs index 79a64bd1ed..56349f16a8 100644 --- a/src/Umbraco.ModelsBuilder/Building/TextBuilder.cs +++ b/src/Umbraco.ModelsBuilder/Building/TextBuilder.cs @@ -5,7 +5,6 @@ using System.Text; using System.Text.RegularExpressions; using Umbraco.Core.Composing; using Umbraco.Core.Configuration; -using Umbraco.ModelsBuilder.Api; using Umbraco.ModelsBuilder.Configuration; namespace Umbraco.ModelsBuilder.Building diff --git a/src/Umbraco.ModelsBuilder/Building/TextHeaderWriter.cs b/src/Umbraco.ModelsBuilder/Building/TextHeaderWriter.cs index 27fcb42b35..7244a2966d 100644 --- a/src/Umbraco.ModelsBuilder/Building/TextHeaderWriter.cs +++ b/src/Umbraco.ModelsBuilder/Building/TextHeaderWriter.cs @@ -1,5 +1,4 @@ using System.Text; -using Umbraco.ModelsBuilder.Api; namespace Umbraco.ModelsBuilder.Building { diff --git a/src/Umbraco.ModelsBuilder/Umbraco/ModelsBuilderHasher.cs b/src/Umbraco.ModelsBuilder/Building/TypeModelHasher.cs similarity index 92% rename from src/Umbraco.ModelsBuilder/Umbraco/ModelsBuilderHasher.cs rename to src/Umbraco.ModelsBuilder/Building/TypeModelHasher.cs index 3354b4040d..2099c09415 100644 --- a/src/Umbraco.ModelsBuilder/Umbraco/ModelsBuilderHasher.cs +++ b/src/Umbraco.ModelsBuilder/Building/TypeModelHasher.cs @@ -1,10 +1,9 @@ using System.Collections.Generic; using System.Linq; -using Umbraco.ModelsBuilder.Building; -namespace Umbraco.ModelsBuilder.Umbraco +namespace Umbraco.ModelsBuilder.Building { - internal class ModelsBuilderHasher + internal class TypeModelHasher { public static string Hash(IEnumerable typeModels) { diff --git a/src/Umbraco.ModelsBuilder/Compose/ModelsBuilderComponent.cs b/src/Umbraco.ModelsBuilder/Compose/ModelsBuilderComponent.cs index 6deeda40a6..a68315606e 100644 --- a/src/Umbraco.ModelsBuilder/Compose/ModelsBuilderComponent.cs +++ b/src/Umbraco.ModelsBuilder/Compose/ModelsBuilderComponent.cs @@ -10,7 +10,6 @@ using Umbraco.Core.Services; using Umbraco.Core.Services.Implement; using Umbraco.ModelsBuilder.BackOffice; using Umbraco.ModelsBuilder.Configuration; -using Umbraco.ModelsBuilder.Umbraco; using Umbraco.Web; using Umbraco.Web.JavaScript; using Umbraco.Web.Mvc; diff --git a/src/Umbraco.ModelsBuilder/Compose/ModelsBuilderComposer.cs b/src/Umbraco.ModelsBuilder/Compose/ModelsBuilderComposer.cs index f2b09903f3..fdc4253490 100644 --- a/src/Umbraco.ModelsBuilder/Compose/ModelsBuilderComposer.cs +++ b/src/Umbraco.ModelsBuilder/Compose/ModelsBuilderComposer.cs @@ -2,8 +2,8 @@ using Umbraco.Core; using Umbraco.Core.Composing; using Umbraco.Core.Models.PublishedContent; +using Umbraco.ModelsBuilder.Building; using Umbraco.ModelsBuilder.Configuration; -using Umbraco.ModelsBuilder.Umbraco; using Umbraco.Web.PublishedCache.NuCache; namespace Umbraco.ModelsBuilder.Compose diff --git a/src/Umbraco.ModelsBuilder/Umbraco/LiveModelsProvider.cs b/src/Umbraco.ModelsBuilder/LiveModelsProvider.cs similarity index 95% rename from src/Umbraco.ModelsBuilder/Umbraco/LiveModelsProvider.cs rename to src/Umbraco.ModelsBuilder/LiveModelsProvider.cs index 19a725f85a..1e77ff3059 100644 --- a/src/Umbraco.ModelsBuilder/Umbraco/LiveModelsProvider.cs +++ b/src/Umbraco.ModelsBuilder/LiveModelsProvider.cs @@ -5,13 +5,13 @@ using System.Web.Hosting; using Umbraco.Core.Exceptions; using Umbraco.Core.IO; using Umbraco.Core.Logging; +using Umbraco.ModelsBuilder.Building; using Umbraco.ModelsBuilder.Configuration; -using Umbraco.ModelsBuilder.Umbraco; using Umbraco.Web.Cache; -namespace Umbraco.ModelsBuilder.Umbraco +namespace Umbraco.ModelsBuilder { - // supports LiveDll and LiveAppData - but not PureLive + // supports LiveAppData - but not PureLive public sealed class LiveModelsProvider { private static Mutex _mutex; @@ -80,7 +80,7 @@ namespace Umbraco.ModelsBuilder.Umbraco try { _logger.Debug("Generate models..."); - const int timeout = 2*60*1000; // 2 mins + const int timeout = 2 * 60 * 1000; // 2 mins _mutex.WaitOne(timeout); // wait until it is safe, and acquire _logger.Info("Generate models now."); GenerateModels(); @@ -112,6 +112,6 @@ namespace Umbraco.ModelsBuilder.Umbraco _modelGenerator.GenerateModels(); } - + } } diff --git a/src/Umbraco.ModelsBuilder/Umbraco/LiveModelsProviderModule.cs b/src/Umbraco.ModelsBuilder/LiveModelsProviderModule.cs similarity index 95% rename from src/Umbraco.ModelsBuilder/Umbraco/LiveModelsProviderModule.cs rename to src/Umbraco.ModelsBuilder/LiveModelsProviderModule.cs index aae01ea75c..9d50c4ab42 100644 --- a/src/Umbraco.ModelsBuilder/Umbraco/LiveModelsProviderModule.cs +++ b/src/Umbraco.ModelsBuilder/LiveModelsProviderModule.cs @@ -2,12 +2,12 @@ using System.Web; using Umbraco.Core; using Umbraco.Core.Composing; -using Umbraco.ModelsBuilder.Umbraco; +using Umbraco.ModelsBuilder; // will install only if configuration says it needs to be installed [assembly: PreApplicationStartMethod(typeof(LiveModelsProviderModule), "Install")] -namespace Umbraco.ModelsBuilder.Umbraco +namespace Umbraco.ModelsBuilder { // have to do this because it's the only way to subscribe to EndRequest, // module is installed by assembly attribute at the top of this file diff --git a/src/Umbraco.ModelsBuilder/Umbraco/ModelsGenerationError.cs b/src/Umbraco.ModelsBuilder/ModelsGenerationError.cs similarity index 97% rename from src/Umbraco.ModelsBuilder/Umbraco/ModelsGenerationError.cs rename to src/Umbraco.ModelsBuilder/ModelsGenerationError.cs index 3f96d2ccdf..8264fecc87 100644 --- a/src/Umbraco.ModelsBuilder/Umbraco/ModelsGenerationError.cs +++ b/src/Umbraco.ModelsBuilder/ModelsGenerationError.cs @@ -4,7 +4,7 @@ using System.Text; using Umbraco.Core.Composing; using Umbraco.ModelsBuilder.Configuration; -namespace Umbraco.ModelsBuilder.Umbraco +namespace Umbraco.ModelsBuilder { public sealed class ModelsGenerationError { diff --git a/src/Umbraco.ModelsBuilder/Umbraco/OutOfDateModelsStatus.cs b/src/Umbraco.ModelsBuilder/OutOfDateModelsStatus.cs similarity index 97% rename from src/Umbraco.ModelsBuilder/Umbraco/OutOfDateModelsStatus.cs rename to src/Umbraco.ModelsBuilder/OutOfDateModelsStatus.cs index a72ccd2fa2..3b43ed771e 100644 --- a/src/Umbraco.ModelsBuilder/Umbraco/OutOfDateModelsStatus.cs +++ b/src/Umbraco.ModelsBuilder/OutOfDateModelsStatus.cs @@ -3,7 +3,7 @@ using Umbraco.Core.Composing; using Umbraco.ModelsBuilder.Configuration; using Umbraco.Web.Cache; -namespace Umbraco.ModelsBuilder.Umbraco +namespace Umbraco.ModelsBuilder { public sealed class OutOfDateModelsStatus { diff --git a/src/Umbraco.ModelsBuilder/Umbraco/PublishedModelUtility.cs b/src/Umbraco.ModelsBuilder/PublishedModelUtility.cs similarity index 92% rename from src/Umbraco.ModelsBuilder/Umbraco/PublishedModelUtility.cs rename to src/Umbraco.ModelsBuilder/PublishedModelUtility.cs index 1db15fa9b1..44af532a0b 100644 --- a/src/Umbraco.ModelsBuilder/Umbraco/PublishedModelUtility.cs +++ b/src/Umbraco.ModelsBuilder/PublishedModelUtility.cs @@ -5,7 +5,7 @@ using System.Linq.Expressions; using Umbraco.Web.Composing; using Umbraco.Core.Models.PublishedContent; -namespace Umbraco.ModelsBuilder.Umbraco +namespace Umbraco.ModelsBuilder { /// /// This is called from within the generated model classes @@ -48,7 +48,7 @@ namespace Umbraco.ModelsBuilder.Umbraco } public static IPublishedPropertyType GetModelPropertyType(IPublishedContentType contentType, Expression> selector) - //where TModel : PublishedContentModel // fixme PublishedContentModel _or_ PublishedElementModel + //where TModel : PublishedContentModel // fixme PublishedContentModel _or_ PublishedElementModel { // fixme therefore, missing a check on TModel here @@ -61,7 +61,7 @@ namespace Umbraco.ModelsBuilder.Umbraco // see note above : accepted risk... var attr = expr.Member - .GetCustomAttributes(typeof (ImplementPropertyTypeAttribute), false) + .GetCustomAttributes(typeof(ImplementPropertyTypeAttribute), false) .OfType() .SingleOrDefault(); diff --git a/src/Umbraco.ModelsBuilder/PureLiveAssemblyAttribute.cs b/src/Umbraco.ModelsBuilder/PureLiveAssemblyAttribute.cs deleted file mode 100644 index dfe369dc21..0000000000 --- a/src/Umbraco.ModelsBuilder/PureLiveAssemblyAttribute.cs +++ /dev/null @@ -1,15 +0,0 @@ -using System; - -namespace Umbraco.ModelsBuilder -{ - /// - /// Indicates that an Assembly is a PureLive models assembly. - /// - /// Though technically not required, ie models will work without it, the attribute - /// can be used by Umbraco view models binder to figure out whether the model type comes - /// from a PureLive Assembly. - [Obsolete("Should use ModelsBuilderAssemblyAttribute but that requires a change in Umbraco Core.")] - [AttributeUsage(AttributeTargets.Assembly /*, AllowMultiple = false, Inherited = false*/)] - public sealed class PureLiveAssemblyAttribute : Attribute - { } -} diff --git a/src/Umbraco.ModelsBuilder/Umbraco/PureLiveModelFactory.cs b/src/Umbraco.ModelsBuilder/PureLiveModelFactory.cs similarity index 96% rename from src/Umbraco.ModelsBuilder/Umbraco/PureLiveModelFactory.cs rename to src/Umbraco.ModelsBuilder/PureLiveModelFactory.cs index 464ce92ef5..eb82b4323f 100644 --- a/src/Umbraco.ModelsBuilder/Umbraco/PureLiveModelFactory.cs +++ b/src/Umbraco.ModelsBuilder/PureLiveModelFactory.cs @@ -21,7 +21,7 @@ using Umbraco.ModelsBuilder.Building; using Umbraco.ModelsBuilder.Configuration; using File = System.IO.File; -namespace Umbraco.ModelsBuilder.Umbraco +namespace Umbraco.ModelsBuilder { internal class PureLiveModelFactory : ILivePublishedModelFactory, IRegisteredObject { @@ -101,7 +101,7 @@ namespace Umbraco.ModelsBuilder.Umbraco var contentTypeAlias = element.ContentType.Alias; // lookup model constructor (else null) - infos.TryGetValue(contentTypeAlias, out ModelInfo info); + infos.TryGetValue(contentTypeAlias, out var info); // create model return info == null ? element : info.Ctor(element); @@ -234,10 +234,10 @@ namespace Umbraco.ModelsBuilder.Umbraco get { if (_theBuildManager != null) return _theBuildManager; - var prop = typeof (BuildManager).GetProperty("TheBuildManager", BindingFlags.NonPublic | BindingFlags.Static); + var prop = typeof(BuildManager).GetProperty("TheBuildManager", BindingFlags.NonPublic | BindingFlags.Static); if (prop == null) throw new InvalidOperationException("Could not get BuildManager.TheBuildManager property."); - _theBuildManager = (BuildManager) prop.GetValue(null); + _theBuildManager = (BuildManager)prop.GetValue(null); return _theBuildManager; } } @@ -335,7 +335,7 @@ namespace Umbraco.ModelsBuilder.Umbraco Directory.CreateDirectory(modelsDirectory); var typeModels = UmbracoServices.GetAllTypes(); - var currentHash = ModelsBuilderHasher.Hash(typeModels); + var currentHash = TypeModelHasher.Hash(typeModels); var modelsHashFile = Path.Combine(modelsDirectory, "models.hash"); var modelsSrcFile = Path.Combine(modelsDirectory, "models.generated.cs"); var projFile = Path.Combine(modelsDirectory, "all.generated.cs"); @@ -456,8 +456,7 @@ namespace Umbraco.ModelsBuilder.Umbraco // AssemblyVersion is so that we have a different version for each rebuild var ver = _ver == _skipver ? ++_ver : _ver; _ver++; - code = code.Replace("//ASSATTR", $@"[assembly: PureLiveAssembly] -[assembly:ModelsBuilderAssembly(PureLive = true, SourceHash = ""{currentHash}"")] + code = code.Replace("//ASSATTR", $@"[assembly:ModelsBuilderAssembly(PureLive = true, SourceHash = ""{currentHash}"")] [assembly:System.Reflection.AssemblyVersion(""0.0.0.{ver}"")]"); File.WriteAllText(modelsSrcFile, code); @@ -505,7 +504,7 @@ namespace Umbraco.ModelsBuilder.Umbraco private static Infos RegisterModels(IEnumerable types) { - var ctorArgTypes = new[] { typeof (IPublishedElement) }; + var ctorArgTypes = new[] { typeof(IPublishedElement) }; var modelInfos = new Dictionary(StringComparer.InvariantCultureIgnoreCase); var map = new Dictionary(); @@ -517,7 +516,7 @@ namespace Umbraco.ModelsBuilder.Umbraco foreach (var ctor in type.GetConstructors()) { var parms = ctor.GetParameters(); - if (parms.Length == 1 && typeof (IPublishedElement).IsAssignableFrom(parms[0].ParameterType)) + if (parms.Length == 1 && typeof(IPublishedElement).IsAssignableFrom(parms[0].ParameterType)) { if (constructor != null) throw new InvalidOperationException($"Type {type.FullName} has more than one public constructor with one argument of type, or implementing, IPropertySet."); @@ -532,17 +531,17 @@ namespace Umbraco.ModelsBuilder.Umbraco var attribute = type.GetCustomAttribute(false); var typeName = attribute == null ? type.Name : attribute.ContentTypeAlias; - if (modelInfos.TryGetValue(typeName, out ModelInfo modelInfo)) + if (modelInfos.TryGetValue(typeName, out var modelInfo)) throw new InvalidOperationException($"Both types {type.FullName} and {modelInfo.ModelType.FullName} want to be a model type for content type with alias \"{typeName}\"."); // fixme use Core's ReflectionUtilities.EmitCtor !! // Yes .. DynamicMethod is uber slow - var meth = new DynamicMethod(string.Empty, typeof (IPublishedElement), ctorArgTypes, type.Module, true); + var meth = new DynamicMethod(string.Empty, typeof(IPublishedElement), ctorArgTypes, type.Module, true); var gen = meth.GetILGenerator(); gen.Emit(OpCodes.Ldarg_0); gen.Emit(OpCodes.Newobj, constructor); gen.Emit(OpCodes.Ret); - var func = (Func) meth.CreateDelegate(typeof (Func)); + var func = (Func)meth.CreateDelegate(typeof(Func)); modelInfos[typeName] = new ModelInfo { ParameterType = parameterType, Ctor = func, ModelType = type }; map[typeName] = type; @@ -663,9 +662,7 @@ namespace Umbraco.ModelsBuilder.Umbraco _logger.Info("Detected files changes."); lock (SyncRoot) // don't reset while being locked - { ResetModels(); - } } public void Stop(bool immediate) diff --git a/src/Umbraco.ModelsBuilder/Umbraco.ModelsBuilder.csproj b/src/Umbraco.ModelsBuilder/Umbraco.ModelsBuilder.csproj index 027ed6665c..46ec0c7d2c 100644 --- a/src/Umbraco.ModelsBuilder/Umbraco.ModelsBuilder.csproj +++ b/src/Umbraco.ModelsBuilder/Umbraco.ModelsBuilder.csproj @@ -49,7 +49,7 @@ Properties\SolutionInfo.cs - + @@ -65,24 +65,23 @@ - - - - + + + - + - - - - - - + + + + + + diff --git a/src/Umbraco.ModelsBuilder/Umbraco/UmbracoServices.cs b/src/Umbraco.ModelsBuilder/UmbracoServices.cs similarity index 98% rename from src/Umbraco.ModelsBuilder/Umbraco/UmbracoServices.cs rename to src/Umbraco.ModelsBuilder/UmbracoServices.cs index 410349096a..725e5b18c4 100644 --- a/src/Umbraco.ModelsBuilder/Umbraco/UmbracoServices.cs +++ b/src/Umbraco.ModelsBuilder/UmbracoServices.cs @@ -11,9 +11,9 @@ using Umbraco.Core.Strings; using Umbraco.ModelsBuilder.Building; using Umbraco.ModelsBuilder.Configuration; -namespace Umbraco.ModelsBuilder.Umbraco +namespace Umbraco.ModelsBuilder { - public class UmbracoServices + public sealed class UmbracoServices { private readonly IContentTypeService _contentTypeService; private readonly IMediaTypeService _mediaTypeService; @@ -184,11 +184,9 @@ namespace Umbraco.ModelsBuilder.Umbraco { var groups = typeModels.GroupBy(x => x.Alias.ToLowerInvariant()); foreach (var group in groups.Where(x => x.Count() > 1)) - { throw new NotSupportedException($"Alias \"{group.Key}\" is used by types" + $" {string.Join(", ", group.Select(x => x.ItemType + ":\"" + x.Alias + "\""))}. Aliases have to be unique." + " One of the aliases must be modified in order to use the ModelsBuilder."); - } return typeModels; } diff --git a/src/Umbraco.Tests/ModelsBuilder/BuilderTests.cs b/src/Umbraco.Tests/ModelsBuilder/BuilderTests.cs index 18be0a37a3..83d9a9f4b0 100644 --- a/src/Umbraco.Tests/ModelsBuilder/BuilderTests.cs +++ b/src/Umbraco.Tests/ModelsBuilder/BuilderTests.cs @@ -7,7 +7,6 @@ using Moq; using NUnit.Framework; using Umbraco.Core.Composing; using Umbraco.Core.Models.PublishedContent; -using Umbraco.ModelsBuilder.Api; using Umbraco.ModelsBuilder.Building; using Umbraco.ModelsBuilder.Configuration; @@ -77,7 +76,6 @@ using Umbraco.Core.Models; using Umbraco.Core.Models.PublishedContent; using Umbraco.Web; using Umbraco.ModelsBuilder; -using Umbraco.ModelsBuilder.Umbraco; namespace Umbraco.Web.PublishedModels { @@ -193,7 +191,6 @@ using Umbraco.Core.Models; using Umbraco.Core.Models.PublishedContent; using Umbraco.Web; using Umbraco.ModelsBuilder; -using Umbraco.ModelsBuilder.Umbraco; namespace Umbraco.Web.PublishedModels { diff --git a/src/Umbraco.Tests/ModelsBuilder/UmbracoApplicationTests.cs b/src/Umbraco.Tests/ModelsBuilder/UmbracoApplicationTests.cs index 12fa777e69..d6d44474c3 100644 --- a/src/Umbraco.Tests/ModelsBuilder/UmbracoApplicationTests.cs +++ b/src/Umbraco.Tests/ModelsBuilder/UmbracoApplicationTests.cs @@ -5,7 +5,6 @@ using System.Text; using System.Threading.Tasks; using NUnit.Framework; using Umbraco.ModelsBuilder.Building; -using Umbraco.ModelsBuilder.Umbraco; namespace Umbraco.ModelsBuilder.Tests {