* Removing obsoleted code from ApiMediaQueryService.cs * Removing obsoleted code from ApiRichTextMarkupParserTests.cs * Removing obsoleted code from ContentCacheRefresher.cs * Removing obsoleted code from ContentFinderByUrlAlias.cs and adjusting its tests to use the new logic * Removing obsoleted code from ContentFinderByUrl.cs & its dependencies * Removing obsoleted code from ApiRichTextMarkupParserTests.cs * Removing obsoleted code from DocumentCache.cs & its dependencies * Removing obsoleted code from MediaCache.cs & its dependencies * Removing obsoleted code from PublishedCacheBase.cs & its dependencies * Removing obsoleted code from RenderNoContentController.cs and its tests * Removing obsoleted code from UmbracoRouteValueTransformer.cs * Removing obsoleted constructors from DefaultUrlProvider.cs * Removing the RadioValueEditor.cs & RadioValueValidator.cs obsoleted classes. * Removing obsolete constructor from MultipleValueValidator.cs * Removing obsolete constructor from EmailValidator.cs * Removing obsoleted code from DataValueReferenceFactoryCollection.cs * Removing obsoleted code from ApiContentBuilderBase.cs * Fixing constructor missing attribute * Making use of the TryGet result * Fixing use of obsoleted constructor * Removing silly bookmark comment * Fixing deleted code and restructuring to use new cache * Making use of TryGetRootKeys bool, to return null if false. * Extending code to use new constructor * Updated PublishedContentQuery.cs to return empty array Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com> --------- Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
91 lines
4.1 KiB
C#
91 lines
4.1 KiB
C#
using Microsoft.AspNetCore.DataProtection;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
using Microsoft.AspNetCore.Routing;
|
|
using Microsoft.Extensions.DependencyInjection;
|
|
using Microsoft.Extensions.DependencyInjection.Extensions;
|
|
using Microsoft.Extensions.Logging;
|
|
using Microsoft.Extensions.Options;
|
|
using Umbraco.Cms.Core.Cache.PartialViewCacheInvalidators;
|
|
using Umbraco.Cms.Core.Configuration.Models;
|
|
using Umbraco.Cms.Core.DependencyInjection;
|
|
using Umbraco.Cms.Core.Routing;
|
|
using Umbraco.Cms.Core.Services;
|
|
using Umbraco.Cms.Core.Web;
|
|
using Umbraco.Cms.Infrastructure.DependencyInjection;
|
|
using Umbraco.Cms.Web.Common.Middleware;
|
|
using Umbraco.Cms.Web.Common.Routing;
|
|
using Umbraco.Cms.Web.Website.Cache.PartialViewCacheInvalidators;
|
|
using Umbraco.Cms.Web.Website.Collections;
|
|
using Umbraco.Cms.Web.Website.Models;
|
|
using Umbraco.Cms.Web.Website.Routing;
|
|
using Umbraco.Cms.Web.Website.ViewEngines;
|
|
using static Microsoft.Extensions.DependencyInjection.ServiceDescriptor;
|
|
|
|
namespace Umbraco.Extensions;
|
|
|
|
/// <summary>
|
|
/// <see cref="IUmbracoBuilder" /> extensions for umbraco front-end website
|
|
/// </summary>
|
|
public static partial class UmbracoBuilderExtensions
|
|
{
|
|
/// <summary>
|
|
/// Add services for the umbraco front-end website
|
|
/// </summary>
|
|
public static IUmbracoBuilder AddWebsite(this IUmbracoBuilder builder)
|
|
{
|
|
builder.WithCollectionBuilder<SurfaceControllerTypeCollectionBuilder>()
|
|
.Add(builder.TypeLoader.GetSurfaceControllers());
|
|
|
|
// Configure MVC startup options for custom view locations
|
|
builder.Services.ConfigureOptions<RenderRazorViewEngineOptionsSetup>();
|
|
builder.Services.ConfigureOptions<PluginRazorViewEngineOptionsSetup>();
|
|
|
|
// Wraps all existing view engines in a ProfilerViewEngine
|
|
builder.Services
|
|
.AddTransient<IConfigureOptions<MvcViewOptions>, ProfilingViewEngineWrapperMvcViewOptionsSetup>();
|
|
|
|
// TODO figure out if we need more to work on load balanced setups
|
|
builder.Services.AddDataProtection();
|
|
builder.Services.AddAntiforgery();
|
|
|
|
builder.Services.AddSingleton<UmbracoRouteValueTransformer>(x => new UmbracoRouteValueTransformer(
|
|
x.GetRequiredService<ILogger<UmbracoRouteValueTransformer>>(),
|
|
x.GetRequiredService<IUmbracoContextAccessor>(),
|
|
x.GetRequiredService<IPublishedRouter>(),
|
|
x.GetRequiredService<IRuntimeState>(),
|
|
x.GetRequiredService<IUmbracoRouteValuesFactory>(),
|
|
x.GetRequiredService<IRoutableDocumentFilter>(),
|
|
x.GetRequiredService<IDataProtectionProvider>(),
|
|
x.GetRequiredService<IControllerActionSearcher>(),
|
|
x.GetRequiredService<IPublicAccessRequestHandler>(),
|
|
x.GetRequiredService<IUmbracoVirtualPageRoute>(),
|
|
x.GetRequiredService<IOptionsMonitor<GlobalSettings>>(),
|
|
x.GetRequiredService<IDocumentUrlService>()));
|
|
builder.Services.AddSingleton<IControllerActionSearcher, ControllerActionSearcher>();
|
|
builder.Services.TryAddEnumerable(Singleton<MatcherPolicy, NotFoundSelectorPolicy>());
|
|
builder.Services.AddSingleton<IUmbracoVirtualPageRoute, UmbracoVirtualPageRoute>();
|
|
builder.Services.AddSingleton<IUmbracoRouteValuesFactory, UmbracoRouteValuesFactory>();
|
|
builder.Services.AddSingleton<IRoutableDocumentFilter, RoutableDocumentFilter>();
|
|
builder.Services.AddSingleton<MatcherPolicy, EagerMatcherPolicy>();
|
|
builder.Services.AddSingleton<MatcherPolicy, SurfaceControllerMatcherPolicy>();
|
|
|
|
builder.Services.AddSingleton<FrontEndRoutes>();
|
|
|
|
builder.Services.AddSingleton<MemberModelBuilderFactory>();
|
|
|
|
builder.Services.AddSingleton<IPublicAccessRequestHandler, PublicAccessRequestHandler>();
|
|
builder.Services.AddSingleton<BasicAuthenticationMiddleware>();
|
|
|
|
// Partial view cache invalidators
|
|
builder.Services.AddUnique<IMemberPartialViewCacheInvalidator, MemberPartialViewCacheInvalidator>();
|
|
|
|
builder
|
|
.AddDistributedCache()
|
|
.AddModelsBuilder();
|
|
|
|
builder.AddMembersIdentity();
|
|
|
|
return builder;
|
|
}
|
|
}
|