* Update gitignore * Move csproj * Update project references * Update solutions * Update build scripts * Tests used to share editorconfig with projects in src * Fix broken tests. * Stop copying around .editorconfig merged root one with linting * csharp_style_expression_bodied -> suggestion * Move StyleCop rulesets to matching directories and update shared build properties * Remove legacy build files, update NuGet.cofig and solution files * Restore myget source * Clean up .gitignore * Update .gitignore * Move new test classes to tests after merge * Gitignore + nuget config * Move new test Co-authored-by: Ronald Barendse <ronald@barend.se>
55 lines
2.0 KiB
C#
55 lines
2.0 KiB
C#
using System.Linq;
|
|
using Microsoft.AspNetCore.Builder;
|
|
using Microsoft.Extensions.Configuration;
|
|
using Microsoft.Extensions.DependencyInjection;
|
|
using Umbraco.Cms.Core.DependencyInjection;
|
|
using Umbraco.Cms.Infrastructure.PublishedCache;
|
|
using Umbraco.Cms.Web.Common.ApplicationBuilder;
|
|
using Umbraco.TestData.Configuration;
|
|
|
|
namespace Umbraco.TestData.Extensions
|
|
{
|
|
public static class UmbracoBuilderExtensions
|
|
{
|
|
public static IUmbracoBuilder AddUmbracoTestData(this IUmbracoBuilder builder)
|
|
{
|
|
if (builder.Services.Any(x => x.ServiceType == typeof(LoadTestController)))
|
|
{
|
|
// We assume the test data project is composed if any implementations of LoadTestController exist.
|
|
return builder;
|
|
}
|
|
|
|
IConfigurationSection testDataSection = builder.Config.GetSection("Umbraco:CMS:TestData");
|
|
TestDataSettings config = testDataSection.Get<TestDataSettings>();
|
|
if (config == null || config.Enabled == false)
|
|
{
|
|
return builder;
|
|
}
|
|
|
|
builder.Services.Configure<TestDataSettings>(testDataSection);
|
|
|
|
if (config.IgnoreLocalDb)
|
|
{
|
|
builder.Services.AddSingleton(factory => new PublishedSnapshotServiceOptions
|
|
{
|
|
IgnoreLocalDb = true
|
|
});
|
|
}
|
|
|
|
builder.Services.Configure<UmbracoPipelineOptions>(options =>
|
|
options.AddFilter(new UmbracoPipelineFilter(nameof(LoadTestController))
|
|
{
|
|
Endpoints = app => app.UseEndpoints(endpoints =>
|
|
endpoints.MapControllerRoute(
|
|
"LoadTest",
|
|
"/LoadTest/{action}",
|
|
new { controller = "LoadTest", Action = "Index" }))
|
|
}));
|
|
|
|
builder.Services.AddScoped(typeof(LoadTestController));
|
|
|
|
return builder;
|
|
}
|
|
}
|
|
}
|