public bool Match(HttpContextBase httpContext, Route route, string parameterName, RouteValueDictionary values, RouteDirection routeDirection) { // Step 1. var host = httpContext.Request.Headers["Host"].Split('.'); var subdomain = host[0]; // Step 2. Handle localhost List <string> segmentList = httpContext.Request.Url.Host.Split(new string[] { }, StringSplitOptions.RemoveEmptyEntries).ToList(); List <string> matchList = new List <string>() { "localhost", "azurewebsites" }; if (segmentList.Intersect(matchList, StringComparer.CurrentCultureIgnoreCase).Any()) { string localhostDomain = System.Configuration.ConfigurationManager.AppSettings["TestDomain"]; if (string.IsNullOrEmpty(localhostDomain)) { return(false); } else { subdomain = localhostDomain; } } // Step 3. Provider provider = new GetProviderByDomain() { Domain = subdomain }.ExecuteItem(); if (provider == null) { return(false); } // Step 4. if (!values.ContainsKey("Provider")) { values.Add("Provider", provider); values.Add("ProviderId", provider.Id); values.Add("ProviderGroupId", provider.ProviderGroupId); } return(true); }
public bool Match(HttpContextBase httpContext, Route route, string parameterName, RouteValueDictionary values, RouteDirection routeDirection) { // Step 1. var host = httpContext.Request.Headers["Host"].Split('.'); var subdomain = host[0]; // Step 2. Handle localhost if (subdomain.ToLower().StartsWith("localhost")) { string localhostDomain = System.Configuration.ConfigurationManager.AppSettings["TestDomain"]; if (string.IsNullOrEmpty(localhostDomain)) { return(false); } else { subdomain = localhostDomain; } } // Step 3. Provider provider = new GetProviderByDomain() { Domain = subdomain }.ExecuteItem(); if (provider == null) { return(false); } // Step 4. if (!values.ContainsKey("Provider")) { values.Add("Provider", provider); values.Add("ProviderId", provider.Id); values.Add("ProviderGroupId", provider.ProviderGroupId); } return(true); }