Пример #1
0
        public IControllerRouteBuilder AddController <TController>(
            string template,
            Action <IControllerBuilder <TController> > controller)
        {
            var declaration = new RouteDeclaration(template);

            services.Configure <RoutingOptions>(options =>
                                                options.Controllers.Add(typeof(TController).GetTypeInfo(), declaration));

            controller(new ControllerBuilder <TController>(services));

            return(new ControllerRouteBuilder(declaration));
        }
Пример #2
0
        public IActionRouteBuilder AddRoute <TResult>(
            string template,
            Expression <Func <TController, TResult> > expression)
        {
            var declaration = new RouteDeclaration(template);

            services.Configure <RoutingOptions>(options =>
            {
                var methodCall = RouteHelper.GetInnerMethodCallExpression(expression);

                foreach (var(info, parameter) in RouteHelper.GetRouteParameters(methodCall))
                {
                    options.Parameters.Add(info, parameter);
                }

                options.Actions.Add(methodCall.Method, declaration);
            });

            return(new ActionRouteBuilder(declaration));
        }