public async Task <bool> AddSiteDomainAsync(string siteId, string domainKey, bool isDefault) { Ensure.NotNull(siteId); Ensure.NotNull(domainKey); var client = await GetClientAsync(siteId); var domainExists = await DomainExistsAsync(domainKey); if (domainExists) { return(false); } else { //If IsDefault True, then clear any other default domains //as this domain will be the default var defaultDomain = await GetDefaultDomainAsync(siteId); if (defaultDomain != null) { defaultDomain.IsDefault = false; _db.SiteDomains.Update(defaultDomain); _db.SaveChanges(); } // Save the site domain var siteDomain = new SiteDomain() { SiteId = siteId, DomainKey = NormalizeDomain(domainKey), IsDefault = isDefault }; _db.SiteDomains.Add(siteDomain); await _db.SaveChangesAsync(); // Register OIDC Redirect Uris await _oidcTenantManager.AddUriAsync( client.TenantKey, siteDomain.ToSignInRedirectUri(), Identity.Models.TenantUriType.OidcSignin ); await _oidcTenantManager.AddUriAsync( client.TenantKey, siteDomain.ToPostLogoutRedirectUri(), Identity.Models.TenantUriType.OidcPostLogout ); return(true); } }