Files
mixtape/zero.Core/Routing/ZeroRoutingModule.cs
T

35 lines
1.4 KiB
C#
Raw Normal View History

2021-11-23 22:56:22 +01:00
using Microsoft.AspNetCore.Routing;
2021-11-26 12:31:33 +01:00
using Microsoft.Extensions.Configuration;
2021-11-23 22:56:22 +01:00
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.DependencyInjection.Extensions;
namespace zero.Routing;
2022-01-06 18:10:58 +01:00
internal class ZeroRoutingModule : ZeroModule
2021-11-23 22:56:22 +01:00
{
2021-11-30 14:32:10 +01:00
public override void ConfigureServices(IServiceCollection services, IConfiguration configuration)
2021-11-23 22:56:22 +01:00
{
services.AddScoped<IRequestUrlResolver, RequestUrlResolver>();
services.AddScoped<IRoutes, Routes>();
services.AddScoped<IRouteResolver, RouteResolver>();
services.AddScoped<IRedirectAutomation, RedirectAutomation>();
services.AddScoped<IPageUrlBuilder, PageUrlBuilder>();
services.AddScoped<IRouteProvider, PageRouteProvider>();
services.AddScoped<ILinks, Links>();
services.AddScoped<ILinkProvider, PageLinkProvider>();
services.AddScoped<ILinkProvider, RawLinkProvider>();
services.AddTransient<ZeroRoutesTransformer>();
2021-11-23 22:56:22 +01:00
services.TryAddEnumerable(ServiceDescriptor.Singleton<MatcherPolicy, NotFoundSelectorPolicy>());
services.AddScoped<IInterceptor, ZeroEntityRouteInterceptor>();
2021-11-30 14:32:10 +01:00
services.AddOptions<RoutingOptions>().Bind(configuration.GetSection("Zero:Routing"));
2021-11-26 12:31:33 +01:00
2021-11-23 22:56:22 +01:00
services.Configure<ZeroOptions>(opts =>
{
RavenOptions raven = opts.For<RavenOptions>();
raven.Indexes.Add<RouteRedirects_ByUrl>();
raven.Indexes.Add<Routes_ByDependencies>();
raven.Indexes.Add<Routes_ForResolver>();
});
}
}