Introducing IModelsBuilderDashboardProvider
This commit is contained in:
@@ -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<ModelsBuilderDashboardController>(controller =>
|
||||
controller.BuildModels());
|
||||
}
|
||||
}
|
||||
@@ -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<DisableModelsBuilderNotificationHandler>();
|
||||
builder.Services.AddUnique<IModelsBuilderDashboardProvider, ModelsBuilderDashboardProvider>();
|
||||
return builder;
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
{
|
||||
/// <summary>
|
||||
/// Extension methods for <see cref="IUmbracoBuilder"/> for the common Umbraco functionality
|
||||
@@ -126,15 +123,8 @@ namespace Umbraco.ModelsBuilder.Embedded.DependencyInjection
|
||||
}
|
||||
});
|
||||
|
||||
return builder;
|
||||
}
|
||||
builder.Services.AddUnique<IModelsBuilderDashboardProvider, NoopModelsBuilderDashboardProvider>();
|
||||
|
||||
/// <summary>
|
||||
/// Can be called if using an external models builder to remove the embedded models builder controller features
|
||||
/// </summary>
|
||||
public static IUmbracoBuilder DisableModelsBuilderControllers(this IUmbracoBuilder builder)
|
||||
{
|
||||
builder.Services.AddSingleton<DisableModelsBuilderNotificationHandler>();
|
||||
return builder;
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
@@ -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<ModelsBuilderSettings> config,
|
||||
IShortStringHelper shortStringHelper,
|
||||
LinkGenerator linkGenerator)
|
||||
IModelsBuilderDashboardProvider modelsBuilderDashboardProvider)
|
||||
{
|
||||
_config = config.Value;
|
||||
_shortStringHelper = shortStringHelper;
|
||||
_shortStringHelper = shortStringHelper;
|
||||
_linkGenerator = linkGenerator;
|
||||
_modelsBuilderDashboardProvider = modelsBuilderDashboardProvider;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -85,7 +83,7 @@ namespace Umbraco.ModelsBuilder.Embedded
|
||||
throw new ArgumentException("Invalid umbracoPlugins");
|
||||
}
|
||||
|
||||
umbracoUrls["modelsBuilderBaseUrl"] = _linkGenerator.GetUmbracoApiServiceBaseUrl<ModelsBuilderDashboardController>(controller => controller.BuildModels());
|
||||
umbracoUrls["modelsBuilderBaseUrl"] = _modelsBuilderDashboardProvider.GetUrl();
|
||||
umbracoPlugins["modelsBuilder"] = GetModelsBuilderSettings();
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user