Files
Umbraco-CMS/tests/Umbraco.TestData/Extensions/UmbracoBuilderExtensions.cs

66 lines
2.1 KiB
C#
Raw Normal View History

2021-07-26 09:32:08 +02:00
using Microsoft.AspNetCore.Builder;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Umbraco.Cms.Core.DependencyInjection;
using Umbraco.Cms.Web.Common.ApplicationBuilder;
using Umbraco.Cms.Web.Website.Collections;
2021-07-26 09:32:08 +02:00
using Umbraco.TestData.Configuration;
namespace Umbraco.TestData.Extensions;
public static class UmbracoBuilderExtensions
2021-07-26 09:32:08 +02:00
{
public static IUmbracoBuilder AddUmbracoLoadTest(this IUmbracoBuilder builder)
2021-07-26 09:32:08 +02:00
{
if (builder.Services.Any(x => x.ServiceType == typeof(LoadTestController)))
2021-07-26 09:32:08 +02:00
{
return builder;
}
2021-07-26 09:32:08 +02:00
var testDataSection = builder.Config.GetSection("Umbraco:CMS:TestData");
var config = testDataSection.Get<TestDataSettings>();
if (config == null || config.Enabled == false)
{
return builder;
}
builder.Services.Configure<TestDataSettings>(testDataSection);
2021-07-26 09:32:08 +02:00
builder.Services.Configure<UmbracoPipelineOptions>(options =>
options.AddFilter(new UmbracoPipelineFilter(nameof(LoadTestController))
2021-07-26 09:32:08 +02:00
{
Endpoints = app => app.UseEndpoints(endpoints =>
endpoints.MapControllerRoute(
"LoadTest",
"/LoadTest/{action}",
new { controller = "LoadTest", Action = "Index" }))
}));
2021-07-26 09:32:08 +02:00
builder.Services.AddScoped(typeof(LoadTestController));
return builder;
2021-07-26 09:32:08 +02:00
}
public static IUmbracoBuilder AddUmbracoTestData(this IUmbracoBuilder builder)
{
if (builder.Services.Any(x => x.ServiceType == typeof(UmbracoTestDataController)))
{
return builder;
}
var testDataSection = builder.Config.GetSection("Umbraco:CMS:TestData");
var config = testDataSection.Get<TestDataSettings>();
if (config == null || config.Enabled == false)
{
return builder;
}
builder.Services.Configure<TestDataSettings>(testDataSection);
builder.WithCollectionBuilder<SurfaceControllerTypeCollectionBuilder>()
.Add<UmbracoTestDataController>();
return builder;
}
2021-07-26 09:32:08 +02:00
}