// Copyright (c) Microsoft Corporation. All rights reserved. See License.txt in the project root for license information.
using System.ComponentModel;
using System.Web.Http.WebHost;
using System.Web.Http.WebHost.Routing;
using System.Web.Routing;
namespace System.Web.Http
{
///
/// Extension methods for
///
[EditorBrowsable(EditorBrowsableState.Never)]
public static class RouteCollectionExtensions
{
///
/// Maps the specified route template.
///
/// A collection of routes for the application.
/// The name of the route to map.
/// The route template for the route.
/// A reference to the mapped route.
public static Route MapHttpRoute(this RouteCollection routes, string name, string routeTemplate)
{
return MapHttpRoute(routes, name, routeTemplate, defaults: null, constraints: null);
}
///
/// Maps the specified route template and sets default constraints, and namespaces.
///
/// A collection of routes for the application.
/// The name of the route to map.
/// The route template for the route.
/// An object that contains default route values.
/// A reference to the mapped route.
public static Route MapHttpRoute(this RouteCollection routes, string name, string routeTemplate, object defaults)
{
return MapHttpRoute(routes, name, routeTemplate, defaults, constraints: null);
}
///
/// Maps the specified route template and sets default route values, constraints, and namespaces.
///
/// A collection of routes for the application.
/// The name of the route to map.
/// The route template for the route.
/// An object that contains default route values.
/// A set of expressions that specify values for .
/// A reference to the mapped route.
public static Route MapHttpRoute(this RouteCollection routes, string name, string routeTemplate, object defaults, object constraints)
{
if (routes == null)
{
throw Error.ArgumentNull("routes");
}
HttpWebRoute route = new HttpWebRoute(routeTemplate, HttpControllerRouteHandler.Instance)
{
Defaults = new RouteValueDictionary(defaults),
Constraints = new RouteValueDictionary(constraints),
DataTokens = new RouteValueDictionary()
};
routes.Add(name, route);
return route;
}
}
}