// Set up application services public void ConfigureServices(IServiceCollection services) { var pageRouteTransformerConvention = new PageRouteTransformerConvention(new SlugifyParameterTransformer()); services .AddMvc() .AddRazorPagesOptions(options => { options.Conventions.AddPageRoute("/PageRouteTransformer/PageWithConfiguredRoute", "/PageRouteTransformer/NewConventionRoute/{id?}"); options.Conventions.AddFolderRouteModelConvention("/PageRouteTransformer", model => { pageRouteTransformerConvention.Apply(model); }); }) .SetCompatibilityVersion(CompatibilityVersion.Version_2_1); services.AddScoped <TestResponseGenerator>(); services.AddSingleton <IActionContextAccessor, ActionContextAccessor>(); // EndpointRoutingController is not compatible with old routing // Remove its action to avoid errors var actionDescriptorProvider = new RemoveControllerActionDescriptorProvider( new ControllerToRemove { ControllerType = typeof(EndpointRoutingController), Actions = null, // remove all }, new ControllerToRemove { ControllerType = typeof(PageRouteController), Actions = new[] { nameof(PageRouteController.AttributeRoute) } }); services.TryAddEnumerable(ServiceDescriptor.Singleton <IActionDescriptorProvider>(actionDescriptorProvider)); }
// Set up application services public void ConfigureServices(IServiceCollection services) { var pageRouteTransformerConvention = new PageRouteTransformerConvention(new SlugifyParameterTransformer()); services .AddMvc(options => { // Add route token transformer to one controller options.Conventions.Add(new ControllerRouteTokenTransformerConvention( typeof(ParameterTransformerController), new SlugifyParameterTransformer())); }) .AddRazorPagesOptions(options => { options.Conventions.AddPageRoute("/PageRouteTransformer/PageWithConfiguredRoute", "/PageRouteTransformer/NewConventionRoute/{id?}"); options.Conventions.AddFolderRouteModelConvention("/PageRouteTransformer", model => { pageRouteTransformerConvention.Apply(model); }); }) .SetCompatibilityVersion(CompatibilityVersion.Latest); services .AddRouting(options => { options.ConstraintMap["slugify"] = typeof(SlugifyParameterTransformer); }); services.AddScoped <TestResponseGenerator>(); services.AddSingleton <IActionContextAccessor, ActionContextAccessor>(); }
public void Apply_SetTransformer() { // Arrange var transformer = new TestParameterTransformer(); var convention = new PageRouteTransformerConvention(transformer); var model = new PageRouteModel(string.Empty, string.Empty); // Act convention.Apply(model); // Assert Assert.Same(transformer, model.RouteParameterTransformer); }
public void Apply_SetTransformer() { // Arrange var transformer = new TestParameterTransformer(); var convention = new PageRouteTransformerConvention(transformer); var model = new PageRouteModel(string.Empty, string.Empty); // Act convention.Apply(model); // Assert Assert.True(model.Properties.TryGetValue(typeof(IOutboundParameterTransformer), out var routeTokenTransformer)); Assert.Equal(transformer, routeTokenTransformer); }
// Set up application services public void ConfigureServices(IServiceCollection services) { var pageRouteTransformerConvention = new PageRouteTransformerConvention(new SlugifyParameterTransformer()); services .AddMvc(ConfigureMvcOptions) .AddNewtonsoftJson() .AddRazorPagesOptions(options => { options.Conventions.AddPageRoute("/PageRouteTransformer/PageWithConfiguredRoute", "/PageRouteTransformer/NewConventionRoute/{id?}"); options.Conventions.AddFolderRouteModelConvention("/PageRouteTransformer", model => { pageRouteTransformerConvention.Apply(model); }); }); ConfigureRoutingServices(services); services.AddScoped <TestResponseGenerator>(); services.AddSingleton <IActionContextAccessor, ActionContextAccessor>(); }
public void ConfigureServices(IServiceCollection services) { var pageRouteTransformerConvention = new PageRouteTransformerConvention(new SlugifyParameterTransformer()); services .AddMvc() .AddNewtonsoftJson() .AddRazorPagesOptions(options => { options.Conventions.AddFolderRouteModelConvention("/PageRouteTransformer", model => { pageRouteTransformerConvention.Apply(model); }); }); services .AddRouting(options => { options.ConstraintMap["slugify"] = typeof(SlugifyParameterTransformer); }); services.AddScoped <TestResponseGenerator>(); services.AddSingleton <IActionContextAccessor, ActionContextAccessor>(); }