public static void LogRoute(TextWriter writer, string name, AttributeRouteInfo routeInfo) { writer.WriteLine("URL: {0} {1}", routeInfo.Url, routeInfo.HttpMethods); if (name != null) writer.WriteLine("NAME: {0}", name); if (routeInfo.Defaults != null && routeInfo.Defaults.Count > 0) { writer.WriteLine("DEFAULTS:"); foreach (var @default in routeInfo.Defaults) writer.WriteLine("- {0} = {1}", @default.Key, @default.Value); } if (routeInfo.Constraints != null && routeInfo.Constraints.Count > 0) { writer.WriteLine("CONSTRAINTS:"); foreach (var constraint in routeInfo.Constraints) writer.WriteLine("- {0} = {1}", constraint.Key, constraint.Value); } if (routeInfo.DataTokens != null && routeInfo.DataTokens.Count > 0) { writer.WriteLine("DATA TOKENS:"); foreach (var t in routeInfo.DataTokens) writer.WriteLine("- {0} = {1}", t.Key, t.Value); } writer.WriteLine(" "); writer.WriteLine(new String('-', 40)); writer.WriteLine(" "); }
public static AttributeRouteInfo GetRouteInfo(string url, IDictionary <string, object> defaults, IDictionary <string, object> constraints, IDictionary <string, object> dataTokens) { var item = new AttributeRouteInfo { Url = url }; if (defaults != null) { foreach (var @default in defaults) { item.Defaults.Add(@default.Key, @default.Value.ToString()); } } if (constraints != null) { foreach (var constraint in constraints) { if (constraint.Value == null) { continue; } if (constraint.Value is IRestfulHttpMethodConstraint) { item.HttpMethod = String.Join(", ", ((IRestfulHttpMethodConstraint)constraint.Value).AllowedMethods); } else if (constraint.Value is RegexRouteConstraintBase) { item.Constraints.Add(constraint.Key, ((RegexRouteConstraintBase)constraint.Value).Pattern); } else { item.Constraints.Add(constraint.Key, constraint.Value.ToString()); } } } if (dataTokens != null) { foreach (var token in dataTokens) { if (token.Key.ValueEquals("namespaces")) { item.DataTokens.Add(token.Key, ((string[])token.Value).Aggregate((n1, n2) => n1 + ", " + n2)); } else { item.DataTokens.Add(token.Key, token.Value.ToString()); } } } return(item); }
public static AttributeRouteInfo GetRouteInfo(string url, IDictionary<string, object> defaults, IDictionary<string, object> constraints, IDictionary<string, object> dataTokens) { var item = new AttributeRouteInfo { Url = url }; if (defaults != null) { foreach (var @default in defaults) item.Defaults.Add(@default.Key, @default.Value.ToString()); } if (constraints != null) { foreach (var constraint in constraints) { if (constraint.Value == null) continue; if (constraint.Value is IRestfulHttpMethodConstraint) item.HttpMethod = String.Join(", ", ((IRestfulHttpMethodConstraint)constraint.Value).AllowedMethods); else if (constraint.Value is RegexRouteConstraintBase) item.Constraints.Add(constraint.Key, ((RegexRouteConstraintBase)constraint.Value).Pattern); else item.Constraints.Add(constraint.Key, constraint.Value.ToString()); } } if (dataTokens != null) { foreach (var token in dataTokens) { if (token.Key.ValueEquals("namespaces")) item.DataTokens.Add(token.Key, ((string[])token.Value).Aggregate((n1, n2) => n1 + ", " + n2)); else item.DataTokens.Add(token.Key, token.Value.ToString()); } } return item; }
public static void LogRoute(TextWriter writer, string name, AttributeRouteInfo routeInfo) { writer.WriteLine("URL: {0} {1}", routeInfo.Url, routeInfo.HttpMethods); if (name != null) { writer.WriteLine("NAME: {0}", name); } if (routeInfo.Defaults != null && routeInfo.Defaults.Count > 0) { writer.WriteLine("DEFAULTS:"); foreach (var @default in routeInfo.Defaults) { writer.WriteLine("- {0} = {1}", @default.Key, @default.Value); } } if (routeInfo.Constraints != null && routeInfo.Constraints.Count > 0) { writer.WriteLine("CONSTRAINTS:"); foreach (var constraint in routeInfo.Constraints) { writer.WriteLine("- {0} = {1}", constraint.Key, constraint.Value); } } if (routeInfo.DataTokens != null && routeInfo.DataTokens.Count > 0) { writer.WriteLine("DATA TOKENS:"); foreach (var t in routeInfo.DataTokens) { writer.WriteLine("- {0} = {1}", t.Key, t.Value); } } writer.WriteLine(" "); writer.WriteLine(new String('-', 40)); writer.WriteLine(" "); }
public static AttributeRouteInfo GetRouteInfo(string url, IDictionary <string, object> defaults, IDictionary <string, object> constraints, IDictionary <string, object> dataTokens) { var item = new AttributeRouteInfo { Url = url }; //************************ // Defaults if (defaults != null) { foreach (var @default in defaults) { var defaultValue = @default.Value.ToString(); item.Defaults.Add(@default.Key, defaultValue.ValueOr("Optional")); } } //************************ // Constraints if (constraints != null) { foreach (var constraint in constraints) { if (constraint.Value == null) { continue; } if (constraint.Value is IRestfulHttpMethodConstraint) { item.HttpMethods = String.Join(", ", ((IRestfulHttpMethodConstraint)constraint.Value).AllowedMethods); } else if (constraint.Value is RegexRouteConstraintBase) { item.Constraints.Add(constraint.Key, ((RegexRouteConstraintBase)constraint.Value).Pattern); } else { var constraintValue = constraint.Value; var constraintType = constraint.Value.GetType(); string constraintAsString; // Simple string regex constraint - from ASP.NET routing features if (constraintValue is string) { constraintAsString = constraintValue.ToString(); } else { // Optional constraint - unwrap it and continue var optionalConstraint = constraintValue as IOptionalRouteConstraintWrapper; if (optionalConstraint != null) { constraintValue = optionalConstraint.Constraint; constraintType = optionalConstraint.Constraint.GetType(); } // Compound constraint - join type names of the inner constraints var compoundConstraint = constraintValue as ICompoundRouteConstraintWrapper; if (compoundConstraint != null) { var innerConstraintTypeNames = compoundConstraint.Constraints.Select(x => x.GetType().Name); constraintAsString = String.Join(", ", innerConstraintTypeNames); } else { // Single constraint type constraintAsString = constraintType.Name; } } item.Constraints.Add(constraint.Key, constraintAsString); } } } //************************ // DataTokens if (dataTokens != null) { foreach (var token in dataTokens) { if (token.Key.ValueEquals("namespaces")) { item.DataTokens.Add(token.Key, ((string[])token.Value).Aggregate((n1, n2) => n1 + ", " + n2)); } else { item.DataTokens.Add(token.Key, token.Value.ToString()); } } } return(item); }
public static AttributeRouteInfo GetRouteInfo(string url, IDictionary<string, object> defaults, IDictionary<string, object> constraints, IDictionary<string, object> dataTokens) { var item = new AttributeRouteInfo { Url = url }; //************************ // Defaults if (defaults != null) { foreach (var @default in defaults) { var defaultValue = @default.Value.ToString(); item.Defaults.Add(@default.Key, defaultValue.ValueOr("Optional")); } } //************************ // Constraints if (constraints != null) { foreach (var constraint in constraints) { if (constraint.Value == null || constraint.Value is IInboundHttpMethodConstraint) continue; if (constraint.Value is RegexRouteConstraintBase) { item.Constraints.Add(constraint.Key, ((RegexRouteConstraintBase)constraint.Value).Pattern); } else { var constraintValue = constraint.Value; var constraintDescriptions = new List<string>(); // Simple string regex constraint - from ASP.NET routing features if (constraintValue is string) { constraintDescriptions.Add(constraintValue.ToString()); } else { // Optional constraint - unwrap it and continue var optionalConstraint = constraintValue as IOptionalRouteConstraintWrapper; if (optionalConstraint != null) { constraintValue = optionalConstraint.Constraint; } // QueryString constraint - unwrap it and continue var queryStringConstraint = constraintValue as IQueryStringRouteConstraintWrapper; if (queryStringConstraint != null) { constraintValue = queryStringConstraint.Constraint; constraintDescriptions.Add("QueryStringRouteConstraint"); } // Compound constraint - join type names of the inner constraints var compoundConstraint = constraintValue as ICompoundRouteConstraintWrapper; if (compoundConstraint != null) { constraintDescriptions.AddRange(compoundConstraint.Constraints.Select(c => c.GetType().Name)); } else if (constraintValue != null) { // Single constraint type constraintDescriptions.Add(constraintValue.GetType().Name); } } item.Constraints.Add(constraint.Key, String.Join(", ", constraintDescriptions)); } } } //************************ // DataTokens if (dataTokens != null) { foreach (var token in dataTokens) { if (token.Key.ValueEquals("namespaces")) { item.DataTokens.Add(token.Key, String.Join(", ", (string[])token.Value)); } else if (token.Key.ValueEquals("httpMethods")) { item.HttpMethods = String.Join(", ", (string[])token.Value); } else if (!token.Key.ValueEquals("actionMethod")) { item.DataTokens.Add(token.Key, token.Value.ToString()); } } } return item; }
public static AttributeRouteInfo GetRouteInfo(string url, IDictionary<string, object> defaults, IDictionary<string, object> constraints, IDictionary<string, object> dataTokens) { var item = new AttributeRouteInfo { Url = url }; //************************ // Defaults if (defaults != null) { foreach (var @default in defaults) { var defaultValue = @default.Value.ToString(); item.Defaults.Add(@default.Key, defaultValue.ValueOr("Optional")); } } //************************ // Constraints if (constraints != null) { foreach (var constraint in constraints) { if (constraint.Value == null) continue; if (constraint.Value is IRestfulHttpMethodConstraint) { item.HttpMethods = String.Join(", ", ((IRestfulHttpMethodConstraint)constraint.Value).AllowedMethods); } else if (constraint.Value is RegexRouteConstraintBase) { item.Constraints.Add(constraint.Key, ((RegexRouteConstraintBase)constraint.Value).Pattern); } else { var constraintValue = constraint.Value; var constraintType = constraint.Value.GetType(); string constraintAsString; // Simple string regex constraint - from ASP.NET routing features if (constraintValue is string) { constraintAsString = constraintValue.ToString(); } else { // Optional constraint - unwrap it and continue var optionalConstraint = constraintValue as IOptionalRouteConstraintWrapper; if (optionalConstraint != null) { constraintValue = optionalConstraint.Constraint; constraintType = optionalConstraint.Constraint.GetType(); } // Compound constraint - join type names of the inner constraints var compoundConstraint = constraintValue as ICompoundRouteConstraintWrapper; if (compoundConstraint != null) { var innerConstraintTypeNames = compoundConstraint.Constraints.Select(x => x.GetType().Name); constraintAsString = String.Join(", ", innerConstraintTypeNames); } else { // Single constraint type constraintAsString = constraintType.Name; } } item.Constraints.Add(constraint.Key, constraintAsString); } } } //************************ // DataTokens if (dataTokens != null) { foreach (var token in dataTokens) { if (token.Key.ValueEquals("namespaces")) item.DataTokens.Add(token.Key, ((string[])token.Value).Aggregate((n1, n2) => n1 + ", " + n2)); else item.DataTokens.Add(token.Key, token.Value.ToString()); } } return item; }