Beispiel #1
0
 protected HypermediaLocationFormatter(
     IRouteResolverFactory routeResolverFactory,
     IRouteKeyFactory routeKeyFactory,
     IHypermediaUrlConfig defaultHypermediaUrlConfig)
     : base(routeResolverFactory, routeKeyFactory, defaultHypermediaUrlConfig)
 {
 }
Beispiel #2
0
 protected HypermediaOutputFormatter(
     IRouteResolverFactory routeResolverFactory,
     IRouteKeyFactory routeKeyFactory,
     IHypermediaUrlConfig defaultHypermediaUrlConfig = null)
 {
     RouteResolverFactory       = routeResolverFactory;
     RouteKeyFactory            = routeKeyFactory;
     DefaultHypermediaUrlConfig = defaultHypermediaUrlConfig ?? new HypermediaUrlConfig();
 }
Beispiel #3
0
 public HypermediaQueryLocationFormatter(
     IRouteResolverFactory routeResolverFactory,
     IRouteKeyFactory routeKeyFactory,
     IQueryStringBuilder queryStringBuilder,
     IHypermediaUrlConfig defaultHypermediaUrlConfig)
     : base(routeResolverFactory, routeKeyFactory, defaultHypermediaUrlConfig)
 {
     this.queryStringBuilder = queryStringBuilder;
 }
 public RegisterRouteResolver(IUrlHelper urlHelper, IRouteKeyFactory routeKeyFactory, IRouteRegister routeRegister, HypermediaExtensionsOptions hypermediaOptions, IHypermediaUrlConfig hypermediaUrlConfig = null)
 {
     this.RouteRegister                    = routeRegister;
     this.urlHelper                        = urlHelper;
     this.hypermediaUrlConfig              = hypermediaUrlConfig ?? new HypermediaUrlConfig();
     this.routeKeyFactory                  = routeKeyFactory;
     this.returnDefaultRouteForUnknownHto  = hypermediaOptions.ReturnDefaultRouteForUnknownHto;
     this.defaultRouteSegmentForUnknownHto = hypermediaOptions.DefaultRouteSegmentForUnknownHto;
 }
Beispiel #5
0
 public SirenHypermediaFormatter(
     IRouteResolverFactory routeResolverFactory,
     IRouteKeyFactory routeKeyFactory,
     ISirenHypermediaConverterFactory sirenHypermediaConverterFactory,
     IHypermediaUrlConfig defaultHypermediaUrlConfig)
     : base(routeResolverFactory, routeKeyFactory, defaultHypermediaUrlConfig)
 {
     this.sirenHypermediaConverterFactory = sirenHypermediaConverterFactory;
 }
Beispiel #6
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);
        }
Beispiel #7
0
 public HypermediaUrlConfig(IHypermediaUrlConfig defaultHypermediaUrlConfig, HttpRequest request)
 {
     Scheme = string.IsNullOrEmpty(defaultHypermediaUrlConfig.Scheme) ? request.Scheme   : defaultHypermediaUrlConfig.Scheme;
     Host   = defaultHypermediaUrlConfig.Host.HasValue ? defaultHypermediaUrlConfig.Host : request.Host;
 }
Beispiel #8
0
 public IHypermediaRouteResolver CreateRouteResolver(IUrlHelper urlHelper, IRouteKeyFactory routeKeyFactory, IHypermediaUrlConfig hypermediaUrlConfig = null)
 {
     return(new RegisterRouteResolver(urlHelper, routeKeyFactory, routeRegister, hypermediaOptions, hypermediaUrlConfig));
 }
Beispiel #9
0
 public HypermediaEntityLocationFormatter(IRouteResolverFactory routeResolverFactory,
                                          IRouteKeyFactory routeKeyFactory,
                                          IHypermediaUrlConfig defaultHypermediaUrlConfig)
     : base(routeResolverFactory, routeKeyFactory, defaultHypermediaUrlConfig)
 {
 }