diff --git a/WebsitePanel/Database/update_db.sql b/WebsitePanel/Database/update_db.sql index 5f90a7e7..6003e329 100644 --- a/WebsitePanel/Database/update_db.sql +++ b/WebsitePanel/Database/update_db.sql @@ -5853,3 +5853,55 @@ WHERE RETURN' END GO + + + + + +BEGIN TRAN +CREATE TABLE #TempDomains +( + [PackageID] [int] NOT NULL, + [ZoneItemID] [int] NULL, + [DomainName] [nvarchar](100) COLLATE Latin1_General_CI_AS NOT NULL, + [HostingAllowed] [bit] NOT NULL, + [WebSiteID] [int] NULL, + [IsSubDomain] [bit] NOT NULL, + [IsInstantAlias] [bit] NOT NULL, + [IsDomainPointer] [bit] NOT NULL, +) + + +INSERT INTO #TempDomains SELECT PackageID, +ZoneItemID, +DomainName, +HostingAllowed, +WebSiteID, +IsSubDomain, +IsInstantAlias, +IsDomainPointer FROM Domains WHERE IsDomainPointer = 1 + + +UPDATE Domains SET IsDomainPointer=0,WebSiteID=NULL WHERE IsDomainPointer = 1 AND DomainName IN (SELECT DomainName FROM Domains AS D WHERE +D.DomainName = (SELECT DISTINCT ItemName FROM ServiceItems WHERE ItemID = D.ZoneItemId ) +Group BY DOmainName +HAVING (COUNT(DomainName) = 1)) + + +INSERT INTO Domains SELECT PackageID, +ZoneItemID, +DomainName, +HostingAllowed, +WebSiteID, +NULL, +IsSubDomain, +IsInstantAlias, +IsDomainPointer + FROM #TempDomains As T WHERE DomainName IN (SELECT DomainName FROM Domains AS D WHERE +D.DomainName = (SELECT DISTINCT ItemName FROM ServiceItems WHERE ItemID = D.ZoneItemId ) +Group BY DOmainName +HAVING (COUNT(DomainName) = 1)) + +DROP TABLE #TempDomains +COMMIT TRAN +GO \ No newline at end of file diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/WebServers/WebServerController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/WebServers/WebServerController.cs index 84d173f3..bdc623f1 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/WebServers/WebServerController.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/WebServers/WebServerController.cs @@ -1143,13 +1143,18 @@ namespace WebsitePanel.EnterpriseServer if (!string.IsNullOrEmpty(b.Host)) { domain.DomainName = b.Host; - int domainID = ServerController.AddDomain(domain, domain.IsInstantAlias, false); - DomainInfo domainTmp = ServerController.GetDomain(domainID); - if (domainTmp != null) + + DomainInfo domainTmp = ServerController.GetDomain(domain.DomainName); + if (!((domainTmp != null) && (domainTmp.WebSiteId == siteItemId))) { - domainTmp.WebSiteId = siteItemId; - domainTmp.ZoneItemId = domain.ZoneItemId; - ServerController.UpdateDomain(domainTmp); + int domainID = ServerController.AddDomain(domain, domain.IsInstantAlias, false); + domainTmp = ServerController.GetDomain(domainID); + if (domainTmp != null) + { + domainTmp.WebSiteId = siteItemId; + domainTmp.ZoneItemId = domain.ZoneItemId; + ServerController.UpdateDomain(domainTmp); + } } } }