/// <summary>
/// Returns site based on domain
/// </summary>
/// <param name="host">The host.</param>
/// <returns></returns>
public static SiteCache GetSiteByDomain(string host)
{
int siteId = 0;
if (_siteDomains.TryGetValue(host, out siteId))
{
return(Read(siteId));
}
using (var rockContext = new RockContext())
{
Rock.Model.SiteDomainService siteDomainService = new Rock.Model.SiteDomainService(rockContext);
Rock.Model.SiteDomain siteDomain = siteDomainService.GetByDomain(host);
if (siteDomain == null)
{
siteDomain = siteDomainService.GetByDomainContained(host);
}
if (siteDomain != null)
{
_siteDomains.AddOrUpdate(host, siteDomain.SiteId, (k, v) => siteDomain.SiteId);
return(Read(siteDomain.SiteId));
}
}
return(null);
}