protected override bool ProcessConstraint(HttpContextBase httpContext, object constraint, string parameterName, RouteValueDictionary values, RouteDirection routeDirection)
{
if (parameterName == _subDomain && constraint is ISubDomainConstraint)
{
var uri = httpContext.Request.Url;
if (uri != null)
{
var url = uri.Host;
var index = url.IndexOf(".");
if (index > 0)
{
var possibleSubDomain = url.Substring(0, index).ToLower();
values.Add(_subDomain, possibleSubDomain);
return ((ISubDomainConstraint)constraint).Match(httpContext, this, parameterName, values, routeDirection);
}
}
}
return base.ProcessConstraint(httpContext, constraint, parameterName, values, routeDirection);
}