From 3d5e70654b142d1ee3f786f7533667c069865d41 Mon Sep 17 00:00:00 2001 From: kasparboelkjeldsen <137318845+kasparboelkjeldsen@users.noreply.github.com> Date: Mon, 9 Sep 2024 08:06:52 +0200 Subject: [PATCH] ModelsGenerator to IModelsGenerator in BuildModelsBuilderController (#16919) * ModelsGenerator to IModelsGenerator in BuildModelsBuilderController * Added obsolete constructors for backwards compatibility --- .../BuildModelsBuilderController.cs | 28 +++++++++++++++++-- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/src/Umbraco.Cms.Api.Management/Controllers/ModelsBuilder/BuildModelsBuilderController.cs b/src/Umbraco.Cms.Api.Management/Controllers/ModelsBuilder/BuildModelsBuilderController.cs index 9d5f67cb1f..14adb70c3b 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/ModelsBuilder/BuildModelsBuilderController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/ModelsBuilder/BuildModelsBuilderController.cs @@ -1,8 +1,9 @@ -using System; +using System; using System.Threading.Tasks; using Asp.Versioning; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; +using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Options; using Umbraco.Cms.Core.Configuration.Models; using Umbraco.Cms.Infrastructure.ModelsBuilder; @@ -16,12 +17,13 @@ public class BuildModelsBuilderController : ModelsBuilderControllerBase { private ModelsBuilderSettings _modelsBuilderSettings; private readonly ModelsGenerationError _mbErrors; - private readonly ModelsGenerator _modelGenerator; + private readonly IModelsGenerator _modelGenerator; + [ActivatorUtilitiesConstructor] public BuildModelsBuilderController( IOptionsMonitor modelsBuilderSettings, ModelsGenerationError mbErrors, - ModelsGenerator modelGenerator) + IModelsGenerator modelGenerator) { _mbErrors = mbErrors; _modelGenerator = modelGenerator; @@ -30,6 +32,26 @@ public class BuildModelsBuilderController : ModelsBuilderControllerBase modelsBuilderSettings.OnChange(x => _modelsBuilderSettings = x); } + [Obsolete("Please use the constructor that accepts IModelsGenerator only. Will be removed in V16.")] + public BuildModelsBuilderController( + IOptionsMonitor modelsBuilderSettings, + ModelsGenerationError mbErrors, + ModelsGenerator modelGenerator) + : this(modelsBuilderSettings, mbErrors, (IModelsGenerator)modelGenerator) + { + } + + // this constructor is required for the DI, otherwise it'll throw an "Ambiguous Constructor" errors at boot time. + [Obsolete("Please use the constructor that accepts IModelsGenerator only. Will be removed in V16.")] + public BuildModelsBuilderController( + IOptionsMonitor modelsBuilderSettings, + ModelsGenerationError mbErrors, + IModelsGenerator modelGenerator, + ModelsGenerator notUsed) + : this(modelsBuilderSettings, mbErrors, modelGenerator) + { + } + [HttpPost("build")] [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status428PreconditionRequired)]