Esempio n. 1
0
        /// <summary>
        /// Gets a collection of HttpMethods supported by the action. Called when initializing the <see cref="ApiExplorer.ApiDescriptions"/>.
        /// </summary>
        /// <param name="route">The route.</param>
        /// <param name="actionDescriptor">The action descriptor.</param>
        /// <returns>A collection of HttpMethods supported by the action.</returns>
        public virtual Collection <HttpMethod> GetHttpMethodsSupportedByAction(IHttpRoute route, HttpActionDescriptor actionDescriptor)
        {
            if (route == null)
            {
                throw Error.ArgumentNull("route");
            }

            if (actionDescriptor == null)
            {
                throw Error.ArgumentNull("actionDescriptor");
            }

            IList <HttpMethod>   supportedMethods     = new List <HttpMethod>();
            IList <HttpMethod>   actionHttpMethods    = actionDescriptor.SupportedHttpMethods;
            HttpMethodConstraint httpMethodConstraint = route.Constraints.Values.FirstOrDefault(c => typeof(HttpMethodConstraint).IsAssignableFrom(c.GetType())) as HttpMethodConstraint;

            if (httpMethodConstraint == null)
            {
                supportedMethods = actionHttpMethods;
            }
            else
            {
                supportedMethods = httpMethodConstraint.AllowedMethods.Intersect(actionHttpMethods).ToList();
            }

            return(new Collection <HttpMethod>(supportedMethods));
        }
Esempio n. 2
0
        public IEnumerable <UriResolutionResult> Get()
        {
            string               routeTemplate = "movies/{genre}/{title}/{id}";
            IHttpRoute           route         = new HttpRoute(routeTemplate);
            IHttpRouteConstraint contraint     = new HttpMethodConstraint(HttpMethod.Post);

            route.Constraints.Add("httpMethod", contraint);

            string             requestUri = "http://www.artech.com/api/movies/romance/titanic/001";
            HttpRequestMessage request1   = new HttpRequestMessage(HttpMethod.Get, requestUri);
            HttpRequestMessage request2   = new HttpRequestMessage(HttpMethod.Post, requestUri);

            string root1 = "/";
            string root2 = "/api/";

            IHttpRouteData routeData1 = route.GetRouteData(root1, request1);
            IHttpRouteData routeData2 = route.GetRouteData(root1, request2);
            IHttpRouteData routeData3 = route.GetRouteData(root2, request1);
            IHttpRouteData routeData4 = route.GetRouteData(root2, request2);

            yield return(new UriResolutionResult(root1, "GET", routeData1 != null));

            yield return(new UriResolutionResult(root1, "POST", routeData2 != null));

            yield return(new UriResolutionResult(root2, "GET", routeData3 != null));

            yield return(new UriResolutionResult(root2, "POST", routeData4 != null));
        }
Esempio n. 3
0
        void RegisterRoutes(RouteCollection routes)
        {
            string[]             allowedMethods    = { "GET", "POST" };
            HttpMethodConstraint methodConstraints = new HttpMethodConstraint(allowedMethods);
            RouteValueDictionary vd = new RouteValueDictionary {
                { "httpMethod", methodConstraints }
            };

            string[]             allowedGET         = { "GET" };
            HttpMethodConstraint methodConstraints3 = new HttpMethodConstraint(allowedGET);
            RouteValueDictionary vdGET = new RouteValueDictionary {
                { "httpMethod", methodConstraints3 }
            };


            /* Métodos GET
             * =============================*/

            /* CAS - Central Authentication Service
             * -----------------------------*/
            routes.MapPageRoute("cas-default", "cas", "~/_cas/default.aspx", true, null, vd);   //Aceita GET e POST
            routes.MapPageRoute("cas-login", "cas/login", "~/_cas/login.aspx", true, null, vd); //Aceita GET e POST
            routes.MapPageRoute("cas-logout", "cas/logout", "~/_cas/logout.aspx", true, null, vdGET);
            routes.MapPageRoute("cas-validate", "cas/validate", "~/_cas/validate.aspx", true, null, vdGET);
            routes.MapPageRoute("cas-serviceValidate", "cas/serviceValidate", "~/_cas/service_validate.aspx", true, null, vdGET);
            routes.MapPageRoute("cas-proxyValidate", "cas/proxyValidate", "~/_cas/proxy_validate.aspx", true, null, vdGET);
            routes.MapPageRoute("cas-proxy", "cas/proxy", "~/_cas/proxy.aspx", true, null, vdGET);
            routes.MapPageRoute("cas-recover", "cas/recover", "~/_cas/recover.aspx", true, null, vd);
            routes.MapPageRoute("cas-recover1", "cas/recover/step1", "~/_cas/recover_st1.aspx", true, null, vd);
            routes.MapPageRoute("cas-recover2", "cas/recover/step2", "~/_cas/recover_st2.aspx", true, null, vd);
            routes.MapPageRoute("cas-recover3", "cas/recover/step3", "~/_cas/recover_st3.aspx", true, null, vd);
            routes.MapPageRoute("cas-recover4", "cas/passwordchanged", "~/_cas/passwordchanged.aspx", true, null, vd);
            routes.MapPageRoute("cas-passwordstrength", "cas/passwordstrength", "~/_cas/passwordstrength.aspx", true, null, vd);
            routes.MapPageRoute("cas-changepassword", "cas/changepassword", "~/_cas/changepassword.aspx", true, null, vd);
        }
