Esempio n. 1
0
        protected void TestInitBase()
        {
            RouteRegister        = new RouteRegister();
            RouteResolverFactory = new RegisterRouteResolverFactory(RouteRegister);
            RouteKeyFactory      = new RouteKeyFactory(RouteRegister);

            RouteResolver  = RouteResolverFactory.CreateRouteResolver(UrlHelper, RouteKeyFactory, TestUrlConfig);
            SirenConverter = CreateSirenConverter();
        }
Esempio n. 2
0
        protected void TestInitBase()
        {
            RouteRegister        = new RouteRegister();
            RouteResolverFactory = new RegisterRouteResolverFactory(RouteRegister, new HypermediaExtensionsOptions());
            RouteKeyFactory      = new RouteKeyFactory(RouteRegister);

            RouteResolver  = RouteResolverFactory.CreateRouteResolver(UrlHelper, RouteKeyFactory, TestUrlConfig);
            SirenConverter = CreateSirenConverter();
            SirenConverterNoNullProperties = CreateSirenConverter(new HypermediaConverterConfiguration {
                WriteNullProperties = false
            });
        }
Esempio n. 3
0
        /// <summary>
        /// Adds the Hypermedia Extensions.
        /// by default a Siren Formatters is added and
        /// the entry assembly is crawled for Hypermedia route attributes
        /// </summary>
        /// <param name="options">The options object of the MVC component.</param>
        /// <param name="alternateRouteRegister">If you wish to use another RoutRegister pass it here, also if you wish another assembly to be crawled.</param>
        /// <param name="alternateQueryStringBuilder">Provide an alternate QueryStringBuilder used for building URL's.</param>
        /// <param name="hypermediaUrlConfig">Configures the URL used in Hypermedia responses.</param>
        /// <param name="hypermediaConverterConfiguration">Configures the creation of Hypermedia documents.</param>
        public static void AddHypermediaExtensions(
            this MvcOptions options,
            IRouteRegister alternateRouteRegister           = null,
            IQueryStringBuilder alternateQueryStringBuilder = null,
            IHypermediaUrlConfig hypermediaUrlConfig        = null,
            IHypermediaConverterConfiguration hypermediaConverterConfiguration = null)
        {
            var routeRegister        = alternateRouteRegister ?? new AttributedRoutesRegister();
            var routeResolverFactory = new RegisterRouteResolverFactory(routeRegister);
            var routeKeyFactory      = new RouteKeyFactory(routeRegister);

            var queryStringBuilder = alternateQueryStringBuilder ?? new QueryStringBuilder();
            var hypermediaQueryLocationFormatter  = new HypermediaQueryLocationFormatter(routeResolverFactory, routeKeyFactory, queryStringBuilder, hypermediaUrlConfig);
            var hypermediaEntityLocationFormatter = new HypermediaEntityLocationFormatter(routeResolverFactory, routeKeyFactory, hypermediaUrlConfig);

            var sirenHypermediaConverterFactory = new SirenHypermediaConverterFactory(queryStringBuilder, hypermediaConverterConfiguration?.SirenConverterConfiguration);
            var sirenHypermediaFormatter        = new SirenHypermediaFormatter(routeResolverFactory, routeKeyFactory, sirenHypermediaConverterFactory, hypermediaUrlConfig);

            options.OutputFormatters.Insert(0, hypermediaQueryLocationFormatter);
            options.OutputFormatters.Insert(0, hypermediaEntityLocationFormatter);
            options.OutputFormatters.Insert(0, sirenHypermediaFormatter);
        }