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);
        }
Example #2
0
        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);
        }