Esempio n. 4
0
        // GET: GetRouteData解决针对入栈请求的校验
        public IEnumerable <UrlResolutionResult> Get()
        {
            string     routeTemplate = "movies/{genre}/{title}/{id}";
            IHttpRoute route         = new HttpRoute(routeTemplate);
            var        constraint    = new HttpMethodConstraint(HttpMethod.Post);

            route.Constraints.Add("HttpMethod", constraint);

            string requestUri = "http://www.artech.com/api/movies/romance/titanic/001";
            //创建被检验的请求,具有相同的请求地址
            //采用Http方法不相同
            var request1 = new HttpRequestMessage(HttpMethod.Get, requestUri);
            var request2 = new HttpRequestMessage(HttpMethod.Post, requestUri);

            //不同虚拟根路径对HttpRoute的影响
            string root1 = "/";     //不可达
            string root2 = "/api/"; //可达

            IHttpRouteData routeData1 = route.GetRouteData(root1, request1);
            IHttpRouteData routeData2 = route.GetRouteData(root1, request1);
            IHttpRouteData routeData3 = route.GetRouteData(root2, request2);
            IHttpRouteData routeData4 = route.GetRouteData(root2, request2);


            yield return(new UrlResolutionResult(root1, "Get", routeData1 != null));

            yield return(new UrlResolutionResult(root1, "Post", routeData2 != null));

            yield return(new UrlResolutionResult(root2, "Get", routeData3 != null));

            yield return(new UrlResolutionResult(root2, "Post", routeData4 != null));
        }
        /// <summary>
        /// Gets a collection of HttpMethods supported by the action. Called when initializing the <see cref="ApiExplorer.ApiDescriptions"/>.
        /// </summary>
        /// <param name="route">The route.</param>
        /// <param name="actionDescriptor">The action descriptor.</param>
        /// <returns>A collection of HttpMethods supported by the action.</returns>
        public virtual IList <HttpMethod> GetHttpMethodsSupportedByAction(IHttpRoute route, HttpActionDescriptor actionDescriptor)
        {
            if (route == null)
            {
                throw Error.ArgumentNull("route");
            }

            if (actionDescriptor == null)
            {
                throw Error.ArgumentNull("actionDescriptor");
            }

            bool isActionVariableSpecified            = _actionVariableRegex.IsMatch(route.RouteTemplate) || route.Defaults.ContainsKey(ActionVariableName);
            IList <HttpMethod>   supportedMethods     = new List <HttpMethod>();
            IList <HttpMethod>   actionHttpMethods    = actionDescriptor.SupportedHttpMethods;
            HttpMethodConstraint httpMethodConstraint = route.Constraints.Values.FirstOrDefault(c => typeof(HttpMethodConstraint).IsAssignableFrom(c.GetType())) as HttpMethodConstraint;

            if (httpMethodConstraint == null)
            {
                supportedMethods = actionHttpMethods;
            }
            else
            {
                supportedMethods = httpMethodConstraint.AllowedMethods.Intersect(actionHttpMethods).ToList();
            }

            return(supportedMethods);
        }
Esempio n. 6
0
        public void add_constraint_to_route_with_model()
        {
            var url             = new RouteDefinition <SampleViewModel>("my/sample");
            var constraintToAdd = new HttpMethodConstraint("POST");

            url.AddRouteConstraint("httpMethod", constraintToAdd);
            Route route = url.ToRoute();

            route.Constraints["httpMethod"].ShouldEqual(constraintToAdd);
        }
        private static string[] GetHttpOperations(IHttpRoute httpRoute)
        {
            HttpMethodConstraint httpMethodConstraint = null;

            if (httpRoute.Constraints.TryGetValue(ScriptConstants.HttpMethodConstraintName, out httpMethodConstraint) &&
                httpMethodConstraint.AllowedMethods != null)
            {
                return(httpMethodConstraint.AllowedMethods.Select(p => p.Method.ToLowerInvariant()).ToArray <string>());
            }
            return(ScriptConstants.HttpMethods.ToArray());
        }
        private static ActionConstraintContext CreateActionConstraintContext(HttpMethodConstraint constraint)
        {
            var context = new ActionConstraintContext();

            var actionSelectorCandidate = new ActionSelectorCandidate(new ActionDescriptor(), new List<IActionConstraint> { constraint });

            context.Candidates = new List<ActionSelectorCandidate> { actionSelectorCandidate };
            context.CurrentCandidate = context.Candidates[0];

            return context;
        }
        public static void RegisterReviewAvatarsRoute(this RouteCollection routes)
        {
            var route = new Route("review-avatars/get", new AvatarRouteRouteHandler());

            string[] allowedMethods    = { "GET" };
            var      methodConstraints = new HttpMethodConstraint(allowedMethods);

            route.Constraints = new RouteValueDictionary {
                { "httpMethod", methodConstraints }
            };
            routes.Add(route);
        }
Esempio n. 10
0
        public void add_constraint_to_route_with_model()
        {
            var parent = new RouteDefinition("my/sample");

            parent.Input = new RouteInput <SampleViewModel>(parent);
            var constraintToAdd = new HttpMethodConstraint("POST");

            parent.AddRouteConstraint("httpMethod", constraintToAdd);
            Route route = parent.ToRoute();

            route.Constraints["httpMethod"].ShouldEqual(constraintToAdd);
        }
Esempio n. 11
0
        public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

            // configure HttpHandler for serving static images
            HttpMethodConstraint GetFileMethodConstraints = new HttpMethodConstraint(new string[] { "GET" });
            Route GetFileRoute = new Route(
                url: "Files/{id}/{filename}",
                routeHandler: new DobImageRouteHandler(),
                defaults: null,
                constraints: new RouteValueDictionary {
                { "httpMethod", GetFileMethodConstraints }
            }
                );

            routes.Add("GetFileRoute", GetFileRoute);


            //routes.MapRoute(
            //    name: "Get File",
            //    url: "Files/{id}/{filename}",
            //    defaults: new { controller = "Files", action = "Find" },
            //    constraints: new { httpMethod = new HttpMethodConstraint("GET") }
            //);

            routes.MapRoute(
                name: "Delete File",
                url: "Files/{id}/{filename}",
                defaults: new { controller = "Files", action = "Delete" },
                constraints: new { httpMethod = new HttpMethodConstraint("DELETE") }
                );

            routes.MapRoute(
                name: "Get Json File List",
                url: "Files",
                defaults: new { controller = "Files", action = "List" },
                constraints: new { httpMethod = new HttpMethodConstraint("GET") }
                );

            routes.MapRoute(
                name: "Post Files",
                url: "Files",
                defaults: new { controller = "Files", action = "Uploads" },
                constraints: new { httpMethod = new HttpMethodConstraint("POST") }
                );


            routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{id}",
                defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
                );
        }
