Beispiel #1
0
        private Site GetSiteFromRequest()
        {
            string authority = _requestBase.Url.Authority;

            System.Collections.Generic.IList <Site>            allSites          = _session.QueryOver <Site>().Fetch(s => s.RedirectedDomains).Eager.Cacheable().List();
            System.Collections.Generic.List <RedirectedDomain> redirectedDomains = allSites.SelectMany(s => s.RedirectedDomains).ToList();
            Site site = allSites.FirstOrDefault(s => s.BaseUrl != null && s.BaseUrl.Equals(authority, StringComparison.OrdinalIgnoreCase));

            if (site == null)
            {
                RedirectedDomain redirectedDomain =
                    redirectedDomains.FirstOrDefault(
                        s => s.Url != null && s.Url.Equals(authority, StringComparison.OrdinalIgnoreCase));
                if (redirectedDomain != null)
                {
                    site = redirectedDomain.Site;
                }
            }

            return(site ?? allSites.First());
        }