Microsoft SQL Server 2012 support

Upgraded: Database scripts install_db.sql and upload_db.sql in order to support MSSQL2012
Upgraded: Installer to allow setup WebsitePanel with MSSQL2012
Added: MsSqlServer2012.cs
This commit is contained in:
Alejandro 2012-05-12 14:17:46 -04:00
parent e294a3db8a
commit bb347537af
24 changed files with 1179 additions and 18 deletions

View file

@ -499,6 +499,10 @@ namespace WebsitePanel.Setup.Actions
{ {
serviceInfo.ProviderId = 202; serviceInfo.ProviderId = 202;
} }
else if (sqlVersion.StartsWith("11."))
{
serviceInfo.ProviderId = 209;
}
serviceId = ES.Services.Servers.AddService(serviceInfo); serviceId = ES.Services.Servers.AddService(serviceInfo);
} }
else else

View file

@ -124,11 +124,11 @@ namespace WebsitePanel.Setup
{ {
// check SQL server version // check SQL server version
string sqlVersion = GetSqlServerVersion(connectionString); string sqlVersion = GetSqlServerVersion(connectionString);
if (!sqlVersion.StartsWith("9.") && !sqlVersion.StartsWith("10.")) if (!sqlVersion.StartsWith("9.") && !sqlVersion.StartsWith("10.") && !sqlVersion.StartsWith("11."))
{ {
// SQL Server 2005 engine required // SQL Server 2005 engine required
e.Cancel = true; e.Cancel = true;
ShowWarning("This program can be installed on SQL Server 2005/2008 only."); ShowWarning("This program can be installed on SQL Server 2005/2008/2012 only.");
return; return;
} }
int securityMode = GetSqlServerSecurityMode(connectionString); int securityMode = GetSqlServerSecurityMode(connectionString);

View file

@ -862,6 +862,10 @@ namespace WebsitePanel.Setup
{ {
serviceInfo.ProviderId = 202; serviceInfo.ProviderId = 202;
} }
else if (sqlVersion.StartsWith("11."))
{
serviceInfo.ProviderId = 209;
}
serviceId = ES.Services.Servers.AddService(serviceInfo); serviceId = ES.Services.Servers.AddService(serviceInfo);
} }
else else

View file

