예제 #1
0
 public RequestManager(IDataManager dataManager,
                       IRouteMatcher routeMatcher,
                       ILogger <RequestManager> logger)
 {
     this._logger       = logger;
     this._dataManager  = dataManager;
     this._routeMatcher = routeMatcher;
 }
 public RoutingMiddleware(RequestDelegate nextDelegate
                          , ILoggerFactory loggerFactory
                          , IOptions <HttpFunctionOptions> optionsAccessor
                          , IRouteMatcher internalRouteMatcher)
 {
     next         = nextDelegate;
     log          = loggerFactory.CreateLogger <RoutingMiddleware>();
     options      = optionsAccessor.Value;
     routeMatcher = internalRouteMatcher;
 }
예제 #3
0
 public Topic(IDispatcher dispatcher, IMessageStore messageStore, IRouteMatcher routeMatcher,
              ISerializer serializer, ILogger <Topic> logger)
 {
     _dispatcher   = dispatcher;
     _messageStore = messageStore;
     _routeMatcher = routeMatcher;
     _serializer   = serializer;
     _logger       = logger;
     _queueChannel = Channel.CreateUnbounded <Guid>();
     _throttling   = new DynamicWaitThrottling();
 }
 public HttpRequestHandler(ILoggerFactory loggerFactory
                           , IHttpFunction httpFunction
                           , IOptions <HttpFunctionOptions> optionsAccessor
                           , IRouteMatcher internalRouteMatcher
                           )
 {
     log          = loggerFactory.CreateLogger <HttpRequestHandler>();
     function     = httpFunction;
     options      = optionsAccessor.Value;
     routeMatcher = internalRouteMatcher;
 }
예제 #5
0
        private static ISet <string> PrependLeadingSlash(string[] patterns, IRouteMatcher routeMatcher)
        {
            var           slashSeparator = routeMatcher.Combine("a", "a").Equals("a/a");
            ISet <string> result         = new HashSet <string>();

            foreach (var pat in patterns)
            {
                var pattern = pat;
                if (slashSeparator && !string.IsNullOrEmpty(pattern) && !pattern.StartsWith("/"))
                {
                    pattern = "/" + pattern;
                }

                result.Add(pattern);
            }

            return(result);
        }
예제 #6
0
 public void Initialize()
 {
     _controllerPathParser = new Mock <IControllerPathParser>();
     _matcher = new RouteMatcher(_controllerPathParser.Object);
 }
예제 #7
0
 private DestinationPatternsMessageCondition(ISet <string> patterns, IRouteMatcher routeMatcher)
 {
     Patterns      = patterns;
     _routeMatcher = routeMatcher;
 }
예제 #8
0
 public DestinationPatternsMessageCondition(string[] patterns, IRouteMatcher routeMatcher)
     : this(PrependLeadingSlash(patterns, routeMatcher), routeMatcher)
 {
 }
예제 #9
0
		/// <summary>
		/// Initializes a new instance of the <see cref="ControllersAgent" /> class.
		/// </summary>
		/// <param name="controllersMetaStore">The controllers meta store.</param>
		/// <param name="routeMatcher">The route matcher.</param>
		public ControllersAgent(IControllersMetaStore controllersMetaStore, IRouteMatcher routeMatcher)
		{
			_controllersMetaStore = controllersMetaStore;
			_routeMatcher = routeMatcher;
		}
예제 #10
0
        public static bool MatchRouteTemplate(this HttpMethodAttribute httpMethodAttribute, HttpContext context, IRouteMatcher routeMatcher)
        {
            if (string.IsNullOrEmpty(httpMethodAttribute.Template))
            {
                return(false);
            }

            var match = routeMatcher.Match(httpMethodAttribute.Template, context.Request.Path);

            if (match == null)
            {
                // path doesn't match route template
                return(false);
            }

            // write route data
            var routeData = context.GetRouteData();

            foreach (var item in match)
            {
                routeData.Values.Add(item.Key, item.Value);
            }

            return(true);
        }
예제 #11
0
 /// <summary>
 /// Initializes a new instance of the <see cref="ControllersAgent" /> class.
 /// </summary>
 /// <param name="controllersMetaStore">The controllers meta store.</param>
 /// <param name="routeMatcher">The route matcher.</param>
 public ControllersAgent(IControllersMetaStore controllersMetaStore, IRouteMatcher routeMatcher)
 {
     _controllersMetaStore = controllersMetaStore;
     _routeMatcher         = routeMatcher;
 }
예제 #12
0
 public RouteMatcherTests()
 {
     _routeMatcher = new RouteMatcher();
 }
예제 #13
0
 public void Initialize()
 {
     _controllerPathParser = new Mock<IControllerPathParser>();
     _matcher = new RouteMatcher(_controllerPathParser.Object);
 }
예제 #14
0
파일: IRouter.cs 프로젝트: gkbrk/TetsuWeb
 public abstract void AddRoute(IRouteMatcher route, IMiddleware middleware);