public RegisterRouteResolver(IUrlHelper urlHelper, IRouteKeyFactory routeKeyFactory, IRouteRegister routeRegister, HypermediaUrlConfig hypermediaUrlConfig = null)
 {
     this.RouteRegister       = routeRegister;
     this.urlHelper           = urlHelper;
     this.hypermediaUrlConfig = hypermediaUrlConfig ?? new HypermediaUrlConfig();
     this.routeKeyFactory     = routeKeyFactory;
 }
 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;
 }
Esempio n. 3
0
        public StyxHost(Uri location, IHostConfiguration hostConfiguration = null, ILogger logger = null, IBootstrapper bootstrapper = null)
        {
            if (location == null)
                throw new ArgumentNullException("location");

            hostConfiguration = hostConfiguration ?? new HostConfiguration();
            hostConfiguration.Port = location.Port;
            hostConfiguration.Scheme = location.Scheme;
            logger = logger ?? new DebuggerLogger();
            bootstrapper = bootstrapper ?? new TinyIoCBootstrapper(hostConfiguration, logger);
            _hostConfiguration = bootstrapper.HostConfiguration;
            _logger = bootstrapper.Logger;
            _engine = bootstrapper.Engine;
            _routeRegister = bootstrapper.RouteRegister;
            _listenerSocket = bootstrapper.SocketListener;
        }
Esempio n. 4
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);
        }
 public RouteKeyFactory(IRouteRegister routeRegister)
 {
     this.routeRegister = routeRegister;
 }
Esempio n. 6
0
 public RegisterRouteResolverFactory(IRouteRegister routeRegister, HypermediaExtensionsOptions hypermediaOptions)
 {
     this.routeRegister     = routeRegister;
     this.hypermediaOptions = hypermediaOptions;
 }
 public RankedRouteResolver(IRouteRegister routeRegister, IEnumerable<IRankedRoutePredicate> rankedRoutePredicates, ILogger logger)
 {
     _routeRegister = routeRegister;
     _rankedRoutePredicates = rankedRoutePredicates;
     _logger = logger;
 }
 public RegisterRouteResolverFactory(IRouteRegister routeRegister)
 {
     this.routeRegister = routeRegister;
 }