public IRouteMatchResult MatchControllerRoute(IControllerMetaData controllerMetaData, string sourceRoute, string httpMethod)
{
if (controllerMetaData.ExecParameters?.RouteInfo == null)
return _routeMatcher.Match(sourceRoute, null);
switch (httpMethod)
{
case "GET":
return controllerMetaData.ExecParameters.RouteInfo.GetRoute == null
? null
: _routeMatcher.Match(sourceRoute, controllerMetaData.ExecParameters.RouteInfo.GetRoute);
case "POST":
return controllerMetaData.ExecParameters.RouteInfo.PostRoute == null
? null
: _routeMatcher.Match(sourceRoute, controllerMetaData.ExecParameters.RouteInfo.PostRoute);
case "PUT":
return controllerMetaData.ExecParameters.RouteInfo.PutRoute == null
? null
: _routeMatcher.Match(sourceRoute, controllerMetaData.ExecParameters.RouteInfo.PutRoute);
case "PATCH":
return controllerMetaData.ExecParameters.RouteInfo.PatchRoute == null
? null
: _routeMatcher.Match(sourceRoute, controllerMetaData.ExecParameters.RouteInfo.PatchRoute);
case "DELETE":
return controllerMetaData.ExecParameters.RouteInfo.DeleteRoute == null
? null
: _routeMatcher.Match(sourceRoute, controllerMetaData.ExecParameters.RouteInfo.DeleteRoute);
}
return null;
}