Esempio n. 12
0
        /// <summary>
        /// Registers the HTTP routes.
        /// </summary>
        public static void RegisterRoutes(HttpRouteCollection httpRouteCollection)
        {
            // Build the HTTP method contraint.
            HttpMethodConstraint httpMethodConstraint = new HttpMethodConstraint(HttpMethod.Get, HttpMethod.Post);

            // Map the HTTP route.
            httpRouteCollection.MapHttpRoute(
                name: "api/scheduling/sessions",
                routeTemplate: "api/scheduling/sessions",
                defaults: new { controller = "Sessions" },
                constraints: new { httpMethods = httpMethodConstraint });
        }
        public void HttpMethodConstraint_Accept_CaseInsensitive(IEnumerable<string> httpMethods, string expectedMethod)
        {
            // Arrange
            var constraint = new HttpMethodConstraint(httpMethods);
            var context = CreateActionConstraintContext(constraint);
            context.RouteContext = CreateRouteContext(expectedMethod);

            // Act
            var result = constraint.Accept(context);

            // Assert
            Assert.True(result, "Request should have been accepted.");
        }
        public static void RegisterImageProxyRoute(this RouteCollection routes)
        {
            var routeData = new RouteValueDictionary {
                { "Controller", nameof(ReviewAvatarsHandler) }
            };
            var route = new Route(ImageProxyRoute, routeData, new ImageProxyRouteHandler());

            string[] allowedMethods    = { "GET" };
            var      methodConstraints = new HttpMethodConstraint(allowedMethods);

            route.Constraints = new RouteValueDictionary {
                { "httpMethod", methodConstraints }
            };
            routes.Add(route);
        }
        public void GenerateSwaggerDocument_AddsParameterInfoUsingKnownAndUnknownHttpRouteConstraint()
        {
            // Arrange
            string apiEndpoint   = "/api/{id}/{category}/HttpTriggerCSharp1";
            string routeTemplate = apiEndpoint.Substring(1);

            HttpMethod[] allowedMethods       = { HttpMethod.Get, HttpMethod.Post };
            var          httpMethodConstraint = new HttpMethodConstraint(allowedMethods);

            HttpRouteValueDictionary constraints = new HttpRouteValueDictionary();

            constraints.Add(ScriptConstants.HttpMethodConstraintName, httpMethodConstraint);
            constraints.Add("id", new IntRouteConstraint());

            var httpRoute = new HttpRoute(routeTemplate, null, constraints);
            Dictionary <IHttpRoute, FunctionDescriptor> httpFunctions = new Dictionary <IHttpRoute, FunctionDescriptor>()
            {
                {
                    httpRoute,
                    new FunctionDescriptor("HttpTriggerCSharp1", null, new FunctionMetadata(), null, null, null, null)
                }
            };
            var swaggerDocumentManager = new SwaggerDocumentManager(_scriptConfig);

            // Act
            var generatedDocument = swaggerDocumentManager.GenerateSwaggerDocument(httpFunctions);

            // Assert
            var swaggerdoc = generatedDocument.ToObject <SwaggerDocument>();

            Assert.True(swaggerdoc.ApiEndpoints.ContainsKey(apiEndpoint));
            Assert.Equal(swaggerdoc.ApiEndpoints.Keys.Count, 1);

            var httpOperations = swaggerdoc.ApiEndpoints[apiEndpoint];

            Assert.Equal(httpOperations.Count, 2);

            foreach (var httpMethod in httpMethodConstraint.AllowedMethods)
            {
                Assert.True(httpOperations.ContainsKey(httpMethod.Method.ToString().ToLowerInvariant()));
                Assert.NotNull(httpOperations[httpMethod.Method.ToString().ToLowerInvariant()]);

                var inputParams = httpOperations[httpMethod.Method.ToString().ToLowerInvariant()].InputParameters.ToList();
                Assert.Equal(inputParams.Count, 2);
                Assert.Equal(inputParams[0].DataType, SwaggerDataType.Integer.ToString().ToLowerInvariant());
                Assert.Equal(inputParams[1].DataType, SwaggerDataType.String.ToString().ToLowerInvariant());
            }
        }
        public void UrlGeneration()
        {
            var c   = new HttpMethodConstraint(new string[] { "GET" }) as IRouteConstraint;
            var req = new HttpContextStub("", "", "HEAD");

            var values = new RouteValueDictionary()
            {
                { "httpMethod", "GET" }
            };

            Assert.IsTrue(c.Match(req, new Route(null, null), "httpMethod", values, RouteDirection.UrlGeneration), "#1");

            values = new RouteValueDictionary()
            {
                { "httpMethod", "POST" }
            };
            Assert.IsFalse(c.Match(req, new Route(null, null), "httpMethod", values, RouteDirection.UrlGeneration), "#2");
        }
Esempio n. 17
0
        private void RegisterAddPinPost(RouteCollection routeCollection, ExternalReviewOptions externalReviewOptions)
        {
            var routeValues = new RouteValueDictionary();

            routeValues.Add("controller", "PageEdit");
            routeValues.Add("action", "AddPin");

            var route = new Route(externalReviewOptions.ReviewsUrl + "/AddPin", routeValues, new MvcRouteHandler());

            string[] allowedMethods    = { "POST" };
            var      methodConstraints = new HttpMethodConstraint(allowedMethods);

            route.Constraints = new RouteValueDictionary {
                { "httpMethod", methodConstraints }
            };

            routeCollection.Add(route);
        }
        public void GenerateSwaggerDocument_CreatesSwaggerDocument_WithSelectHttpMethods()
        {
            // Arrange
            string apiEndpoint   = "/api/HttpTriggerCSharp1";
            string routeTemplate = apiEndpoint.Substring(1);

            HttpMethod[] allowedMethods       = { HttpMethod.Get, HttpMethod.Post };
            var          httpMethodConstraint = new HttpMethodConstraint(allowedMethods);

            HttpRouteValueDictionary constraints = new HttpRouteValueDictionary();

            constraints.Add(ScriptConstants.HttpMethodConstraintName, httpMethodConstraint);

            var httpRoute = new HttpRoute(routeTemplate, null, constraints);

            Dictionary <IHttpRoute, FunctionDescriptor> httpFunctions = new Dictionary <IHttpRoute, FunctionDescriptor>()
            {
                {
                    httpRoute,
                    new FunctionDescriptor("HttpTriggerCSharp1", null, new FunctionMetadata(), null, null, null, null)
                }
            };

            var swaggerDocumentManager = new SwaggerDocumentManager(_scriptConfig);

            // Act
            var generatedDocument = swaggerDocumentManager.GenerateSwaggerDocument(httpFunctions);

            // Assert
            var swaggerdoc = generatedDocument.ToObject <SwaggerDocument>();

            Assert.True(swaggerdoc.ApiEndpoints.ContainsKey(apiEndpoint));
            Assert.Equal(swaggerdoc.ApiEndpoints.Keys.Count, 1);

            var httpOperations = swaggerdoc.ApiEndpoints[apiEndpoint];

            Assert.Equal(httpOperations.Count, 2);
            foreach (var httpMethod in httpMethodConstraint.AllowedMethods)
            {
                Assert.True(httpOperations.ContainsKey(httpMethod.Method.ToString().ToLowerInvariant()));
                Assert.NotNull(httpOperations[httpMethod.Method.ToString().ToLowerInvariant()]);
            }
        }