@ -3625,8 +3625,22 @@ INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDe
GO GO
INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (217, 22, 4, N'MsSQL2008.MaxLogSize', N'Max Log Size', 3, 0, NULL) INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (217, 22, 4, N'MsSQL2008.MaxLogSize', N'Max Log Size', 3, 0, NULL)
GO GO
INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (218, 23, 1, N'MsSQL2012.Databases', N'Databases', 2, 0, 37)
GO
INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (219, 23, 2, N'MsSQL2012.Users', N'Users', 2, 0, 38)
GO
INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (220, 1, 5, N'OS.DomainPointers', N'Domain Pointers', 2, 0, NULL) INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (220, 1, 5, N'OS.DomainPointers', N'Domain Pointers', 2, 0, NULL)
GO GO
INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (221, 23, 3, N'MsSQL2012.MaxDatabaseSize', N'Max Database Size', 3, 0, NULL)
GO
INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (222, 23, 5, N'MsSQL2012.Backup', N'Database Backups', 1, 0, NULL)
GO
INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (223, 23, 6, N'MsSQL2012.Restore', N'Database Restores', 1, 0, NULL)
GO
INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (224, 23, 7, N'MsSQL2012.Truncate', N'Database Truncate', 1, 0, NULL)
GO
INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (225, 23, 4, N'MsSQL2012.MaxLogSize', N'Max Log Size', 3, 0, NULL)
GO
INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (300, 30, 1, N'VPS.ServersNumber', N'Number of VPS', 2, 0, 33) INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (300, 30, 1, N'VPS.ServersNumber', N'Number of VPS', 2, 0, 33)
GO GO
INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (301, 30, 2, N'VPS.ManagingAllowed', N'Allow user to create VPS', 1, 0, NULL) INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (301, 30, 2, N'VPS.ManagingAllowed', N'Allow user to create VPS', 1, 0, NULL)
@ -10469,37 +10483,39 @@ INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupContr
GO GO
INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController]) VALUES (5, N'MsSQL2000', 8, N'WebsitePanel.EnterpriseServer.DatabaseServerController') INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController]) VALUES (5, N'MsSQL2000', 8, N'WebsitePanel.EnterpriseServer.DatabaseServerController')
GO GO
INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController]) VALUES (6, N'MySQL4', 11, N'WebsitePanel.EnterpriseServer.DatabaseServerController') INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController]) VALUES (6, N'MySQL4', 12, N'WebsitePanel.EnterpriseServer.DatabaseServerController')
GO GO
INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController]) VALUES (7, N'DNS', 16, N'WebsitePanel.EnterpriseServer.DnsServerController') INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController]) VALUES (7, N'DNS', 17, N'WebsitePanel.EnterpriseServer.DnsServerController')
GO GO
INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController]) VALUES (8, N'Statistics', 17, N'WebsitePanel.EnterpriseServer.StatisticsServerController') INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController]) VALUES (8, N'Statistics', 18, N'WebsitePanel.EnterpriseServer.StatisticsServerController')
GO GO
INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController]) VALUES (9, N'SharePoint', 13, N'WebsitePanel.EnterpriseServer.SharePointServerController') INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController]) VALUES (9, N'SharePoint', 14, N'WebsitePanel.EnterpriseServer.SharePointServerController')
GO GO
INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController]) VALUES (10, N'MsSQL2005', 9, N'WebsitePanel.EnterpriseServer.DatabaseServerController') INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController]) VALUES (10, N'MsSQL2005', 9, N'WebsitePanel.EnterpriseServer.DatabaseServerController')
GO GO
INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController]) VALUES (11, N'MySQL5', 12, N'WebsitePanel.EnterpriseServer.DatabaseServerController') INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController]) VALUES (11, N'MySQL5', 13, N'WebsitePanel.EnterpriseServer.DatabaseServerController')
GO GO
INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController]) VALUES (12, N'Exchange', 5, NULL) INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController]) VALUES (12, N'Exchange', 5, NULL)
GO GO
INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController]) VALUES (13, N'Hosted Organizations', 6, NULL) INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController]) VALUES (13, N'Hosted Organizations', 6, NULL)
GO GO
INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController]) VALUES (20, N'Hosted SharePoint', 14, N'WebsitePanel.EnterpriseServer.HostedSharePointServerController') INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController]) VALUES (20, N'Hosted SharePoint', 15, N'WebsitePanel.EnterpriseServer.HostedSharePointServerController')
GO GO
INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController]) VALUES (21, N'Hosted CRM', 15, NULL) INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController]) VALUES (21, N'Hosted CRM', 16, NULL)
GO GO
INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController]) VALUES (22, N'MsSQL2008', 10, N'WebsitePanel.EnterpriseServer.DatabaseServerController') INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController]) VALUES (22, N'MsSQL2008', 10, N'WebsitePanel.EnterpriseServer.DatabaseServerController')
GO GO
INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController]) VALUES (30, N'VPS', 18, NULL) INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController]) VALUES (23, N'MsSQL2012', 11, N'WebsitePanel.EnterpriseServer.DatabaseServerController')
GO GO
INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController]) VALUES (31, N'BlackBerry', 20, NULL) INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController]) VALUES (30, N'VPS', 19, NULL)
GO GO
INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController]) VALUES (32, N'OCS', 21, NULL) INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController]) VALUES (31, N'BlackBerry', 21, NULL)
GO
INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController]) VALUES (32, N'OCS', 22, NULL)
GO GO
INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController]) VALUES (33, N'ExchangeHostedEdition', 7, N'WebsitePanel.EnterpriseServer.ExchangeHostedEditionController') INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController]) VALUES (33, N'ExchangeHostedEdition', 7, N'WebsitePanel.EnterpriseServer.ExchangeHostedEditionController')
GO GO
INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController]) VALUES (40, N'VPSForPC', 19, NULL) INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController]) VALUES (40, N'VPSForPC', 20, NULL)
GO GO
SET ANSI_NULLS ON SET ANSI_NULLS ON
GO GO
@ -13920,7 +13936,7 @@ INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [D
GO GO
INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_BACKUP_DATABASE', N'BACKUP_NAME', N'String', N'database_backup.bak', 4) INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_BACKUP_DATABASE', N'BACKUP_NAME', N'String', N'database_backup.bak', 4)
GO GO
INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_BACKUP_DATABASE', N'DATABASE_GROUP', N'List', N'MsSQL2000=SQL Server 2000;MsSQL2005=SQL Server 2005;MsSQL2008=SQL Server 2008;MySQL4=MySQL 4.0;MySQL5=MySQL 5.0', 1) INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_BACKUP_DATABASE', N'DATABASE_GROUP', N'List', N'MsSQL2000=SQL Server 2000;MsSQL2005=SQL Server 2005;MsSQL2008=SQL Server 2008;MsSQL2012=SQL Server 2012;MySQL4=MySQL 4.0;MySQL5=MySQL 5.0', 1)
GO GO
INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_BACKUP_DATABASE', N'DATABASE_NAME', N'String', N'', 2) INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_BACKUP_DATABASE', N'DATABASE_NAME', N'String', N'', 2)
GO GO
@ -21050,6 +21066,7 @@ and below is the summary information for its resources.
<ad:if test="#space.Groups.ContainsKey("MsSQL2000")#"><li><a href="##mssql2000">SQL Server 2000</a></li></ad:if> <ad:if test="#space.Groups.ContainsKey("MsSQL2000")#"><li><a href="##mssql2000">SQL Server 2000</a></li></ad:if>
<ad:if test="#space.Groups.ContainsKey("MsSQL2005")#"><li><a href="##mssql2005">SQL Server 2005</a></li></ad:if> <ad:if test="#space.Groups.ContainsKey("MsSQL2005")#"><li><a href="##mssql2005">SQL Server 2005</a></li></ad:if>
<ad:if test="#space.Groups.ContainsKey("MsSQL2008")#"><li><a href="##mssql2008">SQL Server 2008</a></li></ad:if> <ad:if test="#space.Groups.ContainsKey("MsSQL2008")#"><li><a href="##mssql2008">SQL Server 2008</a></li></ad:if>
<ad:if test="#space.Groups.ContainsKey("MsSQL2012")#"><li><a href="##mssql2012">SQL Server 2012</a></li></ad:if>
<ad:if test="#space.Groups.ContainsKey("MySQL4")#"><li><a href="##mysql4">My SQL 4.x</a></li></ad:if> <ad:if test="#space.Groups.ContainsKey("MySQL4")#"><li><a href="##mysql4">My SQL 4.x</a></li></ad:if>
<ad:if test="#space.Groups.ContainsKey("MySQL5")#"><li><a href="##mysql5">My SQL 5.x</a></li></ad:if> <ad:if test="#space.Groups.ContainsKey("MySQL5")#"><li><a href="##mysql5">My SQL 5.x</a></li></ad:if>
<li><a href="##msaccess">Microsoft Access</a></li> <li><a href="##msaccess">Microsoft Access</a></li>
@ -21497,6 +21514,34 @@ using this IP address instead of actual POP3/SMTP/IMAP servers name:
<ad:MsSqlConnectionStrings server="#MsSQL2008Address#" /> <ad:MsSqlConnectionStrings server="#MsSQL2008Address#" />
</ad:if> </ad:if>
<ad:if test="#space.Groups.ContainsKey("MsSQL2012")#">
<a name="mssql2012"></a>
<h2>SQL Server 2012</h2>
<table>
<tr>
<td class="Label">Maximum Number of Databases:</td>
<td><ad:NumericQuota quota="MsSQL2012.Databases" /></td>
</tr>
<tr>
<td class="Label">Maximum Number of Users:</td>
<td><ad:NumericQuota quota="MsSQL2012.Users" /></td>
</tr>
</table>
<p>
In order to connect to SQL Server 2012 from Management Studio, Enterprise Manager, Query Analyzer
or other client software you can use the following SQL Server address:
</p>
<table>
<tr>
<td>#MsSQL2012Address#</td>
</tr>
</table>
<ad:MsSqlConnectionStrings server="#MsSQL2012Address#" />
</ad:if>
<ad:if test="#space.Groups.ContainsKey("MySQL4")#"> <ad:if test="#space.Groups.ContainsKey("MySQL4")#">
<a name="mysql4"></a> <a name="mysql4"></a>
<h2>MySQL 4.x</h2> <h2>MySQL 4.x</h2>
@ -22242,6 +22287,10 @@ INSERT [dbo].[ServiceItemTypes] ([ItemTypeID], [GroupID], [DisplayName], [TypeNa
GO GO
INSERT [dbo].[ServiceItemTypes] ([ItemTypeID], [GroupID], [DisplayName], [TypeName], [TypeOrder], [CalculateDiskspace], [CalculateBandwidth], [Suspendable], [Disposable], [Searchable], [Importable], [Backupable]) VALUES (36, 40, N'VirtualSwitch', N'WebsitePanel.Providers.Virtualization.VirtualSwitch, WebsitePanel.Providers.Base', 2, 0, 0, 1, 1, 1, 0, 0) INSERT [dbo].[ServiceItemTypes] ([ItemTypeID], [GroupID], [DisplayName], [TypeName], [TypeOrder], [CalculateDiskspace], [CalculateBandwidth], [Suspendable], [Disposable], [Searchable], [Importable], [Backupable]) VALUES (36, 40, N'VirtualSwitch', N'WebsitePanel.Providers.Virtualization.VirtualSwitch, WebsitePanel.Providers.Base', 2, 0, 0, 1, 1, 1, 0, 0)
GO GO
INSERT [dbo].[ServiceItemTypes] ([ItemTypeID], [GroupID], [DisplayName], [TypeName], [TypeOrder], [CalculateDiskspace], [CalculateBandwidth], [Suspendable], [Disposable], [Searchable], [Importable], [Backupable]) VALUES (37, 23, N'MsSQL2012Database', N'WebsitePanel.Providers.Database.SqlDatabase, WebsitePanel.Providers.Base', 1, 1, 0, 0, 1, 1, 1, 1)
GO
INSERT [dbo].[ServiceItemTypes] ([ItemTypeID], [GroupID], [DisplayName], [TypeName], [TypeOrder], [CalculateDiskspace], [CalculateBandwidth], [Suspendable], [Disposable], [Searchable], [Importable], [Backupable]) VALUES (38, 23, N'MsSQL2012User', N'WebsitePanel.Providers.Database.SqlUser, WebsitePanel.Providers.Base', 1, 0, 0, 0, 1, 1, 1, 1)
GO
INSERT [dbo].[ServiceItemTypes] ([ItemTypeID], [GroupID], [DisplayName], [TypeName], [TypeOrder], [CalculateDiskspace], [CalculateBandwidth], [Suspendable], [Disposable], [Searchable], [Importable], [Backupable]) VALUES (40, 33, N'ExchangeOrganization', N'WebsitePanel.Providers.ExchangeHostedEdition.ExchangeOrganization, WebsitePanel.Providers.Base', 1, 0, 0, 1, 1, 1, 0, 0) INSERT [dbo].[ServiceItemTypes] ([ItemTypeID], [GroupID], [DisplayName], [TypeName], [TypeOrder], [CalculateDiskspace], [CalculateBandwidth], [Suspendable], [Disposable], [Searchable], [Importable], [Backupable]) VALUES (40, 33, N'ExchangeOrganization', N'WebsitePanel.Providers.ExchangeHostedEdition.ExchangeOrganization, WebsitePanel.Providers.Base', 1, 0, 0, 1, 1, 1, 0, 0)
GO GO
INSERT [dbo].[ServiceItemTypes] ([ItemTypeID], [GroupID], [DisplayName], [TypeName], [TypeOrder], [CalculateDiskspace], [CalculateBandwidth], [Suspendable], [Disposable], [Searchable], [Importable], [Backupable]) VALUES (200, 20, N'SharePointSiteCollection', N'WebsitePanel.Providers.SharePoint.SharePointSiteCollection, WebsitePanel.Providers.Base', 25, 1, 0, 0, 1, 1, 1, 1) INSERT [dbo].[ServiceItemTypes] ([ItemTypeID], [GroupID], [DisplayName], [TypeName], [TypeOrder], [CalculateDiskspace], [CalculateBandwidth], [Suspendable], [Disposable], [Searchable], [Importable], [Backupable]) VALUES (200, 20, N'SharePointSiteCollection', N'WebsitePanel.Providers.SharePoint.SharePointSiteCollection, WebsitePanel.Providers.Base', 25, 1, 0, 0, 1, 1, 1, 1)
@ -23205,6 +23254,8 @@ INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName]
GO GO
INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (208, 20, N'HostedSharePoint2010', N'Hosted SharePoint Foundation 2010', N'WebsitePanel.Providers.HostedSolution.HostedSharePointServer2010, WebsitePanel.Providers.HostedSolution', N'HostedSharePoint30', NULL) INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (208, 20, N'HostedSharePoint2010', N'Hosted SharePoint Foundation 2010', N'WebsitePanel.Providers.HostedSolution.HostedSharePointServer2010, WebsitePanel.Providers.HostedSolution', N'HostedSharePoint30', NULL)
GO GO
INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (209, 23, N'MsSQL', N'Microsoft SQL Server 2012', N'WebsitePanel.Providers.Database.MsSqlServer2012, WebsitePanel.Providers.Database.SqlServer', N'MSSQL', NULL)
GO
INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (300, 30, N'HyperV', N'Microsoft Hyper-V', N'WebsitePanel.Providers.Virtualization.HyperV, WebsitePanel.Providers.Virtualization.HyperV', N'HyperV', 1) INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (300, 30, N'HyperV', N'Microsoft Hyper-V', N'WebsitePanel.Providers.Virtualization.HyperV, WebsitePanel.Providers.Virtualization.HyperV', N'HyperV', 1)
GO GO
INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (301, 11, N'MySQL', N'MySQL Server 5.5', N'WebsitePanel.Providers.Database.MySqlServer55, WebsitePanel.Providers.Database.MySQL', N'MySQL', NULL) INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (301, 11, N'MySQL', N'MySQL Server 5.5', N'WebsitePanel.Providers.Database.MySqlServer55, WebsitePanel.Providers.Database.MySQL', N'MySQL', NULL)

View file

@ -11,3 +11,819 @@ BEGIN
INSERT [dbo].[Versions] ([DatabaseVersion], [BuildDate]) VALUES (@build_version, @build_date) INSERT [dbo].[Versions] ([DatabaseVersion], [BuildDate]) VALUES (@build_version, @build_date)
END END
GO GO
IF NOT EXISTS (SELECT * FROM [dbo].[ResourceGroups] WHERE [GroupName] = 'MsSQL2012')
BEGIN
INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController]) VALUES (23, N'MsSQL2012', 10, N'WebsitePanel.EnterpriseServer.DatabaseServerController')
END
GO
UPDATE [dbo].[ResourceGroups] SET [GroupOrder] = 1 WHERE [GroupName] = N'OS'
GO
UPDATE [dbo].[ResourceGroups] SET [GroupOrder] = 2 WHERE [GroupName] = N'Web'
GO
UPDATE [dbo].[ResourceGroups] SET [GroupOrder] = 3 WHERE [GroupName] = N'FTP'
GO
UPDATE [dbo].[ResourceGroups] SET [GroupOrder] = 4 WHERE [GroupName] = N'Mail'
GO
UPDATE [dbo].[ResourceGroups] SET [GroupOrder] = 5 WHERE [GroupName] = N'Exchange'
GO
UPDATE [dbo].[ResourceGroups] SET [GroupOrder] = 6 WHERE [GroupName] = N'Hosted Organizations'
GO
UPDATE [dbo].[ResourceGroups] SET [GroupOrder] = 7 WHERE [GroupName] = N'ExchangeHostedEdition'
GO
UPDATE [dbo].[ResourceGroups] SET [GroupOrder] = 8 WHERE [GroupName] = N'MsSQL2000'
GO
UPDATE [dbo].[ResourceGroups] SET [GroupOrder] = 9 WHERE [GroupName] = N'MsSQL2005'
GO
UPDATE [dbo].[ResourceGroups] SET [GroupOrder] = 10 WHERE [GroupName] = N'MsSQL2008'
GO
UPDATE [dbo].[ResourceGroups] SET [GroupOrder] = 11 WHERE [GroupName] = N'MsSQL2012'
GO
UPDATE [dbo].[ResourceGroups] SET [GroupOrder] = 12 WHERE [GroupName] = N'MySQL4'
GO
UPDATE [dbo].[ResourceGroups] SET [GroupOrder] = 13 WHERE [GroupName] = N'MySQL5'
GO
UPDATE [dbo].[ResourceGroups] SET [GroupOrder] = 14 WHERE [GroupName] = N'SharePoint'
GO
UPDATE [dbo].[ResourceGroups] SET [GroupOrder] = 15 WHERE [GroupName] = N'Hosted SharePoint'
GO
UPDATE [dbo].[ResourceGroups] SET [GroupOrder] = 16 WHERE [GroupName] = N'Hosted CRM'
GO
UPDATE [dbo].[ResourceGroups] SET [GroupOrder] = 17 WHERE [GroupName] = N'DNS'
GO
UPDATE [dbo].[ResourceGroups] SET [GroupOrder] = 18 WHERE [GroupName] = N'Statistics'
GO
UPDATE [dbo].[ResourceGroups] SET [GroupOrder] = 19 WHERE [GroupName] = N'VPS'
GO
UPDATE [dbo].[ResourceGroups] SET [GroupOrder] = 20 WHERE [GroupName] = N'VPSForPC'
GO
UPDATE [dbo].[ResourceGroups] SET [GroupOrder] = 21 WHERE [GroupName] = N'BlackBerry'
GO
UPDATE [dbo].[ResourceGroups] SET [GroupOrder] = 22 WHERE [GroupName] = N'OCS'
GO
IF NOT EXISTS (SELECT * FROM [dbo].[ServiceItemTypes] WHERE [DisplayName] = 'MsSQL2012Database')
BEGIN
INSERT [dbo].[ServiceItemTypes] ([ItemTypeID], [GroupID], [DisplayName], [TypeName], [TypeOrder], [CalculateDiskspace], [CalculateBandwidth], [Suspendable], [Disposable], [Searchable], [Importable], [Backupable]) VALUES (37, 23, N'MsSQL2012Database', N'WebsitePanel.Providers.Database.SqlDatabase, WebsitePanel.Providers.Base', 1, 1, 0, 0, 1, 1, 1, 1)
END
GO
IF NOT EXISTS (SELECT * FROM [dbo].[ServiceItemTypes] WHERE [DisplayName] = 'MsSQL2012User')
BEGIN
INSERT [dbo].[ServiceItemTypes] ([ItemTypeID], [GroupID], [DisplayName], [TypeName], [TypeOrder], [CalculateDiskspace], [CalculateBandwidth], [Suspendable], [Disposable], [Searchable], [Importable], [Backupable]) VALUES (38, 23, N'MsSQL2012User', N'WebsitePanel.Providers.Database.SqlUser, WebsitePanel.Providers.Base', 1, 0, 0, 0, 1, 1, 1, 1)
END
GO
IF NOT EXISTS (SELECT * FROM [dbo].[Providers] WHERE [DisplayName] = 'Microsoft SQL Server 2012')
BEGIN
-- provider
INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (209, 23, N'MsSQL', N'Microsoft SQL Server 2012', N'WebsitePanel.Providers.Database.MsSqlServer2012, WebsitePanel.Providers.Database.SqlServer', N'MSSQL', NULL)
END
GO
IF NOT EXISTS (SELECT * FROM [dbo].[Quotas] WHERE [QuotaName] = 'MsSQL2012.Databases')
BEGIN
INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (218, 23, 1, N'MsSQL2012.Databases', N'Databases', 2, 0, 37)
END
GO
IF NOT EXISTS (SELECT * FROM [dbo].[Quotas] WHERE [QuotaName] = 'MsSQL2012.Users')
BEGIN
INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (219, 23, 2, N'MsSQL2012.Users', N'Users', 2, 0, 38)
END
GO
IF NOT EXISTS (SELECT * FROM [dbo].[Quotas] WHERE [QuotaName] = 'MsSQL2012.MaxDatabaseSize')
BEGIN
INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (221, 23, 3, N'MsSQL2012.MaxDatabaseSize', N'Max Database Size', 3, 0, NULL)
END
GO
IF NOT EXISTS (SELECT * FROM [dbo].[Quotas] WHERE [QuotaName] = 'MsSQL2012.Backup')
BEGIN
INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (222, 23, 5, N'MsSQL2012.Backup', N'Database Backups', 1, 0, NULL)
END
GO
IF NOT EXISTS (SELECT * FROM [dbo].[Quotas] WHERE [QuotaName] = 'MsSQL2012.Restore')
BEGIN
INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (223, 23, 6, N'MsSQL2012.Restore', N'Database Restores', 1, 0, NULL)
END
GO
IF NOT EXISTS (SELECT * FROM [dbo].[Quotas] WHERE [QuotaName] = 'MsSQL2012.Truncate')
BEGIN
INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (224, 23, 7, N'MsSQL2012.Truncate', N'Database Truncate', 1, 0, NULL)
END
GO
IF NOT EXISTS (SELECT * FROM [dbo].[Quotas] WHERE [QuotaName] = 'MsSQL2012.MaxLogSize')
BEGIN
INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID]) VALUES (225, 23, 4, N'MsSQL2012.MaxLogSize', N'Max Log Size', 3, 0, NULL)
END
GO
UPDATE [dbo].[ScheduleTaskParameters] SET DefaultValue = N'MsSQL2000=SQL Server 2000;MsSQL2005=SQL Server 2005;MsSQL2008=SQL Server 2008;MsSQL2012=SQL Server 2012;MySQL4=MySQL 4.0;MySQL5=MySQL 5.0' WHERE [ParameterID] = N'DATABASE_GROUP'
GO
UPDATE [dbo].[UserSettings] SET [PropertyValue] = N'<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Hosting Space Summary Information</title>
<style type="text/css">
.Summary { background-color: ##ffffff; padding: 5px; }
.Summary .Header { padding: 10px 0px 10px 10px; font-size: 16pt; background-color: ##E5F2FF; color: ##1F4978; border-bottom: solid 2px ##86B9F7; }
.Summary A { color: ##0153A4; }
.Summary { font-family: Tahoma; font-size: 9pt; }
.Summary H1 { font-size: 1.7em; color: ##1F4978; border-bottom: dotted 3px ##efefef; }
.Summary H2 { font-size: 1.2em; }
.Summary TABLE { border: solid 1px ##e5e5e5; }
.Summary TH,
.Summary TD.Label { padding: 5px; font-size: 8pt; font-weight: bold; background-color: ##f5f5f5; }
.Summary TD { padding: 8px; font-size: 9pt; }
.Summary UL LI { font-size: 1.1em; font-weight: bold; }
.Summary UL UL LI { font-size: 0.9em; font-weight: normal; }
</style>
</head>
<body>
<div class="Summary">
<a name="top"></a>
<div class="Header">
Hosting Space Information
</div>
<ad:if test="#Signup#">
<p>
Hello #user.FirstName#,
</p>
<p>
&quot;#space.Package.PackageName#&quot; hosting space has been created under your user account
and below is the summary information for its resources.
</p>
</ad:if>
<ul>
<ad:if test="#Signup#">
<li><a href="##cp">Control Panel URL</a></li>
</ad:if>
<li><a href="##overview">Hosting Space Overview</a></li>
<ad:if test="#space.Groups.ContainsKey("Web")#">
<li><a href="##web">Web</a></li>
<ul>
<li><a href="##weblimits">Limits</a></li>
<li><a href="##dns">Name Servers</a></li>
<li><a href="##sites">Web Sites</a></li>
<li><a href="##tempurl">Temporary URL</a></li>
<li><a href="##files">Files Location</a></li>
</ul>
</ad:if>
<ad:if test="#space.Groups.ContainsKey("FTP")#">
<li><a href="##ftp">FTP</a></li>
<ul>
<li><a href="##ftplimits">Limits</a></li>
<li><a href="##ftpserver">FTP Server</a></li>
<li><a href="##ftpaccounts">FTP Accounts</a></li>
</ul>
</ad:if>
<ad:if test="#space.Groups.ContainsKey("Mail")#">
<li><a href="##mail">Mail</a></li>
<ul>
<li><a href="##maillimits">Limits</a></li>
<li><a href="##smtp">SMTP/POP3 Server</a></li>
<li><a href="##mailaccounts">Mail Accounts</a></li>
</ul>
</ad:if>
<li><a href="##db">Databases</a></li>
<ul>
<ad:if test="#space.Groups.ContainsKey("MsSQL2000")#"><li><a href="##mssql2000">SQL Server 2000</a></li></ad:if>
<ad:if test="#space.Groups.ContainsKey("MsSQL2005")#"><li><a href="##mssql2005">SQL Server 2005</a></li></ad:if>
<ad:if test="#space.Groups.ContainsKey("MsSQL2008")#"><li><a href="##mssql2008">SQL Server 2008</a></li></ad:if>
<ad:if test="#space.Groups.ContainsKey("MsSQL2012")#"><li><a href="##mssql2012">SQL Server 2012</a></li></ad:if>
<ad:if test="#space.Groups.ContainsKey("MySQL4")#"><li><a href="##mysql4">My SQL 4.x</a></li></ad:if>
<ad:if test="#space.Groups.ContainsKey("MySQL5")#"><li><a href="##mysql5">My SQL 5.x</a></li></ad:if>
<li><a href="##msaccess">Microsoft Access</a></li>
</ul>
<ad:if test="#space.Groups.ContainsKey("Statistics")#"><li><a href="##stats">Statistics</a></li></ad:if>
</ul>
<ad:if test="#Signup#">
<a name="cp"></a>
<h1>Control Panel URL</h1>
<table>
<thead>
<tr>
<th>Control Panel URL</th>
<th>Username</th>
<th>Password</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="http://panel.HostingCompany.com">http://panel.HostingCompany.com</a></td>
<td>#user.Username#</td>
<td>#user.Password#</td>
</tr>
</tbody>
</table>
</ad:if>
<a name="overview"></a>
<h1>Hosting Space Overview</h1>
<p>
General hosting space limits:
</p>
<table>
<tr>
<td class="Label">Disk Space, MB:</td>
<td><ad:NumericQuota quota="OS.Diskspace" /></td>
</tr>
<tr>
<td class="Label">Bandwidth, MB/Month:</td>
<td><ad:NumericQuota quota="OS.Bandwidth" /></td>
</tr>
<tr>
<td class="Label">Maximum Number of Domains:</td>
<td><ad:NumericQuota quota="OS.Domains" /></td>
</tr>
<tr>
<td class="Label">Maximum Number of Sub-Domains:</td>
<td><ad:NumericQuota quota="OS.SubDomains" /></td>
</tr>
</table>
<ad:if test="#space.Groups.ContainsKey("Web")#">
<a name="web"></a>
<h1>Web</h1>
<a name="weblimits"></a>
<h2>
Limits
</h2>
<table>
<tr>
<td class="Label">Maximum Number of Web Sites:</td>
<td><ad:NumericQuota quota="Web.Sites" /></td>
</tr>
<tr>
<td class="Label">Web Application Gallery:</td>
<td><ad:BooleanQuota quota="Web.WebAppGallery" /></td>
</tr>
<tr>
<td class="Label">Classic ASP:</td>
<td><ad:BooleanQuota quota="Web.Asp" /></td>
</tr>
<tr>
<td class="Label">ASP.NET 1.1:</td>
<td><ad:BooleanQuota quota="Web.AspNet11" /></td>
</tr>
<tr>
<td class="Label">ASP.NET 2.0:</td>
<td><ad:BooleanQuota quota="Web.AspNet20" /></td>
</tr>
<tr>
<td class="Label">ASP.NET 4.0:</td>
<td><ad:BooleanQuota quota="Web.AspNet40" /></td>
</tr>
<tr>
<td class="Label">PHP 4:</td>
<td><ad:BooleanQuota quota="Web.Php4" /></td>
</tr>
<tr>
<td class="Label">PHP 5:</td>
<td><ad:BooleanQuota quota="Web.Php5" /></td>
</tr>
<tr>
<td class="Label">Perl:</td>
<td><ad:BooleanQuota quota="Web.Perl" /></td>
</tr>
<tr>
<td class="Label">CGI-BIN:</td>
<td><ad:BooleanQuota quota="Web.CgiBin" /></td>
</tr>
</table>
<a name="dns"></a>
<h2>Name Servers</h2>
<p>
In order to point your domain to the web site in this hosting space you should use the following Name Servers:
</p>
<table>
<ad:foreach collection="#NameServers#" var="NameServer" index="i">
<tr>
<td class="Label">#NameServer#</td>
</tr>
</ad:foreach>
</table>
<p>
You should change the name servers in domain registrar (Register.com, GoDaddy.com, etc.) control panel.
Please, study domain registrar''s user manual for directions how to change name servers or contact your domain
registrar directly by e-mail or phone.
</p>
<p>
Please note, the changes in domain registrar database do not reflect immediately and sometimes it requires from
12 to 48 hours till the end of DNS propagation.
</p>
<a name="sites"></a>
<h2>Web Sites</h2>
<p>
The following web sites have been created under hosting space:
</p>
<table>
<ad:foreach collection="#WebSites#" var="WebSite">
<tr>
<td><a href="http://#WebSite.Name#" target="_blank">http://#WebSite.Name#</a></td>
</tr>
</ad:foreach>
</table>
<p>
* Please note, your web sites may not be accessible from 12 to 48 hours after you''ve changed name servers for their respective domains.
</p>
<ad:if test="#isnotempty(InstantAlias)#">
<a name="tempurl"></a>
<h2>Temporary URL</h2>
<p>
You can access your web sites right now using their respective temporary URLs (instant aliases).
Temporary URL is a sub-domain of the form http://yourdomain.com.providerdomain.com where &quot;yourdomain.com&quot; is your
domain and &quot;providerdomain.com&quot; is the domain of your hosting provider.
</p>
<p>
You can use the following Temporary URL for all your web sites:
</p>
<table>
<tr>
<td>
http://YourDomain.com.<b>#InstantAlias#</b>
</td>
</tr>
</table>
</ad:if>
<a name="files"></a>
<h2>Files Location</h2>
<p>
Sometimes it is required to know the physical location of the hosting space folder (absolute path).
Hosting space folder is the folder where all hosting space files such as web sites content, web logs, data files, etc. are located.
</p>
<p>
The root of your hosting space on our HDD is here:
</p>
<table>
<tr>
<td>
#PackageRootFolder#
</td>
</tr>
</table>
<p>
By default the root folder of any web site within your hosting space is built as following (you can change it anytime from the control panel):
</p>
<table>
<tr>
<td>
#PackageRootFolder#\YourDomain.com\wwwroot
</td>
</tr>
</table>
</ad:if>
<ad:if test="#space.Groups.ContainsKey("FTP")#">
<a name="ftp"></a>
<h1>FTP</h1>
<a name="ftplimits"></a>
<h2>Limits</h2>
<table>
<tr>
<td class="Label">Maximum Number of FTP Accounts:</td>
<td><ad:NumericQuota quota="FTP.Accounts" /></td>
</tr>
</table>
<a name="ftpserver"></a>
<h2>FTP Server</h2>
<p>
Your hosting space allows working with your files by FTP.
You can use the following FTP server to access your space files remotely:
</p>
<table>
<tr>
<td><a href="ftp://#FtpIP#">ftp://#FtpIP#</a></td>
</tr>
</table>
<p>
Also, you can use the following domain names to access your FTP server:
</p>
<table>
<tr>
<td>ftp://ftp.YourDomain.com</td>
</tr>
</table>
<ad:if test="#isnotempty(InstantAlias)#">
<p>
During DNS propagation period (when domain name servers have been changed), similar to web sites, FTP server can be access with Temporary URL too:
</p>
<table>
<tr>
<td>ftp://ftp.YourDomain.com.<b>#InstantAlias#</b></td>
</tr>
</table>
</ad:if>
<a name="ftpaccounts"></a>
<h2>FTP Accounts</h2>
<p>
The following FTP accounts have been created under your hosting space and can be used to access FTP server:
</p>
<table>
<thead>
<tr>
<th>Username</th>
<ad:if test="#Signup#">
<th>Password</th>
</ad:if>
<th>Folder</th>
</tr>
</thead>
<tbody>
<ad:foreach collection="#FtpAccounts#" var="FtpAcocunt" index="i">
<tr>
<td>#FtpAcocunt.Name#</td>
<ad:if test="#Signup#">
<td>
#FtpAcocunt.Password#
</td>
</ad:if>
<td>#FtpAcocunt.Folder#</td>
</tr>
</ad:foreach>
</tbody>
</table>
</ad:if>
<ad:if test="#space.Groups.ContainsKey("Mail")#">
<a name="mail"></a>
<h1>Mail</h1>
<a name="maillimits"></a>
<h2>Limits</h2>
<table>
<tr>
<td class="Label">Maximum Number of Mail Accounts:</td>
<td><ad:NumericQuota quota="Mail.Accounts" /></td>
</tr>
<tr>
<td class="Label">Maximum Number of Mail Forwardings:</td>
<td><ad:NumericQuota quota="Mail.Forwardings" /></td>
</tr>
<tr>
<td class="Label">Maximum Number of Mail Groups (Aliases):</td>
<td><ad:NumericQuota quota="Mail.Groups" /></td>
</tr>
<tr>
<td class="Label">Maximum Number of Mailing Lists:</td>
<td><ad:NumericQuota quota="Mail.Lists" /></td>
</tr>
</table>
<a name="smtp"></a>
<h2>SMTP/POP3 Server</h2>
<p>
Below is the IP address of your POP3/SMTP/IMAP server. You can always access your mailbox(es)
using this IP address instead of actual POP3/SMTP/IMAP servers name:
</p>
<table>
<tr>
<td>
#MailRecords[0].ExternalIP#
</td>
</tr>
</table>
<p>
Also, you can use the following domain names to access SMTP/POP3 server from your favourite e-mail client software:
</p>
<table>
<tr>
<td>mail.YourDomain.com</td>
</tr>
</table>
<ad:if test="#isnotempty(InstantAlias)#">
<p>
During DNS propagation period (when domain name servers have been changed), similar to web sites, SMTP/POP3 server can be access with temporary domain too:
</p>
<table>
<tr>
<td>mail.YourDomain.com.<b>#InstantAlias#</b></td>
</tr>
</table>
</ad:if>
<a name="mailaccounts"></a>
<h2>Mail Accounts</h2>
<p>
The following mail accounts have been created under your hosting space:
</p>
<table>
<thead>
<tr>
<th>E-mail</th>
<th>Username (for POP3/SMTP/IMAP/WebMail)</th>
<ad:if test="#Signup#">
<th>Password</th>
</ad:if>
</tr>
</thead>
<tbody>
<ad:foreach collection="#MailAccounts#" var="MailAccount">
<tr>
<td>#MailAccount.Name#</td>
<td>#MailAccount.Name#</td>
<ad:if test="#Signup#">
<td>
#MailAccount.Password#
</td>
</ad:if>
</tr>
</ad:foreach>
</tbody>
</table>
</ad:if>
<a name="db"></a>
<h1>Databases</h1>
<p>
You can create databases and database users on "Space Home -&gt; Databases" screen in the control panel.
</p>
<ad:if test="#space.Groups.ContainsKey("MsSQL2000")#">
<a name="mssql2000"></a>
<h2>SQL Server 2000</h2>
<table>
<tr>
<td class="Label">Maximum Number of Databases:</td>
<td><ad:NumericQuota quota="MsSQL2000.Databases" /></td>
</tr>
<tr>
<td class="Label">Maximum Number of Users:</td>
<td><ad:NumericQuota quota="MsSQL2000.Users" /></td>
</tr>
</table>
<p>
In order to connect to SQL Server 2000 from Management Studio, Enterprise Manager, Query Analyzer
or other client software you can use the following SQL Server address:
</p>
<table>
<tr>
<td>#MsSQL2000Address#</td>
</tr>
</table>
<ad:MsSqlConnectionStrings server="#MsSQL2000Address#" />
</ad:if>
<ad:if test="#space.Groups.ContainsKey("MsSQL2005")#">
<a name="mssql2005"></a>
<h2>SQL Server 2005</h2>
<table>
<tr>
<td class="Label">Maximum Number of Databases:</td>
<td><ad:NumericQuota quota="MsSQL2005.Databases" /></td>
</tr>
<tr>
<td class="Label">Maximum Number of Users:</td>
<td><ad:NumericQuota quota="MsSQL2005.Users" /></td>
</tr>
</table>
<p>
In order to connect to SQL Server 2005 from Management Studio, Enterprise Manager, Query Analyzer
or other client software you can use the following SQL Server address:
</p>
<table>
<tr>
<td>#MsSQL2005Address#</td>
</tr>
</table>
<ad:MsSqlConnectionStrings server="#MsSQL2005Address#" />
</ad:if>
<ad:if test="#space.Groups.ContainsKey("MsSQL2008")#">
<a name="mssql2008"></a>
<h2>SQL Server 2008</h2>
<table>
<tr>
<td class="Label">Maximum Number of Databases:</td>
<td><ad:NumericQuota quota="MsSQL2008.Databases" /></td>
</tr>
<tr>
<td class="Label">Maximum Number of Users:</td>
<td><ad:NumericQuota quota="MsSQL2008.Users" /></td>
</tr>
</table>
<p>
In order to connect to SQL Server 2008 from Management Studio, Enterprise Manager, Query Analyzer
or other client software you can use the following SQL Server address:
</p>
<table>
<tr>
<td>#MsSQL2008Address#</td>
</tr>
</table>
<ad:MsSqlConnectionStrings server="#MsSQL2008Address#" />
</ad:if>
<ad:if test="#space.Groups.ContainsKey("MsSQL2012")#">
<a name="mssql2012"></a>
<h2>SQL Server 2012</h2>
<table>
<tr>
<td class="Label">Maximum Number of Databases:</td>
<td><ad:NumericQuota quota="MsSQL2012.Databases" /></td>
</tr>
<tr>
<td class="Label">Maximum Number of Users:</td>
<td><ad:NumericQuota quota="MsSQL2012.Users" /></td>
</tr>
</table>
<p>
In order to connect to SQL Server 2012 from Management Studio, Enterprise Manager, Query Analyzer
or other client software you can use the following SQL Server address:
</p>
<table>
<tr>
<td>#MsSQL2012Address#</td>
</tr>
</table>
<ad:MsSqlConnectionStrings server="#MsSQL2012Address#" />
</ad:if>
<ad:if test="#space.Groups.ContainsKey("MySQL4")#">
<a name="mysql4"></a>
<h2>MySQL 4.x</h2>
<table>
<tr>
<td class="Label">Maximum Number of Databases:</td>
<td><ad:NumericQuota quota="MySQL4.Databases" /></td>
</tr>
<tr>
<td class="Label">Maximum Number of Users:</td>
<td><ad:NumericQuota quota="MySQL4.Users" /></td>
</tr>
</table>
<p>
In order to connect to MySQL 4.x server you can use the following address:
</p>
<table>
<tr>
<td>#MySQL4Address#</td>
</tr>
</table>
</ad:if>
<ad:if test="#space.Groups.ContainsKey("MySQL5")#">
<a name="mysql5"></a>
<h2>MySQL 5.x</h2>
<table>
<tr>
<td class="Label">Maximum Number of Databases:</td>
<td><ad:NumericQuota quota="MySQL5.Databases" /></td>
</tr>
<tr>
<td class="Label">Maximum Number of Users:</td>
<td><ad:NumericQuota quota="MySQL5.Users" /></td>
</tr>
</table>
<p>
In order to connect to MySQL 5.x server you can use the following address:
</p>
<table>
<tr>
<td>#MySQL5Address#</td>
</tr>
</table>
</ad:if>
<a name="msaccess"></a>
<h2>Microsoft Access</h2>
<p>
Microsoft Access database are automatically allowed in any hosting plan. You can create/upload any number of Access
database from File Manager in control panel.
</p>
<ad:if test="#space.Groups.ContainsKey("Statistics")#">
<a name="stats"></a>
<h1>Web Statistics</h1>
<table>
<tr>
<td class="Label">Maximum Number of Statistics Sites:</td>
<td><ad:NumericQuota quota="Stats.Sites" /></td>
</tr>
</table>
<p>
You can view advanced statistics from your domain using URL of the following form:
</p>
<table>
<tr>
<td>http://stats.YourDomain.com</td>
</tr>
</table>
<ad:if test="#isnotempty(InstantAlias)#">
<p>
During DNS propagation period (when domain name servers have been changed), you can access web site statistics with Temporary URL:
</p>
<table>
<tr>
<td>http://stats.YourDomain.com.<b>#InstantAlias#</b></td>
</tr>
</table>
</ad:if>
</ad:if>
<ad:if test="#Signup#">
<p>
If you have any questions regarding your hosting account, feel free to contact our support department at any time.
</p>
<p>
Best regards,<br />
ACME Hosting Inc.<br />
Web Site: <a href="http://www.AcmeHosting.com">www.AcmeHosting.com</a><br />
E-Mail: <a href="mailto:support@AcmeHosting.com">support@AcmeHosting.com</a>
</p>
</ad:if>
<!-- Templates -->
<ad:template name="MsSqlConnectionStrings">
<p>
You may also use SQL Server address above in your application connection strings, for example:
</p>
<table>
<tr>
<td class="Label">Classic ASP (ADO Library)</td>
<td>Provider=SQLOLEDB;Data source=<b>#server#</b>;Initial catalog=databaseName;User Id=userName;Password=password;</td>
</tr>
<tr>
<td class="Label">ASP.NET (ADO.NET Library)</td>
<td>Server=<b>#server#</b>;Database=databaseName;Uid=userName;Password=password;</td>
</tr>
</table>
</ad:template>
<ad:template name="NumericQuota">
<ad:if test="#space.Quotas.ContainsKey(quota)#">
<ad:if test="#space.Quotas[quota].QuotaAllocatedValue isnot -1#">#space.Quotas[quota].QuotaAllocatedValue#<ad:else>Unlimited</ad:if>
<ad:else>
0
</ad:if>
</ad:template>
<ad:template name="BooleanQuota">
<ad:if test="#space.Quotas.ContainsKey(quota)#">
<ad:if test="#space.Quotas[quota].QuotaAllocatedValue isnot 0#">Enabled<ad:else>Disabled</ad:if>
<ad:else>
Disabled
</ad:if>
</ad:template>
</div>
</body>
</html>' WHERE [PropertyName] = N'HtmlBody'
GO
IF NOT EXISTS (SELECT * FROM [dbo].[Providers] WHERE [DisplayName] = 'Microsoft SQL Server 2012')
BEGIN
INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (209, 23, N'MsSQL', N'Microsoft SQL Server 2012', N'WebsitePanel.Providers.Database.MsSqlServer2012, WebsitePanel.Providers.Database.SqlServer', N'MSSQL', NULL)
END
GO

View file

@ -228,6 +228,7 @@ and below is the summary information for its resources.
&lt;ad:if test="#space.Groups.ContainsKey("MsSQL2000")#"&gt;&lt;li&gt;&lt;a href="##mssql2000"&gt;SQL Server 2000&lt;/a&gt;&lt;/li&gt;&lt;/ad:if&gt; &lt;ad:if test="#space.Groups.ContainsKey("MsSQL2000")#"&gt;&lt;li&gt;&lt;a href="##mssql2000"&gt;SQL Server 2000&lt;/a&gt;&lt;/li&gt;&lt;/ad:if&gt;
&lt;ad:if test="#space.Groups.ContainsKey("MsSQL2005")#"&gt;&lt;li&gt;&lt;a href="##mssql2005"&gt;SQL Server 2005&lt;/a&gt;&lt;/li&gt;&lt;/ad:if&gt; &lt;ad:if test="#space.Groups.ContainsKey("MsSQL2005")#"&gt;&lt;li&gt;&lt;a href="##mssql2005"&gt;SQL Server 2005&lt;/a&gt;&lt;/li&gt;&lt;/ad:if&gt;
&lt;ad:if test="#space.Groups.ContainsKey("MsSQL2008")#"&gt;&lt;li&gt;&lt;a href="##mssql2008"&gt;SQL Server 2008&lt;/a&gt;&lt;/li&gt;&lt;/ad:if&gt; &lt;ad:if test="#space.Groups.ContainsKey("MsSQL2008")#"&gt;&lt;li&gt;&lt;a href="##mssql2008"&gt;SQL Server 2008&lt;/a&gt;&lt;/li&gt;&lt;/ad:if&gt;
&lt;ad:if test="#space.Groups.ContainsKey("MsSQL2012")#"&gt;&lt;li&gt;&lt;a href="##mssql2012"&gt;SQL Server 2012&lt;/a&gt;&lt;/li&gt;&lt;/ad:if&gt;
&lt;ad:if test="#space.Groups.ContainsKey("MySQL4")#"&gt;&lt;li&gt;&lt;a href="##mysql4"&gt;My SQL 4.x&lt;/a&gt;&lt;/li&gt;&lt;/ad:if&gt; &lt;ad:if test="#space.Groups.ContainsKey("MySQL4")#"&gt;&lt;li&gt;&lt;a href="##mysql4"&gt;My SQL 4.x&lt;/a&gt;&lt;/li&gt;&lt;/ad:if&gt;
&lt;ad:if test="#space.Groups.ContainsKey("MySQL5")#"&gt;&lt;li&gt;&lt;a href="##mysql5"&gt;My SQL 5.x&lt;/a&gt;&lt;/li&gt;&lt;/ad:if&gt; &lt;ad:if test="#space.Groups.ContainsKey("MySQL5")#"&gt;&lt;li&gt;&lt;a href="##mysql5"&gt;My SQL 5.x&lt;/a&gt;&lt;/li&gt;&lt;/ad:if&gt;
&lt;li&gt;&lt;a href="##msaccess"&gt;Microsoft Access&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="##msaccess"&gt;Microsoft Access&lt;/a&gt;&lt;/li&gt;
@ -675,6 +676,34 @@ using this IP address instead of actual POP3/SMTP/IMAP servers name:
&lt;ad:MsSqlConnectionStrings server="#MsSQL2008Address#" /&gt; &lt;ad:MsSqlConnectionStrings server="#MsSQL2008Address#" /&gt;
&lt;/ad:if&gt; &lt;/ad:if&gt;
&lt;ad:if test="#space.Groups.ContainsKey("MsSQL2012")#"&gt;
&lt;a name="mssql2012"&gt;&lt;/a&gt;
&lt;h2&gt;SQL Server 2012&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;td class="Label"&gt;Maximum Number of Databases:&lt;/td&gt;
&lt;td&gt;&lt;ad:NumericQuota quota="MsSQL2012.Databases" /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class="Label"&gt;Maximum Number of Users:&lt;/td&gt;
&lt;td&gt;&lt;ad:NumericQuota quota="MsSQL2012.Users" /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;p&gt;
In order to connect to SQL Server 2012 from Management Studio, Enterprise Manager, Query Analyzer
or other client software you can use the following SQL Server address:
&lt;/p&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;td&gt;#MsSQL2012Address#&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;ad:MsSqlConnectionStrings server="#MsSQL2012Address#" /&gt;
&lt;/ad:if&gt;
&lt;ad:if test="#space.Groups.ContainsKey("MySQL4")#"&gt; &lt;ad:if test="#space.Groups.ContainsKey("MySQL4")#"&gt;
&lt;a name="mysql4"&gt;&lt;/a&gt; &lt;a name="mysql4"&gt;&lt;/a&gt;
&lt;h2&gt;MySQL 4.x&lt;/h2&gt; &lt;h2&gt;MySQL 4.x&lt;/h2&gt;
@ -1009,6 +1038,18 @@ In order to connect to SQL Server 2008 from Management Studio, Enterprise Manage
&lt;ad:MsSqlConnectionStrings server="#MsSQL2008Address#" /&gt; &lt;ad:MsSqlConnectionStrings server="#MsSQL2008Address#" /&gt;
&lt;/ad:if&gt; &lt;/ad:if&gt;
&lt;ad:if test="#space.Groups.ContainsKey("MsSQL2012")#"&gt;SQL Server 2012
---------------
Maximum Number of Databases: &lt;ad:NumericQuota quota="MsSQL2012.Databases" /&gt;
Maximum Number of Users: &lt;ad:NumericQuota quota="MsSQL2012.Users" /&gt;
In order to connect to SQL Server 2012 from Management Studio, Enterprise Manager, Query Analyzer or other client software you can use the following SQL Server address:
#MsSQL2012Address#&lt;/td&gt;
&lt;ad:MsSqlConnectionStrings server="#MsSQL2012Address#" /&gt;
&lt;/ad:if&gt;
&lt;ad:if test="#space.Groups.ContainsKey("MySQL4")#"&gt;MySQL 4.x &lt;ad:if test="#space.Groups.ContainsKey("MySQL4")#"&gt;MySQL 4.x
--------- ---------

View file

@ -1,4 +1,4 @@
<?xml version="1.0" standalone="yes"?> <?xml version="1.0" standalone="yes"?>
<Resources xmlns="http://tempuri.org/Resources.xsd"> <Resources xmlns="http://tempuri.org/Resources.xsd">
<Resource> <Resource>
<File>App_GlobalResources\Ecommerce_Modules.ascx.resx</File> <File>App_GlobalResources\Ecommerce_Modules.ascx.resx</File>
@ -3334,6 +3334,16 @@
<Key>ModuleTitle.Sql2008Users</Key> <Key>ModuleTitle.Sql2008Users</Key>
<DefaultValue>SQL Server 2008 Logins</DefaultValue> <DefaultValue>SQL Server 2008 Logins</DefaultValue>
</Resource> </Resource>
<Resource>
<File>App_GlobalResources\WebsitePanel_Modules.ascx.resx</File>
<Key>ModuleTitle.Sql2012Databases</Key>
<DefaultValue>SQL Server 2012 Databases</DefaultValue>
</Resource>
<Resource>
<File>App_GlobalResources\WebsitePanel_Modules.ascx.resx</File>
<Key>ModuleTitle.Sql2012Users</Key>
<DefaultValue>SQL Server 2012 Logins</DefaultValue>
</Resource>
<Resource> <Resource>
<File>App_GlobalResources\WebsitePanel_Modules.ascx.resx</File> <File>App_GlobalResources\WebsitePanel_Modules.ascx.resx</File>
<Key>ModuleTitle.SQLDatabaseProperties</Key> <Key>ModuleTitle.SQLDatabaseProperties</Key>
@ -3994,6 +4004,16 @@
<Key>PageTitle.SpaceMsSql2008</Key> <Key>PageTitle.SpaceMsSql2008</Key>
<DefaultValue>{user} - {space} - SQL Server 2008</DefaultValue> <DefaultValue>{user} - {space} - SQL Server 2008</DefaultValue>
</Resource> </Resource>
<Resource>
<File>App_GlobalResources\WebsitePanel_Pages.ascx.resx</File>
<Key>PageName.SpaceMsSql2012</Key>
<DefaultValue>SQL Server 2012</DefaultValue>
</Resource>
<Resource>
<File>App_GlobalResources\WebsitePanel_Pages.ascx.resx</File>
<Key>PageTitle.SpaceMsSql2012</Key>
<DefaultValue>{user} - {space} - SQL Server 2012</DefaultValue>
</Resource>
<Resource> <Resource>
<File>App_GlobalResources\WebsitePanel_Pages.ascx.resx</File> <File>App_GlobalResources\WebsitePanel_Pages.ascx.resx</File>
<Key>PageTitle.SpaceMsSql2005</Key> <Key>PageTitle.SpaceMsSql2005</Key>
@ -7094,6 +7114,36 @@
<Key>Quota.MsSQL2008.Users</Key> <Key>Quota.MsSQL2008.Users</Key>
<DefaultValue>Users</DefaultValue> <DefaultValue>Users</DefaultValue>
</Resource> </Resource>
<Resource>
<File>App_GlobalResources\WebsitePanel_SharedResources.ascx.resx</File>
<Key>Quota.MsSQL2012.Backup</Key>
<DefaultValue>Database Backups</DefaultValue>
</Resource>
<Resource>
<File>App_GlobalResources\WebsitePanel_SharedResources.ascx.resx</File>
<Key>Quota.MsSQL2012.Databases</Key>
<DefaultValue>Databases</DefaultValue>
</Resource>
<Resource>
<File>App_GlobalResources\WebsitePanel_SharedResources.ascx.resx</File>
<Key>Quota.MsSQL2012.MaxDatabaseSize</Key>
<DefaultValue>Max Database Size, MB</DefaultValue>
</Resource>
<Resource>
<File>App_GlobalResources\WebsitePanel_SharedResources.ascx.resx</File>
<Key>Quota.MsSQL2012.Restore</Key>
<DefaultValue>Database Restores</DefaultValue>
</Resource>
<Resource>
<File>App_GlobalResources\WebsitePanel_SharedResources.ascx.resx</File>
<Key>Quota.MsSQL2012.Truncate</Key>
<DefaultValue>Database Truncate</DefaultValue>
</Resource>
<Resource>
<File>App_GlobalResources\WebsitePanel_SharedResources.ascx.resx</File>
<Key>Quota.MsSQL2012.Users</Key>
<DefaultValue>Users</DefaultValue>
</Resource>
<Resource> <Resource>
<File>App_GlobalResources\WebsitePanel_SharedResources.ascx.resx</File> <File>App_GlobalResources\WebsitePanel_SharedResources.ascx.resx</File>
<Key>Quota.MySQL5.Backup</Key> <Key>Quota.MySQL5.Backup</Key>
@ -7129,6 +7179,11 @@
<Key>ResourceGroup.MsSQL2008</Key> <Key>ResourceGroup.MsSQL2008</Key>
<DefaultValue>SQL Server 2008</DefaultValue> <DefaultValue>SQL Server 2008</DefaultValue>
</Resource> </Resource>
<Resource>
<File>App_GlobalResources\WebsitePanel_SharedResources.ascx.resx</File>
<Key>ResourceGroup.MsSQL2012</Key>
<DefaultValue>SQL Server 2012</DefaultValue>
</Resource>
<Resource> <Resource>
<File>App_GlobalResources\WebsitePanel_SharedResources.ascx.resx</File> <File>App_GlobalResources\WebsitePanel_SharedResources.ascx.resx</File>
<Key>ResourceGroup.MySQL5</Key> <Key>ResourceGroup.MySQL5</Key>
@ -7449,6 +7504,16 @@
<Key>ServiceItemType.MsSQL2008User</Key> <Key>ServiceItemType.MsSQL2008User</Key>
<DefaultValue>MS SQL 2008 User</DefaultValue> <DefaultValue>MS SQL 2008 User</DefaultValue>
</Resource> </Resource>
<Resource>
<File>App_GlobalResources\WebsitePanel_SharedResources.ascx.resx</File>
<Key>ServiceItemType.MsSQL2012Database</Key>
<DefaultValue>MS SQL 2012 Database</DefaultValue>
</Resource>
<Resource>
<File>App_GlobalResources\WebsitePanel_SharedResources.ascx.resx</File>
<Key>ServiceItemType.MsSQL2012User</Key>
<DefaultValue>MS SQL 2012 User</DefaultValue>
</Resource>
<Resource> <Resource>
<File>App_GlobalResources\WebsitePanel_SharedResources.ascx.resx</File> <File>App_GlobalResources\WebsitePanel_SharedResources.ascx.resx</File>
<Key>ServiceItemType.MySQL4Database</Key> <Key>ServiceItemType.MySQL4Database</Key>
@ -9300,6 +9365,11 @@
<Key>Quota.MsSQL2008.MaxLogSize</Key> <Key>Quota.MsSQL2008.MaxLogSize</Key>
<DefaultValue>Max Log Size, MB</DefaultValue> <DefaultValue>Max Log Size, MB</DefaultValue>
</Resource> </Resource>
<Resource>
<File>App_GlobalResources\WebsitePanel_SharedResources.ascx.resx</File>
<Key>Quota.MsSQL2012.MaxLogSize</Key>
<DefaultValue>Max Log Size, MB</DefaultValue>
</Resource>
<Resource> <Resource>
<File>App_GlobalResources\WebsitePanel_SharedResources.ascx.resx</File> <File>App_GlobalResources\WebsitePanel_SharedResources.ascx.resx</File>
<Key>Error.EXCHANGE_UPDATE_MAILBOX_PERMISSIONS</Key> <Key>Error.EXCHANGE_UPDATE_MAILBOX_PERMISSIONS</Key>
@ -11875,6 +11945,11 @@
<Key>ReportResourceGroup.MsSQL2008</Key> <Key>ReportResourceGroup.MsSQL2008</Key>
<DefaultValue>SQL Server 2008</DefaultValue> <DefaultValue>SQL Server 2008</DefaultValue>
</Resource> </Resource>
<Resource>
<File>App_GlobalResources\WebsitePanel_SharedResources.ascx.resx</File>
<Key>ReportResourceGroup.MsSQL2012</Key>
<DefaultValue>SQL Server 2012</DefaultValue>
</Resource>
<Resource> <Resource>
<File>App_GlobalResources\WebsitePanel_SharedResources.ascx.resx</File> <File>App_GlobalResources\WebsitePanel_SharedResources.ascx.resx</File>
<Key>WebAppGallery.ApplicationInstallationError</Key> <Key>WebAppGallery.ApplicationInstallationError</Key>
@ -15762,6 +15837,11 @@ for your installation of ResellerClub .NET API Kit.&lt;/div&gt;</DefaultValue>
<Key>lclMSSQL2008Resources.Text</Key> <Key>lclMSSQL2008Resources.Text</Key>
<DefaultValue>Microsoft SQL 2008 Quotas</DefaultValue> <DefaultValue>Microsoft SQL 2008 Quotas</DefaultValue>
</Resource> </Resource>
<Resource>
<File>DesktopModules\Ecommerce\UserControls\App_LocalResources\HostingPlanQuotas.ascx.resx</File>
<Key>lclMSSQL2012Resources.Text</Key>
<DefaultValue>Microsoft SQL 2012 Quotas</DefaultValue>
</Resource>
<Resource> <Resource>
<File>DesktopModules\Ecommerce\UserControls\App_LocalResources\LoginUserAccount.ascx.resx</File> <File>DesktopModules\Ecommerce\UserControls\App_LocalResources\LoginUserAccount.ascx.resx</File>
<Key>lclPassword.Text</Key> <Key>lclPassword.Text</Key>

View file

@ -38,6 +38,7 @@ namespace WebsitePanel.EnterpriseServer
public const string MySql4 = "MySQL4"; public const string MySql4 = "MySQL4";
public const string MsSql2005 = "MsSQL2005"; public const string MsSql2005 = "MsSQL2005";
public const string MsSql2008 = "MsSQL2008"; public const string MsSql2008 = "MsSQL2008";
public const string MsSql2012 = "MsSQL2012";
public const string MySql5 = "MySQL5"; public const string MySql5 = "MySQL5";
public const string Dns = "DNS"; public const string Dns = "DNS";
public const string Statistics = "Statistics"; public const string Statistics = "Statistics";

View file

@ -1875,6 +1875,7 @@ namespace WebsitePanel.EnterpriseServer
SetSqlServerExternalAddress(packageId, items, ResourceGroups.MsSql2000); SetSqlServerExternalAddress(packageId, items, ResourceGroups.MsSql2000);
SetSqlServerExternalAddress(packageId, items, ResourceGroups.MsSql2005); SetSqlServerExternalAddress(packageId, items, ResourceGroups.MsSql2005);
SetSqlServerExternalAddress(packageId, items, ResourceGroups.MsSql2008); SetSqlServerExternalAddress(packageId, items, ResourceGroups.MsSql2008);
SetSqlServerExternalAddress(packageId, items, ResourceGroups.MsSql2012);
SetSqlServerExternalAddress(packageId, items, ResourceGroups.MySql4); SetSqlServerExternalAddress(packageId, items, ResourceGroups.MySql4);
SetSqlServerExternalAddress(packageId, items, ResourceGroups.MySql5); SetSqlServerExternalAddress(packageId, items, ResourceGroups.MySql5);

View file

@ -169,10 +169,11 @@ namespace WebsitePanel.EnterpriseServer
//{ //{
// appsFilter.AddRange(SupportedAppDependencies.PHP_SCRIPTING); // appsFilter.AddRange(SupportedAppDependencies.PHP_SCRIPTING);
//} //}
//// if either MSSQL 2000, 2005 or 2008 enabled in the hosting plan //// if either MSSQL 2000, 2005, 2008 or 2012 enabled in the hosting plan
//if (context.Groups.ContainsKey(ResourceGroups.MsSql2000) || //if (context.Groups.ContainsKey(ResourceGroups.MsSql2000) ||
// context.Groups.ContainsKey(ResourceGroups.MsSql2005) || // context.Groups.ContainsKey(ResourceGroups.MsSql2005) ||
// context.Groups.ContainsKey(ResourceGroups.MsSql2008)) // context.Groups.ContainsKey(ResourceGroups.MsSql2008) ||
// context.Groups.ContainsKey(ResourceGroups.MsSql2012))
//{ //{
// appsFilter.AddRange(SupportedAppDependencies.MSSQL_DATABASE); // appsFilter.AddRange(SupportedAppDependencies.MSSQL_DATABASE);
//} //}
@ -342,6 +343,7 @@ namespace WebsitePanel.EnterpriseServer
!(context.Groups.ContainsKey(ResourceGroups.MsSql2000) !(context.Groups.ContainsKey(ResourceGroups.MsSql2000)
|| context.Groups.ContainsKey(ResourceGroups.MsSql2005) || context.Groups.ContainsKey(ResourceGroups.MsSql2005)
|| context.Groups.ContainsKey(ResourceGroups.MsSql2008) || context.Groups.ContainsKey(ResourceGroups.MsSql2008)
|| context.Groups.ContainsKey(ResourceGroups.MsSql2012)
|| context.Groups.ContainsKey(ResourceGroups.MySql4) || context.Groups.ContainsKey(ResourceGroups.MySql4)
|| context.Groups.ContainsKey(ResourceGroups.MySql5))) || context.Groups.ContainsKey(ResourceGroups.MySql5)))
result.ErrorCodes.Add(GalleryErrors.DatabaseRequired); result.ErrorCodes.Add(GalleryErrors.DatabaseRequired);
@ -350,7 +352,8 @@ namespace WebsitePanel.EnterpriseServer
else if ((app.WellKnownDependencies & GalleryApplicationWellKnownDependency.SQL) == GalleryApplicationWellKnownDependency.SQL else if ((app.WellKnownDependencies & GalleryApplicationWellKnownDependency.SQL) == GalleryApplicationWellKnownDependency.SQL
&& !(context.Groups.ContainsKey(ResourceGroups.MsSql2000) && !(context.Groups.ContainsKey(ResourceGroups.MsSql2000)
|| context.Groups.ContainsKey(ResourceGroups.MsSql2005) || context.Groups.ContainsKey(ResourceGroups.MsSql2005)
|| context.Groups.ContainsKey(ResourceGroups.MsSql2008))) || context.Groups.ContainsKey(ResourceGroups.MsSql2008)
|| context.Groups.ContainsKey(ResourceGroups.MsSql2012)))
result.ErrorCodes.Add(GalleryErrors.SQLRequired); result.ErrorCodes.Add(GalleryErrors.SQLRequired);
// MySQL // MySQL

View file

@ -0,0 +1,47 @@
// Copyright (c) 2012, Outercurve Foundation.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without modification,
// are permitted provided that the following conditions are met:
//
// - Redistributions of source code must retain the above copyright notice, this
// list of conditions and the following disclaimer.
//
// - Redistributions in binary form must reproduce the above copyright notice,
// this list of conditions and the following disclaimer in the documentation
// and/or other materials provided with the distribution.
//
// - Neither the name of the Outercurve Foundation nor the names of its
// contributors may be used to endorse or promote products derived from this
// software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
using System;
namespace WebsitePanel.Providers.Database
{
public class MsSqlServer2012 : MsSqlServer2005
{
public override bool IsInstalled()
{
return CheckVersion("11.");
}
public override void TruncateDatabase(string databaseName)
{
SqlDatabase database = GetDatabase(databaseName);
ExecuteNonQuery(String.Format(@"USE [{0}];DBCC SHRINKFILE ('{1}', 1);",
databaseName, database.LogName));
}
}
}

View file

@ -65,6 +65,7 @@
</Compile> </Compile>
<Compile Include="MsSqlServer2005.cs" /> <Compile Include="MsSqlServer2005.cs" />
<Compile Include="MsSqlServer2008.cs" /> <Compile Include="MsSqlServer2008.cs" />
<Compile Include="MsSqlServer2012.cs" />
<Compile Include="Properties\AssemblyInfo.cs" /> <Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="MsSqlServer.cs" /> <Compile Include="MsSqlServer.cs" />
</ItemGroup> </ItemGroup>

View file

@ -55,6 +55,7 @@
<MenuItem pageID="SpaceMsSql2000" resourceGroup="MsSQL2000"/> <MenuItem pageID="SpaceMsSql2000" resourceGroup="MsSQL2000"/>
<MenuItem pageID="SpaceMsSql2005" resourceGroup="MsSQL2005"/> <MenuItem pageID="SpaceMsSql2005" resourceGroup="MsSQL2005"/>
<MenuItem pageID="SpaceMsSql2008" resourceGroup="MsSQL2008"/> <MenuItem pageID="SpaceMsSql2008" resourceGroup="MsSQL2008"/>
<MenuItem pageID="SpaceMsSql2012" resourceGroup="MsSQL2012"/>
<MenuItem pageID="SpaceMySql4" resourceGroup="MySQL4"/> <MenuItem pageID="SpaceMySql4" resourceGroup="MySQL4"/>
<MenuItem pageID="SpaceMySql5" resourceGroup="MySQL5"/> <MenuItem pageID="SpaceMySql5" resourceGroup="MySQL5"/>
</MenuItems> </MenuItems>
@ -97,6 +98,7 @@
<MenuItem pageID="SpaceMsSql2000" resourceGroup="MsSQL2000"/> <MenuItem pageID="SpaceMsSql2000" resourceGroup="MsSQL2000"/>
<MenuItem pageID="SpaceMsSql2005" resourceGroup="MsSQL2005"/> <MenuItem pageID="SpaceMsSql2005" resourceGroup="MsSQL2005"/>
<MenuItem pageID="SpaceMsSql2008" resourceGroup="MsSQL2008"/> <MenuItem pageID="SpaceMsSql2008" resourceGroup="MsSQL2008"/>
<MenuItem pageID="SpaceMsSql2012" resourceGroup="MsSQL2012"/>
<MenuItem pageID="SpaceMySql4" resourceGroup="MySQL4"/> <MenuItem pageID="SpaceMySql4" resourceGroup="MySQL4"/>
<MenuItem pageID="SpaceMySql5" resourceGroup="MySQL5"/> <MenuItem pageID="SpaceMySql5" resourceGroup="MySQL5"/>
<MenuItem pageID="SpaceOdbc" resourceGroup="OS" quota="OS.ODBC"/> <MenuItem pageID="SpaceOdbc" resourceGroup="OS" quota="OS.ODBC"/>

View file

@ -340,6 +340,26 @@
</Module> </Module>
</Content> </Content>
</Page> </Page>
<Page name="SpaceMsSql2012" roles="Administrator,Reseller,User" hidden="True">
<Content id="LeftPane">
<Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx">
<ModuleData ref="SpaceMenu"/>
</Module>
</Content>
<Content id="ContentPane">
<Module moduleDefinitionID="SqlDatabases" title="Sql2012Databases" icon="mssql_48.png">
<Settings>
<Add name="GroupName" value="MsSQL2012" />
</Settings>
</Module>
<Module moduleDefinitionID="SqlUsers" title="Sql2012Users" icon="db_user_48.png">
<Settings>
<Add name="GroupName" value="MsSQL2012" />
</Settings>
</Module>
</Content>
</Page>
<Page name="SpaceMySql4" roles="Administrator,Reseller,User" hidden="True"> <Page name="SpaceMySql4" roles="Administrator,Reseller,User" hidden="True">
<Content id="LeftPane"> <Content id="LeftPane">

View file

@ -522,6 +522,12 @@
<data name="ModuleTitle.Sql2008Users" xml:space="preserve"> <data name="ModuleTitle.Sql2008Users" xml:space="preserve">
<value>SQL Server 2008 Logins</value> <value>SQL Server 2008 Logins</value>
</data> </data>
<data name="ModuleTitle.Sql2012Databases" xml:space="preserve">
<value>SQL Server 2012 Databases</value>
</data>
<data name="ModuleTitle.Sql2012Users" xml:space="preserve">
<value>SQL Server 2012 Logins</value>
</data>
<data name="ModuleTitle.SQLDatabaseProperties" xml:space="preserve"> <data name="ModuleTitle.SQLDatabaseProperties" xml:space="preserve">
<value>SQL Database Properties</value> <value>SQL Database Properties</value>
</data> </data>

View file

@ -282,6 +282,12 @@
<data name="PageTitle.SpaceMsSql2008" xml:space="preserve"> <data name="PageTitle.SpaceMsSql2008" xml:space="preserve">
<value>{user} - {space} - SQL Server 2008</value> <value>{user} - {space} - SQL Server 2008</value>
</data> </data>
<data name="PageName.SpaceMsSql2012" xml:space="preserve">
<value>SQL Server 2012</value>
</data>
<data name="PageTitle.SpaceMsSql2012" xml:space="preserve">
<value>{user} - {space} - SQL Server 2012</value>
</data>
<data name="PageTitle.SpaceMsSql2005" xml:space="preserve"> <data name="PageTitle.SpaceMsSql2005" xml:space="preserve">
<value>{user} - {space} - SQL Server 2005</value> <value>{user} - {space} - SQL Server 2005</value>
</data> </data>

View file

@ -1809,6 +1809,24 @@
<data name="Quota.MsSQL2008.Users" xml:space="preserve"> <data name="Quota.MsSQL2008.Users" xml:space="preserve">
<value>Users</value> <value>Users</value>
</data> </data>
<data name="Quota.MsSQL2012.Backup" xml:space="preserve">
<value>Database Backups</value>
</data>
<data name="Quota.MsSQL2012.Databases" xml:space="preserve">
<value>Databases</value>
</data>
<data name="Quota.MsSQL2012.MaxDatabaseSize" xml:space="preserve">
<value>Max Database Size, MB</value>
</data>
<data name="Quota.MsSQL2012.Restore" xml:space="preserve">
<value>Database Restores</value>
</data>
<data name="Quota.MsSQL2012.Truncate" xml:space="preserve">
<value>Database Truncate</value>
</data>
<data name="Quota.MsSQL2012.Users" xml:space="preserve">
<value>Users</value>
</data>
<data name="Quota.MySQL5.Backup" xml:space="preserve"> <data name="Quota.MySQL5.Backup" xml:space="preserve">
<value>Database Backups</value> <value>Database Backups</value>
</data> </data>
@ -1848,6 +1866,9 @@
<data name="ResourceGroup.MsSQL2008" xml:space="preserve"> <data name="ResourceGroup.MsSQL2008" xml:space="preserve">
<value>SQL Server 2008</value> <value>SQL Server 2008</value>
</data> </data>
<data name="ResourceGroup.MsSQL2012" xml:space="preserve">
<value>SQL Server 2012</value>
</data>
<data name="ResourceGroup.MySQL5" xml:space="preserve"> <data name="ResourceGroup.MySQL5" xml:space="preserve">
<value>MySQL 5</value> <value>MySQL 5</value>
</data> </data>
@ -2040,6 +2061,12 @@
<data name="ServiceItemType.MsSQL2008User" xml:space="preserve"> <data name="ServiceItemType.MsSQL2008User" xml:space="preserve">
<value>MS SQL 2008 User</value> <value>MS SQL 2008 User</value>
</data> </data>
<data name="ServiceItemType.MsSQL2012Database" xml:space="preserve">
<value>MS SQL 2012 Database</value>
</data>
<data name="ServiceItemType.MsSQL2012User" xml:space="preserve">
<value>MS SQL 2012 User</value>
</data>
<data name="ServiceItemType.MySQL4Database" xml:space="preserve"> <data name="ServiceItemType.MySQL4Database" xml:space="preserve">
<value>MySQL 4 Database</value> <value>MySQL 4 Database</value>
</data> </data>
@ -3151,6 +3178,9 @@
<data name="Quota.MsSQL2008.MaxLogSize" xml:space="preserve"> <data name="Quota.MsSQL2008.MaxLogSize" xml:space="preserve">
<value>Max Log Size, MB</value> <value>Max Log Size, MB</value>
</data> </data>
<data name="Quota.MsSQL2012.MaxLogSize" xml:space="preserve">
<value>Max Log Size, MB</value>
</data>
<data name="Error.EXCHANGE_UPDATE_MAILBOX_PERMISSIONS" xml:space="preserve"> <data name="Error.EXCHANGE_UPDATE_MAILBOX_PERMISSIONS" xml:space="preserve">
<value>Error updating mailbox permissions. See audit log for more details.</value> <value>Error updating mailbox permissions. See audit log for more details.</value>
</data> </data>
@ -4693,6 +4723,9 @@
<data name="ReportResourceGroup.MsSQL2008" xml:space="preserve"> <data name="ReportResourceGroup.MsSQL2008" xml:space="preserve">
<value>SQL Server 2008</value> <value>SQL Server 2008</value>
</data> </data>
<data name="ReportResourceGroup.MsSQL2012" xml:space="preserve">
<value>SQL Server 2012</value>
</data>
<data name="WebAppGallery.ApplicationInstallationError" xml:space="preserve"> <data name="WebAppGallery.ApplicationInstallationError" xml:space="preserve">
<value>Error while install application pack</value> <value>Error while install application pack</value>
</data> </data>

View file

@ -165,4 +165,7 @@
<data name="lclMSSQL2008Resources.Text" xml:space="preserve"> <data name="lclMSSQL2008Resources.Text" xml:space="preserve">
<value>Microsoft SQL 2008 Quotas</value> <value>Microsoft SQL 2008 Quotas</value>
</data> </data>
<data name="lclMSSQL2012Resources.Text" xml:space="preserve">
<value>Microsoft SQL 2012 Quotas</value>
</data>
</root> </root>

View file

@ -160,6 +160,24 @@
</asp:Repeater> </asp:Repeater>
</asp:PlaceHolder> </asp:PlaceHolder>
<asp:PlaceHolder runat="server" ID="MsSQL2012" Visible="false">
<tr>
<th colspan="2">
<br />
<div class="FormButtonsBar">
<div class="FormSectionHeader"><asp:Localize ID="Localize3" runat="server" meta:resourcekey="lclMSSQL2012Resources" /></div>
</div>
</th>
</tr>
<asp:Repeater runat="server" ID="MsSQL2012_Quotas">
<ItemTemplate>
<tr>
<td class="Width20Pcs" style="white-space: nowrap;"><strong><%# GetSharedLocalizedString("Quota." + GetQuotaItemName((string)Container.DataItem)) %>:</strong></td>
<td><%# GetQuotaItemAllocatedValue((string)Container.DataItem) %></td>
</tr>
</ItemTemplate>
</asp:Repeater>
</asp:PlaceHolder>
<asp:PlaceHolder runat="server" ID="MySQL4" Visible="false"> <asp:PlaceHolder runat="server" ID="MySQL4" Visible="false">
<tr> <tr>

View file

@ -157,6 +157,15 @@ namespace WebsitePanel.Ecommerce.Portal.UserControls {
/// </remarks> /// </remarks>
protected global::System.Web.UI.WebControls.PlaceHolder MsSQL2008; protected global::System.Web.UI.WebControls.PlaceHolder MsSQL2008;
/// <summary>
/// MsSQL2012 control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.PlaceHolder MsSQL2012;
/// <summary> /// <summary>
/// Localize3 control. /// Localize3 control.
/// </summary> /// </summary>
@ -175,6 +184,15 @@ namespace WebsitePanel.Ecommerce.Portal.UserControls {
/// </remarks> /// </remarks>
protected global::System.Web.UI.WebControls.Repeater MsSQL2008_Quotas; protected global::System.Web.UI.WebControls.Repeater MsSQL2008_Quotas;
/// <summary>
/// MsSQL2012_Quotas control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Repeater MsSQL2012_Quotas;
/// <summary> /// <summary>
/// MySQL4 control. /// MySQL4 control.
/// </summary> /// </summary>

View file

@ -302,6 +302,7 @@ namespace WebsitePanel.Portal
AddDatabaseVersion(cntx, ResourceGroups.MsSql2000, items, versions); AddDatabaseVersion(cntx, ResourceGroups.MsSql2000, items, versions);
AddDatabaseVersion(cntx, ResourceGroups.MsSql2005, items, versions); AddDatabaseVersion(cntx, ResourceGroups.MsSql2005, items, versions);
AddDatabaseVersion(cntx, ResourceGroups.MsSql2008, items, versions); AddDatabaseVersion(cntx, ResourceGroups.MsSql2008, items, versions);
AddDatabaseVersion(cntx, ResourceGroups.MsSql2012, items, versions);
AddDatabaseVersion(cntx, ResourceGroups.MySql4, items, versions); AddDatabaseVersion(cntx, ResourceGroups.MySql4, items, versions);
AddDatabaseVersion(cntx, ResourceGroups.MySql5, items, versions); AddDatabaseVersion(cntx, ResourceGroups.MySql5, items, versions);
} }

View file

@ -206,9 +206,11 @@ namespace WebsitePanel.Portal
sqlDatabases.AddRange(ES.Services.DatabaseServers.GetSqlDatabases(packageId, ResourceGroups.MsSql2000, false)); sqlDatabases.AddRange(ES.Services.DatabaseServers.GetSqlDatabases(packageId, ResourceGroups.MsSql2000, false));
sqlDatabases.AddRange(ES.Services.DatabaseServers.GetSqlDatabases(packageId, ResourceGroups.MsSql2005, false)); sqlDatabases.AddRange(ES.Services.DatabaseServers.GetSqlDatabases(packageId, ResourceGroups.MsSql2005, false));
sqlDatabases.AddRange(ES.Services.DatabaseServers.GetSqlDatabases(packageId, ResourceGroups.MsSql2008, false)); sqlDatabases.AddRange(ES.Services.DatabaseServers.GetSqlDatabases(packageId, ResourceGroups.MsSql2008, false));
sqlDatabases.AddRange(ES.Services.DatabaseServers.GetSqlDatabases(packageId, ResourceGroups.MsSql2012, false));
sqlUsers.AddRange(ES.Services.DatabaseServers.GetSqlUsers(packageId, ResourceGroups.MsSql2000, false)); sqlUsers.AddRange(ES.Services.DatabaseServers.GetSqlUsers(packageId, ResourceGroups.MsSql2000, false));
sqlUsers.AddRange(ES.Services.DatabaseServers.GetSqlUsers(packageId, ResourceGroups.MsSql2005, false)); sqlUsers.AddRange(ES.Services.DatabaseServers.GetSqlUsers(packageId, ResourceGroups.MsSql2005, false));
sqlUsers.AddRange(ES.Services.DatabaseServers.GetSqlUsers(packageId, ResourceGroups.MsSql2008, false)); sqlUsers.AddRange(ES.Services.DatabaseServers.GetSqlUsers(packageId, ResourceGroups.MsSql2008, false));
sqlUsers.AddRange(ES.Services.DatabaseServers.GetSqlUsers(packageId, ResourceGroups.MsSql2012, false));
} }
else if (driverName == "MySql") else if (driverName == "MySql")
{ {

View file

@ -69,6 +69,7 @@ namespace WebsitePanel.Portal
versions.Add(ResourceGroups.MsSql2000); versions.Add(ResourceGroups.MsSql2000);
versions.Add(ResourceGroups.MsSql2005); versions.Add(ResourceGroups.MsSql2005);
versions.Add(ResourceGroups.MsSql2008); versions.Add(ResourceGroups.MsSql2008);
versions.Add(ResourceGroups.MsSql2012);
FillDatabaseVersions(PanelSecurity.PackageId, ddlDatabaseVersion.Items, versions); FillDatabaseVersions(PanelSecurity.PackageId, ddlDatabaseVersion.Items, versions);
} }

View file

@ -140,6 +140,8 @@ namespace WebsitePanel.Portal
PackageContext cntx = PackagesHelper.GetCachedPackageContext(PanelSecurity.PackageId); PackageContext cntx = PackagesHelper.GetCachedPackageContext(PanelSecurity.PackageId);
// add SQL Server engines // add SQL Server engines
if (cntx.Groups.ContainsKey(ResourceGroups.MsSql2012))
AddDatabaseEngine(DeploymentParameterWellKnownTag.Sql, ResourceGroups.MsSql2012, GetSharedLocalizedString("ResourceGroup." + ResourceGroups.MsSql2012));
if (cntx.Groups.ContainsKey(ResourceGroups.MsSql2008)) if (cntx.Groups.ContainsKey(ResourceGroups.MsSql2008))
AddDatabaseEngine(DeploymentParameterWellKnownTag.Sql, ResourceGroups.MsSql2008, GetSharedLocalizedString("ResourceGroup." + ResourceGroups.MsSql2008)); AddDatabaseEngine(DeploymentParameterWellKnownTag.Sql, ResourceGroups.MsSql2008, GetSharedLocalizedString("ResourceGroup." + ResourceGroups.MsSql2008));
if (cntx.Groups.ContainsKey(ResourceGroups.MsSql2005)) if (cntx.Groups.ContainsKey(ResourceGroups.MsSql2005))