Exemple #1
0
        // 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>();
        }
Exemple #3
0
        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);
        }
Exemple #5
0
    // 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>();
    }
Exemple #6
0
    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>();
    }
        public static IServiceCollection AddConfiguredMvc(this IServiceCollection services)
        {
            var parameterTransformer = new SlugifyParameterTransformer();

            IMvcBuilder mvc = services.AddMvc(options =>
            {
                var convention = new RouteTokenTransformerConvention(parameterTransformer);
                options.Conventions.Add(convention);
            });

            mvc.AddRazorPagesOptions(options =>
            {
                var convention = new PageRouteTransformerConvention(parameterTransformer);
                options.Conventions.Add(convention);
            });

            mvc.AddViewLocalization(LanguageViewLocationExpanderFormat.Suffix);
            mvc.AddDataAnnotationsLocalization(options =>
            {
                options.DataAnnotationLocalizerProvider = (type, factory) => factory.Create(typeof(SharedResources));
            });

            return(services);
        }