Esempio n. 19
0
        private static void RegisterEditPageGet(RouteRegistrationEventArgs e, ExternalReviewOptions externalReviewOptions)
        {
            var routeValues = new RouteValueDictionary();

            routeValues.Add("controller", "PageEdit");
            routeValues.Add("action", "Index");
            routeValues.Add("token", " UrlParameter.Optional");

            var route = new Route(externalReviewOptions.ReviewsUrl + "/{token}", routeValues, new MvcRouteHandler());

            string[] allowedMethods    = { "GET" };
            var      methodConstraints = new HttpMethodConstraint(allowedMethods);

            route.Constraints = new RouteValueDictionary {
                { "httpMethod", methodConstraints }
            };

            e.Routes.Add(route);
        }
Esempio n. 20
0
        static void ApplyConstraints(IEnumerable <string> args, RouteBuilderInfo info, IDictionary <string, object> constraints)
        {
            var httpMethod = info.ActionCall.Method.Name.StartsWith("post",
                                                                    StringComparison.OrdinalIgnoreCase)
                                ? "POST"
                                : "GET";

            constraints["httpMethod"] = new HttpMethodConstraint(httpMethod);
            foreach (var arg in args)
            {
                var param = info.ActionCall.GetActionArgument(arg);
                if (param != null)
                {
                    var constraint = info.GetConstraint(param.ParameterType);
                    if (constraint != null)
                    {
                        constraints[arg] = constraint;
                    }
                }
            }
        }
        private void Global_RoutesRegistrating(object sender, RouteRegistrationEventArgs e)
        {
            var routeValues = new RouteValueDictionary();

            routeValues.Add("controller", "FolderDownload");
            routeValues.Add("action", "Index");
            routeValues.Add("contentFolderIds", UrlParameter.Optional);

            const string baseUrl = "cms-content-folder-download";

            var route = new Route(baseUrl + "/{contentFolderIds}", routeValues, new MvcRouteHandler());

            string[] allowedMethods    = { "GET" };
            var      methodConstraints = new HttpMethodConstraint(allowedMethods);

            route.Constraints = new RouteValueDictionary {
                { "httpMethod", methodConstraints }
            };

            e.Routes.Add(route);
        }
        private void RegisterEditableActionPost(RouteCollection routeCollection, ExternalReviewOptions externalReviewOptions, string method)
        {
            if (!externalReviewOptions.EditableLinksEnabled)
            {
                return;
            }
            var routeValues = new RouteValueDictionary();

            routeValues.Add("controller", "PageEdit");
            routeValues.Add("action", method);

            var route = new Route($"{externalReviewOptions.ReviewsUrl}/{method}", routeValues, new MvcRouteHandler());

            string[] allowedMethods    = { "POST" };
            var      methodConstraints = new HttpMethodConstraint(allowedMethods);

            route.Constraints = new RouteValueDictionary {
                { "httpMethod", methodConstraints }
            };

            routeCollection.Add(route);
        }
        private void RegisterSubmitLoginPage(RouteCollection routeCollection, ExternalReviewOptions options)
        {
            if (!options.PinCodeSecurity.Enabled)
            {
                return;
            }
            var routeValues = new RouteValueDictionary();

            routeValues.Add("controller", options.PinCodeSecurity.ExternalReviewLoginUrl);
            routeValues.Add("action", "Submit");

            var route = new Route("ExternalReviewLogin/Submit", routeValues, new MvcRouteHandler());

            string[] allowedMethods    = { "POST" };
            var      methodConstraints = new HttpMethodConstraint(allowedMethods);

            route.Constraints = new RouteValueDictionary {
                { "httpMethod", methodConstraints }
            };

            routeCollection.Add(route);
        }
Esempio n. 24
0
        private static void registerGroupRoutes(RouteCollection routes_)
        {
            routes_.MapRoute(
                //"GroupsAndItems",
                "Groups",
                "Groups",
                new { controller = "Group", action = "List" }
                );
            routes_.MapRoute(
                "ToGroupCreateCard",
                "Groups/Create/IdParent={idParent_}",
                new { controller = "Group", action = "CreateGroupCard" }
                );
            routes_.MapRoute("CreateNewGroup",
                             "Groups/Create/Name={name_}/IdParent={idParent_}",
                             new { controller = "Group", action = "CreateNewGroup" }
                             );
            routes_.MapRoute("CreateNewGroup2",
                             "Groups/Create/Name={name_}",
                             new { controller = "Group", action = "CreateNewGroup" }
                             );

            routes_.MapRoute("EditGroup1",
                             "Groups/Edit/{id_}/Name={name_}/IdParent={idParent_}",
                             new { controller = "Group", action = "EditGroupCard" }
                             );
            routes_.MapRoute("EditGroup2",
                             "Groups/Edit/{id_}/Name={name_}/IdParent=null",
                             new { controller = "Group", action = "EditGroupCard" }
                             );
            routes_.MapRoute("EditGroup3",
                             "Groups/Edit/{id_}/Name={name_}",
                             new { controller = "Group", action = "ChangeGroupName" }
                             );



            string[] allowedMethods    = { "GET", "DELETE" };
            var      methodConstraints = new HttpMethodConstraint(allowedMethods);
            var      cMethodGet        = new HttpMethodConstraint("GET");
            var      cMethodDelete     = new HttpMethodConstraint("POST");

            routes_.MapRoute("DeleteGroupById", "Groups/Delete/{gId_}",
                             new
            {
                controller = "Group",
                action     = "DeleteGroup",
                httpMethod = cMethodGet
                             //httpMethod = methodConstraints
            });

            routes_.MapRoute("DeleteCurrentGroup", "Groups/Delete",
                             new
            {
                controller = "Group",
                action     = "DeleteGroup",
                httpMethod = cMethodDelete
            }
                             );

            routes_.MapRoute(
                name: "GroupEdit",
                url: "Groups/Edit/{gId_}",
                defaults: new { controller = "Group", action = "EditGroup" }
                );
        }
        public void GenerateSwaggerDocument_CreatesBasicSwaggerDocument()
        {
            string apiEndpoint   = "/api/HttpTriggerCSharp1";
            string routeTemplate = apiEndpoint.Substring(1);

            HttpMethod[] allowedMethods       = { HttpMethod.Get };
            var          httpMethodConstraint = new HttpMethodConstraint(allowedMethods);

            HttpRouteValueDictionary constraints = new HttpRouteValueDictionary();

            constraints.Add(ScriptConstants.HttpMethodConstraintName, httpMethodConstraint);

            var httpRoute = new HttpRoute(routeTemplate, null, constraints);

            Dictionary <IHttpRoute, FunctionDescriptor> httpFunctions = new Dictionary <IHttpRoute, FunctionDescriptor>()
            {
                {
                    httpRoute,
                    new FunctionDescriptor("HttpTriggerCSharp1", null, new FunctionMetadata(), null, null, null, null)
                }
            };

            // Act
            var swaggerDocumentManager = new SwaggerDocumentManager(_scriptConfig);

            var generatedDocument = swaggerDocumentManager.GenerateSwaggerDocument(httpFunctions);

            string hostName = Environment.GetEnvironmentVariable(EnvironmentSettingNames.AzureWebsiteHostName);

            if (hostName == null)
            {
                generatedDocument["info"]["title"] = string.Empty;
                generatedDocument["host"]          = string.Empty;
            }

            string expectedSwagger = @"
{
    'swagger': '2.0',
    'info': {
        'title': 'localhost',
        'version': '1.0.0'
    },
    'host': 'localhost',
    'basePath': '/',
    'schemes': [
        'https',
        'http'
    ],
    'paths': {
        '/api/HttpTriggerCSharp1': {
            'get': {
                'operationId': '/api/HttpTriggerCSharp1/get',
                'produces': [],
                'consumes': [],
                'parameters': [],
                'description': 'Replace with Operation Object #http://swagger.io/specification/#operationObject',
                'responses': {
                    '200': {
                        'description': 'Success operation'
                    }
                },
                'security': [
                    {
                        'apikeyQuery': []
    }
                ]
            }
        }
    },
    'definitions': {},
    'securityDefinitions': {
        'apikeyQuery': {
            'type': 'apiKey',
            'name': 'code',
            'in': 'query'
        }
    }
}".Replace("localhost", hostName);

            expectedSwagger = JObject.Parse(expectedSwagger).ToString(Formatting.None);
            Assert.Equal(expectedSwagger, generatedDocument.ToString(Formatting.None));
        }
