Add IModelsGenerator Interface (#12210)
This commit is contained in:
committed by
GitHub
parent
c4cf5f910d
commit
2987dcb30e
@@ -1,9 +1,10 @@
|
||||
using System;
|
||||
using System.Threading.Tasks;
|
||||
using System.ComponentModel;
|
||||
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.Core.DependencyInjection;
|
||||
using Umbraco.Cms.Infrastructure.ModelsBuilder;
|
||||
using Umbraco.Cms.Infrastructure.ModelsBuilder.Building;
|
||||
using Umbraco.Extensions;
|
||||
@@ -14,12 +15,37 @@ public class BuildModelsBuilderController : ModelsBuilderControllerBase
|
||||
{
|
||||
private ModelsBuilderSettings _modelsBuilderSettings;
|
||||
private readonly ModelsGenerationError _mbErrors;
|
||||
private readonly ModelsGenerator _modelGenerator;
|
||||
private readonly IModelsGenerator _modelGenerator;
|
||||
|
||||
// TODO: Remove in v13
|
||||
private readonly ModelsGenerator? _concreteModelGenerator;
|
||||
|
||||
[Obsolete("This constructor is obsolete and will be removed in v13. Use the constructor with IModelsGenerator instead.")]
|
||||
[Browsable(false)]
|
||||
public BuildModelsBuilderController(
|
||||
IOptionsMonitor<ModelsBuilderSettings> modelsBuilderSettings,
|
||||
ModelsGenerationError mbErrors,
|
||||
ModelsGenerator modelGenerator)
|
||||
: this(modelsBuilderSettings, mbErrors, StaticServiceProvider.Instance.GetRequiredService<IModelsGenerator>())
|
||||
{
|
||||
}
|
||||
|
||||
[Obsolete("This constructor is obsolete and will be removed in v13. Use the constructor with only IModelsGenerator instead.")]
|
||||
[Browsable(false)]
|
||||
public BuildModelsBuilderController(
|
||||
IOptionsMonitor<ModelsBuilderSettings> modelsBuilderSettings,
|
||||
ModelsGenerationError mbErrors,
|
||||
ModelsGenerator concreteModelGenerator,
|
||||
IModelsGenerator modelGenerator)
|
||||
: this(modelsBuilderSettings, mbErrors, modelGenerator)
|
||||
{
|
||||
}
|
||||
|
||||
[ActivatorUtilitiesConstructor]
|
||||
public BuildModelsBuilderController(
|
||||
IOptionsMonitor<ModelsBuilderSettings> modelsBuilderSettings,
|
||||
ModelsGenerationError mbErrors,
|
||||
IModelsGenerator modelGenerator)
|
||||
{
|
||||
_mbErrors = mbErrors;
|
||||
_modelGenerator = modelGenerator;
|
||||
|
||||
@@ -1,7 +1,10 @@
|
||||
using System.ComponentModel;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Microsoft.Extensions.Options;
|
||||
using Umbraco.Cms.Core.Configuration;
|
||||
using Umbraco.Cms.Core.Configuration.Models;
|
||||
using Umbraco.Cms.Core.DependencyInjection;
|
||||
using Umbraco.Cms.Core.Events;
|
||||
using Umbraco.Cms.Core.Notifications;
|
||||
using Umbraco.Cms.Core.Runtime;
|
||||
@@ -26,7 +29,35 @@ public sealed class AutoModelsNotificationHandler : INotificationHandler<Umbraco
|
||||
private readonly ILogger<AutoModelsNotificationHandler> _logger;
|
||||
private readonly IMainDom _mainDom;
|
||||
private readonly ModelsGenerationError _mbErrors;
|
||||
private readonly ModelsGenerator _modelGenerator;
|
||||
private readonly IModelsGenerator _modelGenerator;
|
||||
|
||||
// TODO: Remove in v13
|
||||
private readonly ModelsGenerator? _concreteModelGenerator;
|
||||
|
||||
[Obsolete("This constructor is obsolete and will be removed in v13. Use the constructor with IModelsGenerator instead.")]
|
||||
[Browsable(false)]
|
||||
public AutoModelsNotificationHandler(
|
||||
ILogger<AutoModelsNotificationHandler> logger,
|
||||
IOptionsMonitor<ModelsBuilderSettings> config,
|
||||
ModelsGenerator modelGenerator,
|
||||
ModelsGenerationError mbErrors,
|
||||
IMainDom mainDom)
|
||||
: this(logger, config, StaticServiceProvider.Instance.GetRequiredService<IModelsGenerator>(), mbErrors, mainDom)
|
||||
{
|
||||
}
|
||||
|
||||
[Obsolete("This constructor is obsolete and will be removed in v13. Use the constructor with only IModelsGenerator instead.")]
|
||||
[Browsable(false)]
|
||||
public AutoModelsNotificationHandler(
|
||||
ILogger<AutoModelsNotificationHandler> logger,
|
||||
IOptionsMonitor<ModelsBuilderSettings> config,
|
||||
ModelsGenerator concreteModelGenerator,
|
||||
IModelsGenerator modelGenerator,
|
||||
ModelsGenerationError mbErrors,
|
||||
IMainDom mainDom)
|
||||
: this(logger, config, modelGenerator, mbErrors, mainDom)
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="AutoModelsNotificationHandler" /> class.
|
||||
@@ -34,7 +65,7 @@ public sealed class AutoModelsNotificationHandler : INotificationHandler<Umbraco
|
||||
public AutoModelsNotificationHandler(
|
||||
ILogger<AutoModelsNotificationHandler> logger,
|
||||
IOptionsMonitor<ModelsBuilderSettings> config,
|
||||
ModelsGenerator modelGenerator,
|
||||
IModelsGenerator modelGenerator,
|
||||
ModelsGenerationError mbErrors,
|
||||
IMainDom mainDom)
|
||||
{
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
namespace Umbraco.Cms.Infrastructure.ModelsBuilder.Building
|
||||
{
|
||||
public interface IModelsGenerator
|
||||
{
|
||||
void GenerateModels();
|
||||
}
|
||||
}
|
||||
@@ -6,7 +6,7 @@ using Umbraco.Extensions;
|
||||
|
||||
namespace Umbraco.Cms.Infrastructure.ModelsBuilder.Building;
|
||||
|
||||
public class ModelsGenerator
|
||||
public class ModelsGenerator : IModelsGenerator
|
||||
{
|
||||
private readonly IHostingEnvironment _hostingEnvironment;
|
||||
private readonly OutOfDateModelsStatus _outOfDateModels;
|
||||
|
||||
@@ -1,9 +1,12 @@
|
||||
using System.ComponentModel;
|
||||
using System.Runtime.Serialization;
|
||||
using Microsoft.AspNetCore.Authorization;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.Extensions.Options;
|
||||
using Umbraco.Cms.Core.Configuration;
|
||||
using Umbraco.Cms.Core.Configuration.Models;
|
||||
using Umbraco.Cms.Core.DependencyInjection;
|
||||
using Umbraco.Cms.Infrastructure.ModelsBuilder;
|
||||
using Umbraco.Cms.Infrastructure.ModelsBuilder.Building;
|
||||
using Umbraco.Cms.Web.BackOffice.Controllers;
|
||||
@@ -33,11 +36,40 @@ public class ModelsBuilderDashboardController : UmbracoAuthorizedJsonController
|
||||
private readonly ModelsBuilderSettings _config;
|
||||
private readonly DashboardReport _dashboardReport;
|
||||
private readonly ModelsGenerationError _mbErrors;
|
||||
private readonly ModelsGenerator _modelGenerator;
|
||||
private readonly IModelsGenerator _modelGenerator;
|
||||
private readonly OutOfDateModelsStatus _outOfDateModels;
|
||||
|
||||
public ModelsBuilderDashboardController(IOptions<ModelsBuilderSettings> config, ModelsGenerator modelsGenerator,
|
||||
OutOfDateModelsStatus outOfDateModels, ModelsGenerationError mbErrors)
|
||||
// TODO: Remove in v13
|
||||
private readonly ModelsGenerator? _concreteModelGenerator;
|
||||
|
||||
[Obsolete("This constructor is obsolete and will be removed in v13. Use the constructor with IModelsGenerator instead.")]
|
||||
[Browsable(false)]
|
||||
public ModelsBuilderDashboardController(
|
||||
IOptions<ModelsBuilderSettings> config,
|
||||
ModelsGenerator modelsGenerator,
|
||||
OutOfDateModelsStatus outOfDateModels,
|
||||
ModelsGenerationError mbErrors)
|
||||
: this(config, StaticServiceProvider.Instance.GetRequiredService<IModelsGenerator>(), outOfDateModels, mbErrors)
|
||||
{
|
||||
}
|
||||
|
||||
[Obsolete("This constructor is obsolete and will be removed in v13. Use the constructor with only IModelsGenerator instead.")]
|
||||
[Browsable(false)]
|
||||
public ModelsBuilderDashboardController(
|
||||
IOptions<ModelsBuilderSettings> config,
|
||||
ModelsGenerator concreteModelGenerator,
|
||||
IModelsGenerator modelsGenerator,
|
||||
OutOfDateModelsStatus outOfDateModels,
|
||||
ModelsGenerationError mbErrors)
|
||||
: this(config, modelsGenerator, outOfDateModels, mbErrors)
|
||||
{
|
||||
}
|
||||
|
||||
[ActivatorUtilitiesConstructor]
|
||||
public ModelsBuilderDashboardController(IOptions<ModelsBuilderSettings> config,
|
||||
IModelsGenerator modelsGenerator,
|
||||
OutOfDateModelsStatus outOfDateModels,
|
||||
ModelsGenerationError mbErrors)
|
||||
{
|
||||
_config = config.Value;
|
||||
_modelGenerator = modelsGenerator;
|
||||
|
||||
@@ -133,6 +133,8 @@ public static class UmbracoBuilderDependencyInjectionExtensions
|
||||
builder.Services.TryAddSingleton<IModelsBuilderDashboardProvider, NoopModelsBuilderDashboardProvider>();
|
||||
|
||||
// Register required services for ModelsBuilderDashboardController
|
||||
builder.Services.AddSingleton<IModelsGenerator, ModelsGenerator>();
|
||||
// TODO: Remove in v13 - this is only here in case someone is already using this generator directly
|
||||
builder.Services.AddSingleton<ModelsGenerator>();
|
||||
builder.Services.AddSingleton<OutOfDateModelsStatus>();
|
||||
builder.Services.AddSingleton<ModelsGenerationError>();
|
||||
|
||||
Reference in New Issue
Block a user