Esempio n. 26
0
        void RegisterRoutes(RouteCollection routes)
        {
            string[]             allowedMethods    = { "GET", "POST" };
            HttpMethodConstraint methodConstraints = new HttpMethodConstraint(allowedMethods);
            RouteValueDictionary vd = new RouteValueDictionary {
                { "httpMethod", methodConstraints }
            };

            string[]             allowedPOST        = { "POST" };
            HttpMethodConstraint methodConstraints2 = new HttpMethodConstraint(allowedPOST);
            RouteValueDictionary vdPOST             = new RouteValueDictionary {
                { "httpMethod", methodConstraints2 }
            };

            string[]             allowedGET         = { "GET" };
            HttpMethodConstraint methodConstraints3 = new HttpMethodConstraint(allowedGET);
            RouteValueDictionary vdGET = new RouteValueDictionary {
                { "httpMethod", methodConstraints3 }
            };


            /* Métodos GET
             * =============================*/

            /* CAS - Central Authentication Service
             * -----------------------------*/
            /*
             * routes.MapPageRoute("cas-login", "cas/login", "~/_cas/login.aspx", true, null, vd); //Aceita GET e POST
             * routes.MapPageRoute("cas-logout", "cas/logout", "~/_cas/logout.aspx", true, null, vdGET);
             * routes.MapPageRoute("cas-validate", "cas/validate", "~/_cas/validate.aspx", true, null, vdGET);
             * routes.MapPageRoute("cas-serviceValidate", "cas/serviceValidate", "~/_cas/service_validate.aspx", true, null, vdGET);
             * routes.MapPageRoute("cas-proxyValidate", "cas/proxyValidate", "~/_cas/proxy_validate.aspx", true, null, vdGET);
             * routes.MapPageRoute("cas-proxy", "cas/proxy", "~/_cas/proxy.aspx", true, null, vdGET);
             * routes.MapPageRoute("cas-recover", "cas/recover", "~/_cas/recover.aspx", true, null, vd);
             * routes.MapPageRoute("cas-recover1", "cas/recover/step1", "~/_cas/recover_st1.aspx", true, null, vd);
             * routes.MapPageRoute("cas-recover2", "cas/recover/step2", "~/_cas/recover_st2.aspx", true, null, vd);
             * routes.MapPageRoute("cas-recover3", "cas/recover/step3", "~/_cas/recover_st3.aspx", true, null, vd);
             * routes.MapPageRoute("cas-recover4", "cas/recover/step4", "~/_cas/recover_st4.aspx", true, null, vd);
             * routes.MapPageRoute("cas-passwordstrength", "cas/passwordstrength", "~/_cas/passwordstrength.aspx", true, null, vd);*/


            /* Console Ping
             * -----------------------------*/
            routes.MapPageRoute("Ping", "ping/", "~/ping.aspx", true, null, vdGET);

            /* Proxy Sync protocol
             * -----------------------------*/
            routes.MapPageRoute("Sync", "proxy/sync/", "~/proxy/sync.aspx", true, null, vdGET);


            /* Métodos de leitura de e-mail
            *  -----------------------------*/
            routes.MapPageRoute("Mail", "m/", "~/_mail/mail.aspx", true, null, vdGET);
            routes.MapPageRoute("Mail1", "m/{type}/", "~/_mail/mail.aspx", true, new RouteValueDictionary {
                { "id", "" }, { "type", "" }
            }, vd);
            routes.MapPageRoute("Mail2", "m/{type}/{id}/", "~/_mail/mail.aspx", true, new RouteValueDictionary {
                { "id", "" }, { "type", "" }
            }, vd);


            /* ChartData
             * -----------------------------*/
            routes.MapPageRoute("Admin-chartdata-id", "admin/chartdata/{module}/{type}/{id}/", "~/_admin/chartdata.aspx", true, new RouteValueDictionary {
                { "module", "" }, { "type", "" }, { "id", "" }
            }, vd);
            routes.MapPageRoute("Admin-chartdata", "admin/chartdata/{module}/{type}/", "~/_admin/chartdata.aspx", true, new RouteValueDictionary {
                { "module", "" }, { "type", "" }
            }, vd);


            /* Autoservice
             * -----------------------------*/
            routes.MapPageRoute("AutoService", "autoservice/", "~/_autoservice/autoservice.aspx", true, new RouteValueDictionary {
                { "action", "" }, { "data", "" }
            }, vdGET);

            /* Admin Dashboard
             * -----------------------------*/
            routes.MapPageRoute("Admin-base", "admin/", "~/_admin/template.aspx", true, new RouteValueDictionary {
                { "area", "dashboard" }
            }, vdGET);

            /* Admin Web Shell
             * -----------------------------*/
            routes.MapPageRoute("Admin-webshell", "admin/ws/", "~/_admin/_ws/ws.aspx", true, new RouteValueDictionary {
                { "", "" }
            }, vd);


            /* Admin Modules
             * -----------------------------*/
            routes.MapPageRoute("Admin-module-all", "admin/{module}/", "~/_admin/template.aspx", true, new RouteValueDictionary {
                { "module", "" }
            }, vdGET);
            routes.MapPageRoute("Admin-module-new", "admin/{module}/new/", "~/_admin/template.aspx", true, new RouteValueDictionary {
                { "module", "" }, { "userid", "" }, { "filter", "new" }
            }, vdGET);
            routes.MapPageRoute("Admin-module-new2", "admin/{module}/new/{filter}/", "~/_admin/template.aspx", true, new RouteValueDictionary {
                { "module", "" }, { "userid", "" }, { "filter", "new" }
            }, vdGET);
            routes.MapPageRoute("Admin-module-new3", "admin/{module}/new/{filter}/{id}/", "~/_admin/template.aspx", true, new RouteValueDictionary {
                { "module", "" }, { "userid", "" }, { "filter", "new" }
            }, vdGET);
            routes.MapPageRoute("Admin-module-id", "admin/{module}/{id}/", "~/_admin/template.aspx", true, new RouteValueDictionary {
                { "module", "" }, { "userid", "" }
            }, vdGET);
            routes.MapPageRoute("Admin-module-id-direct", "admin/{module}/{id}/direct/{area}/", "~/_admin/module_direct.aspx", true, new RouteValueDictionary {
                { "module", "" }, { "userid", "" }
            }, vdGET);
            routes.MapPageRoute("Admin-module-id-direct-f", "admin/{module}/{id}/direct/{area}/{filter}/", "~/_admin/module_direct.aspx", true, new RouteValueDictionary {
                { "module", "" }, { "userid", "" }
            }, vdGET);
            routes.MapPageRoute("Admin-module-id-f", "admin/{module}/{id}/{filter}/", "~/_admin/template.aspx", true, new RouteValueDictionary {
                { "module", "" }, { "userid", "" }
            }, vdGET);

            //Adicionado novo para subfiltro
            routes.MapPageRoute("Admin-module-id-f2", "admin/{module}/{id}/{filter}/{subfilter}/", "~/_admin/template.aspx", true, new RouteValueDictionary {
                { "module", "" }, { "userid", "" }, { "subfilter", "" }
            }, vdGET);

            /* Métodos POST
             * =============================*/


            /* Autoservice
             * -----------------------------*/

            //Módulos novos
            //routes.MapPageRoute("Autoservice-module", "autoservice/{module}/content/{area}/", "~/_autoservice/module_content.aspx", true, new RouteValueDictionary { { "module", "" }, { "id", "" }, { "area", "" } }, vdPOST);
            //routes.MapPageRoute("Autoservice-module-search", "autoservice/{module}/search/{query}/", "~/_autoservice/module_content.aspx", true, new RouteValueDictionary { { "module", "" }, { "area", "search" }, { "query", "" } }, vdPOST);
            //routes.MapPageRoute("Autoservice-module-a-new", "autoservice/{module}/new/content/{area}/", "~/_autoservice/module_content.aspx", true, new RouteValueDictionary { { "module", "" }, { "id", "" }, { "area", "" }, { "new", "1" }, { "filter", "new" } }, vdPOST);
            //routes.MapPageRoute("Autoservice-module-a-new2", "autoservice/{module}/new/{filter}/content/{area}/", "~/_autoservice/module_content.aspx", true, new RouteValueDictionary { { "module", "" }, { "id", "" }, { "area", "" }, { "new", "1" }, { "filter", "new" } }, vdPOST);
            //routes.MapPageRoute("Autoservice-module-a-new3", "autoservice/{module}/new/{filter}/{id}/content/{area}/", "~/_autoservice/module_content.aspx", true, new RouteValueDictionary { { "module", "" }, { "id", "" }, { "area", "" }, { "new", "1" }, { "filter", "new" } }, vdPOST);
            routes.MapPageRoute("Autoservice-module-action", "autoservice/{module}/action/{action}/", "~/_autoservice/module_action.aspx", true, new RouteValueDictionary {
                { "module", "" }, { "id", "" }, { "area", "" }, { "action", "" }
            }, vdPOST);
            //routes.MapPageRoute("Autoservice-module-id-content", "autoservice/{module}/{id}/content/{area}/", "~/_autoservice/module_content.aspx", true, new RouteValueDictionary { { "module", "" }, { "id", "" }, { "area", "" } }, vdPOST);
            //routes.MapPageRoute("Autoservice-module-id-search", "autoservice/{module}/{id}/search/{query}/", "~/_autoservice/module_content.aspx", true, new RouteValueDictionary { { "module", "" }, { "id", "" }, { "area", "search" }, { "query", "" } }, vdPOST);
            routes.MapPageRoute("Autoservice-module-id-action", "autoservice/{module}/{id}/action/{action}/", "~/_autoservice/module_action.aspx", true, new RouteValueDictionary {
                { "module", "" }, { "id", "" }, { "area", "" }, { "action", "" }, { "filter", "" }
            }, vdPOST);
            routes.MapPageRoute("Autoservice-module-id-action-f", "autoservice/{module}/{id}/action/{action}/{filter}/", "~/_autoservice/module_action.aspx", true, new RouteValueDictionary {
                { "module", "" }, { "id", "" }, { "area", "" }, { "action", "" }, { "filter", "" }
            }, vdPOST);
            //routes.MapPageRoute("Autoservice-module-id-content-f2", "autoservice/{module}/{id}/{filter}/{subfilter}/content/{area}/", "~/_autoservice/module_content.aspx", true, new RouteValueDictionary { { "module", "" }, { "id", "" }, { "area", "" }, { "subfilter", "" } }, vdPOST);
            //routes.MapPageRoute("Autoservice-module-id-search-f2", "autoservice/{module}/{id}/{filter}/{subfilter}/search/{query}/", "~/_autoservice/module_content.aspx", true, new RouteValueDictionary { { "module", "" }, { "id", "" }, { "area", "search" }, { "query", "" }, { "subfilter", "" } }, vdPOST);
            //routes.MapPageRoute("Autoservice-module-id-content-f", "autoservice/{module}/{id}/{filter}/content/{area}/", "~/_autoservice/module_content.aspx", true, new RouteValueDictionary { { "module", "" }, { "id", "" }, { "area", "" } }, vdPOST);
            //routes.MapPageRoute("Autoservice-module-id-search-f", "autoservice/{module}/{id}/{filter}/search/{query}/", "~/_autoservice/module_content.aspx", true, new RouteValueDictionary { { "module", "" }, { "id", "" }, { "area", "search" }, { "query", "" } }, vdPOST);

            //Modulos antigos, migrar para o novo
            routes.MapPageRoute("AutoService1", "autoservice/content/", "~/_autoservice/autoservice.aspx", true, new RouteValueDictionary {
                { "action", "" }, { "data", "" }
            }, vd);
            routes.MapPageRoute("AutoService2", "autoservice/content/{area}", "~/_autoservice/autoservice.aspx", true, new RouteValueDictionary {
                { "action", "" }, { "data", "" }
            }, vd);
            routes.MapPageRoute("AutoServiceUser", "autoservice/user/{action}/{step}/", "~/_autoservice/user.aspx", true, new RouteValueDictionary {
                { "action", "" }, { "step", "" }
            }, vd);
            routes.MapPageRoute("AutoServiceUser2", "autoservice/user/{action}/content/{area}", "~/_autoservice/user.aspx", true, new RouteValueDictionary {
                { "action", "" }, { "step", "" }
            }, vd);
            routes.MapPageRoute("AutoServiceAccessRequest-new", "autoservice/access_request/new/", "~/_autoservice/access_request.aspx", true, new RouteValueDictionary {
                { "action", "new" }, { "id", "" }
            }, vd);
            routes.MapPageRoute("AutoServiceAccessRequest2", "autoservice/access_request/{id}/{action}/", "~/_autoservice/access_request.aspx", true, new RouteValueDictionary {
                { "action", "" }, { "id", "" }
            }, vd);
            routes.MapPageRoute("AutoServiceAccessRequest3", "autoservice/access_request/{action}/content/{area}", "~/_autoservice/access_request.aspx", true, new RouteValueDictionary {
                { "action", "" }, { "step", "" }
            }, vd);


            /* Admin Dashboard
             * -----------------------------*/
            routes.MapPageRoute("Admin-dasboard", "admin/content/", "~/_admin/module_content.aspx", true, new RouteValueDictionary {
                { "module", "dashboard" }, { "area", "" }
            }, vdPOST);
            routes.MapPageRoute("Admin-dasboard2", "admin/content/{area}/", "~/_admin/module_content.aspx", true, new RouteValueDictionary {
                { "module", "dashboard" }, { "area", "" }
            }, vdPOST);
            routes.MapPageRoute("Admin-dasboard-search", "admin/search/{query}/", "~/_admin/module_content.aspx", true, new RouteValueDictionary {
                { "module", "users" }, { "area", "search" }, { "query", "" }
            }, vdPOST);

            /* Admin Modules
             * -----------------------------*/
            routes.MapPageRoute("Admin-module", "admin/{module}/content/{area}/", "~/_admin/module_content.aspx", true, new RouteValueDictionary {
                { "module", "" }, { "id", "" }, { "area", "" }
            }, vdPOST);
            routes.MapPageRoute("Admin-module-search", "admin/{module}/search/{query}/", "~/_admin/module_content.aspx", true, new RouteValueDictionary {
                { "module", "" }, { "area", "search" }, { "query", "" }
            }, vdPOST);
            routes.MapPageRoute("Admin-module-a-new", "admin/{module}/new/content/{area}/", "~/_admin/module_content.aspx", true, new RouteValueDictionary {
                { "module", "" }, { "id", "" }, { "area", "" }, { "new", "1" }, { "filter", "new" }
            }, vdPOST);
            routes.MapPageRoute("Admin-module-a-new2", "admin/{module}/new/{filter}/content/{area}/", "~/_admin/module_content.aspx", true, new RouteValueDictionary {
                { "module", "" }, { "id", "" }, { "area", "" }, { "new", "1" }, { "filter", "new" }
            }, vdPOST);
            routes.MapPageRoute("Admin-module-a-new3", "admin/{module}/new/{filter}/{id}/content/{area}/", "~/_admin/module_content.aspx", true, new RouteValueDictionary {
                { "module", "" }, { "id", "" }, { "area", "" }, { "new", "1" }, { "filter", "new" }
            }, vdPOST);
            routes.MapPageRoute("Admin-module-action", "admin/{module}/action/{action}/", "~/_admin/module_action.aspx", true, new RouteValueDictionary {
                { "module", "" }, { "id", "" }, { "area", "" }, { "action", "" }
            }, vdPOST);
            routes.MapPageRoute("Admin-module-id-content", "admin/{module}/{id}/content/{area}/", "~/_admin/module_content.aspx", true, new RouteValueDictionary {
                { "module", "" }, { "id", "" }, { "area", "" }
            }, vdPOST);
            routes.MapPageRoute("Admin-module-id-search", "admin/{module}/{id}/search/{query}/", "~/_admin/module_content.aspx", true, new RouteValueDictionary {
                { "module", "" }, { "id", "" }, { "area", "search" }, { "query", "" }
            }, vdPOST);
            routes.MapPageRoute("Admin-module-id-action", "admin/{module}/{id}/action/{action}/", "~/_admin/module_action.aspx", true, new RouteValueDictionary {
                { "module", "" }, { "id", "" }, { "area", "" }, { "action", "" }, { "filter", "" }
            }, vdPOST);
            routes.MapPageRoute("Admin-module-id-action-f", "admin/{module}/{id}/action/{action}/{filter}/", "~/_admin/module_action.aspx", true, new RouteValueDictionary {
                { "module", "" }, { "id", "" }, { "area", "" }, { "action", "" }, { "filter", "" }
            }, vdPOST);
            routes.MapPageRoute("Admin-module-id-content-f2", "admin/{module}/{id}/{filter}/{subfilter}/content/{area}/", "~/_admin/module_content.aspx", true, new RouteValueDictionary {
                { "module", "" }, { "id", "" }, { "area", "" }, { "subfilter", "" }
            }, vdPOST);
            routes.MapPageRoute("Admin-module-id-search-f2", "admin/{module}/{id}/{filter}/{subfilter}/search/{query}/", "~/_admin/module_content.aspx", true, new RouteValueDictionary {
                { "module", "" }, { "id", "" }, { "area", "search" }, { "query", "" }, { "subfilter", "" }
            }, vdPOST);
            routes.MapPageRoute("Admin-module-id-content-f", "admin/{module}/{id}/{filter}/content/{area}/", "~/_admin/module_content.aspx", true, new RouteValueDictionary {
                { "module", "" }, { "id", "" }, { "area", "" }
            }, vdPOST);
            routes.MapPageRoute("Admin-module-id-search-f", "admin/{module}/{id}/{filter}/search/{query}/", "~/_admin/module_content.aspx", true, new RouteValueDictionary {
                { "module", "" }, { "id", "" }, { "area", "search" }, { "query", "" }
            }, vdPOST);

            //routes.MapPageRoute("Admin-module-action-f", "admin/{module}/action/{action}/{filter}/", "~/_admin/module_action.aspx", true, new RouteValueDictionary { { "module", "" }, { "id", "" }, { "area", "" }, { "action", "" }, { "filter", "" } }, vdPOST);
            //routes.MapPageRoute("Admin-module-id-action-c", "admin/{module}/{id}/action/{action}/content/{area}/", "~/_admin/module_action.aspx", true, new RouteValueDictionary { { "module", "" }, { "id", "" }, { "area", "" }, { "action", "" } }, vdPOST);
            //routes.MapPageRoute("Admin-module-id-action-s", "admin/{module}/{id}/action/{action}/search/{query}/", "~/_admin/module_content.aspx", true, new RouteValueDictionary { { "module", "" }, { "id", "" }, { "area", "" }, { "action", "" } }, vdPOST);

            /* Old, Migrar
             * =============================*/

            routes.MapPageRoute("AutoServiceApi2", "consoleapi/{do}/{content}", "~/consoleapi/api.aspx", true, new RouteValueDictionary {
                { "do", "" }, { "content", "" }
            }, vd);

            //Auto serviço


            //Passos de login

            routes.MapPageRoute("Login", "login/", "~/_login/login.aspx", true, null, vd);
            routes.MapPageRoute("Logout", "logout/", "~/_login/logout.aspx", true, null, vd);

            routes.MapPageRoute("Login2", "login2/", "~/_login2/login.aspx", true, null, vd);
            routes.MapPageRoute("Login2-changepwd", "login2/changepassword/", "~/_login2/ChangePassword.aspx", true, null, vd);
            routes.MapPageRoute("Login2-recover", "login2/recover", "~/_login2/recover.aspx", true, null, vd);
            routes.MapPageRoute("Login2-recover1", "login2/recover/step1", "~/_login2/recover_st1.aspx", true, null, vd);
            routes.MapPageRoute("Login2-recover2", "login2/recover/step2", "~/_login2/recover_st2.aspx", true, null, vd);
            routes.MapPageRoute("Login2-recover3", "login2/recover/step3", "~/_login2/recover_st3.aspx", true, null, vd);
            routes.MapPageRoute("Login2-recover4", "login2/passwordchanged", "~/_login2/PasswordChanged.aspx", true, null, vd);

            //routes.MapPageRoute("ChangePwd", "login/changepassword/", "~/_login/changepwd.aspx", true, null, vd);
            //routes.MapPageRoute("LoginRecover", "recover/", "~/_login/recover.aspx", true, new RouteValueDictionary { { "do", "" } }, vd);
            //routes.MapPageRoute("Login-cont", "login/{action}/", "~/_autoservice/empty.aspx", true, null, vd);
            //routes.MapPageRoute("Login-cont2", "login/{action}/{data}", "~/_autoservice/empty.aspx", true, null, vd);
            //routes.MapPageRoute("Recover", "recover/{action}/", "~/_autoservice/empty.aspx", true, null, vd);
            //routes.MapPageRoute("Recover2", "recover/{action}/{data}", "~/_autoservice/empty.aspx", true, null, vd);

            //Admin

            /*
             * routes.MapPageRoute("AdminUsers", "admin/users/{action}/{data}/{data2}/{data3}/", "~/_admin/users/users.aspx", true, new RouteValueDictionary { { "action", "" }, { "data", "" }, { "data2", "" }, { "data3", "" } }, vd);
             *
             * routes.MapPageRoute("adminSearch2", "admin/user/{userid}/search/{data}/", "~/_admin/users/users.aspx", true, new RouteValueDictionary { { "action", "search" }, { "data", "" }, { "data2", "" }, { "data3", "" } }, vd);
             * routes.MapPageRoute("adminSearch3", "admin/user/{userid}/{data2}/search/{data}/", "~/_admin/users/users.aspx", true, new RouteValueDictionary { { "action", "search" }, { "data", "" }, { "data2", "" }, { "data3", "" } }, vd);
             *
             *
             * routes.MapPageRoute("AdminUser", "admin/user/{userid}/{action}/", "~/_admin/users/user.aspx", true, new RouteValueDictionary { { "action", "" }, { "userid", "" }, { "data2", "" }, { "data3", "" } }, vd);
             * routes.MapPageRoute("AdminUser2", "admin/user/{userid}/{data2}/{action}/", "~/_admin/users/user.aspx", true, new RouteValueDictionary { { "action", "" }, { "userid", "" }, { "data2", "" } }, vd);
             */
            //Admin User

            //Admin mobile (old)

            /*
             * routes.MapPageRoute("adminMobile", "admin/mobile/", "~/_admin/_mobile/mobile.aspx", true, null, vd);
             * routes.MapPageRoute("adminMobileList", "admin/mobile/list/", "~/_admin/_mobile/list.aspx", true, null, vd);
             * routes.MapPageRoute("adminMobileSearch", "admin/mobile/search/{query}/{ts}/", "~/_admin/_mobile/search.aspx", true, new RouteValueDictionary { { "query", "" } }, vd);
             * routes.MapPageRoute("adminMobileUser", "admin/mobile/user/{userid}/", "~/_admin/_mobile/user.aspx", true, new RouteValueDictionary { { "userid", "0" } }, vd);
             * routes.MapPageRoute("adminMobileUserLogs", "admin/mobile/user/{userid}/logs/", "~/_admin/_mobile/userlogs.aspx", true, new RouteValueDictionary { { "userid", "0" } }, vd);
             * routes.MapPageRoute("adminMobileUserResetPwd", "admin/mobile/user/{userid}/resetpwd/", "~/_admin/_mobile/userresetpwd.aspx", true, new RouteValueDictionary { { "userid", "0" } }, vd);
             * routes.MapPageRoute("adminMobileUserUnlock", "admin/mobile/user/{userid}/unlock/", "~/_admin/_mobile/userlock.aspx", true, new RouteValueDictionary { { "userid", "0" }, { "op", "unlock" } }, vd);
             * routes.MapPageRoute("adminMobileUserlock", "admin/mobile/user/{userid}/lock/", "~/_admin/_mobile/userlock.aspx", true, new RouteValueDictionary { { "userid", "0" }, { "op", "lock" } }, vd);
             * routes.MapPageRoute("adminMobileUserdeploy", "admin/mobile/user/{userid}/deploy/", "~/_admin/_mobile/userdeploy.aspx", true, new RouteValueDictionary { { "userid", "0" }, { "op", "lock" } }, vd);
             */
            //routes.MapPageRoute("AutoServiceLoginRecover", "autoservice/login/recover/", "~/autoservice/recover.aspx", true, new RouteValueDictionary { { "do", "" } }, vd);
        }