Web App Gallery: Setting of DB policies for multiply databases fixed

This commit is contained in:
ruslanht 2012-09-24 14:22:06 +03:00
parent ea4fd514e4
commit 4bc50e9f40

View file

@ -150,8 +150,6 @@ namespace WebsitePanel.Portal
AddDatabaseEngine(DeploymentParameterWellKnownTag.Sql, ResourceGroups.MsSql2005, GetSharedLocalizedString("ResourceGroup." + ResourceGroups.MsSql2005)); AddDatabaseEngine(DeploymentParameterWellKnownTag.Sql, ResourceGroups.MsSql2005, GetSharedLocalizedString("ResourceGroup." + ResourceGroups.MsSql2005));
if (cntx.Groups.ContainsKey(ResourceGroups.MsSql2000)) if (cntx.Groups.ContainsKey(ResourceGroups.MsSql2000))
AddDatabaseEngine(DeploymentParameterWellKnownTag.Sql, ResourceGroups.MsSql2000, GetSharedLocalizedString("ResourceGroup." + ResourceGroups.MsSql2000)); AddDatabaseEngine(DeploymentParameterWellKnownTag.Sql, ResourceGroups.MsSql2000, GetSharedLocalizedString("ResourceGroup." + ResourceGroups.MsSql2000));
SetDBPolicies(UserSettings.MSSQL_POLICY, parameters);
} }
// MySQL Server // MySQL Server
@ -165,8 +163,6 @@ namespace WebsitePanel.Portal
AddDatabaseEngine(DeploymentParameterWellKnownTag.MySql, ResourceGroups.MySql5, GetSharedLocalizedString("ResourceGroup." + ResourceGroups.MySql5)); AddDatabaseEngine(DeploymentParameterWellKnownTag.MySql, ResourceGroups.MySql5, GetSharedLocalizedString("ResourceGroup." + ResourceGroups.MySql5));
if (cntx.Groups.ContainsKey(ResourceGroups.MySql4)) if (cntx.Groups.ContainsKey(ResourceGroups.MySql4))
AddDatabaseEngine(DeploymentParameterWellKnownTag.MySql, ResourceGroups.MySql4, GetSharedLocalizedString("ResourceGroup." + ResourceGroups.MySql4)); AddDatabaseEngine(DeploymentParameterWellKnownTag.MySql, ResourceGroups.MySql4, GetSharedLocalizedString("ResourceGroup." + ResourceGroups.MySql4));
SetDBPolicies(UserSettings.MYSQL_POLICY, parameters);
} }
// SQLite // SQLite
@ -181,6 +177,7 @@ namespace WebsitePanel.Portal
if (FindParameterByTag(parameters, DeploymentParameterWellKnownTag.VistaDB) != null) if (FindParameterByTag(parameters, DeploymentParameterWellKnownTag.VistaDB) != null)
AddDatabaseEngine(DeploymentParameterWellKnownTag.VistaDB, "", GetLocalizedString("DatabaseEngine.VistaDB")); AddDatabaseEngine(DeploymentParameterWellKnownTag.VistaDB, "", GetLocalizedString("DatabaseEngine.VistaDB"));
BindDBPolicies(parameters);
// hide module if no database required // hide module if no database required
divDatabase.Visible = (databaseEngines.Items.Count > 0); divDatabase.Visible = (databaseEngines.Items.Count > 0);
@ -190,18 +187,42 @@ namespace WebsitePanel.Portal
} }
#region prefix & suffix for database name & username #region prefix & suffix for database name & username
private void SetDBPolicies(string policy, IEnumerable<DeploymentParameter> parameters) private void BindDBPolicies(List<DeploymentParameter> parameters)
{
// MS SQL Server
if (FindParameterByTag(parameters, DeploymentParameterWellKnownTag.Sql) != null)
{
SetDBPolicies(UserSettings.MSSQL_POLICY, parameters, DeploymentParameterWellKnownTag.Sql);
}
// MySQL Server
if (FindParameterByTag(parameters, DeploymentParameterWellKnownTag.MySql) != null)
{
SetDBPolicies(UserSettings.MYSQL_POLICY, parameters, DeploymentParameterWellKnownTag.MySql);
}
}
private void SetDBPolicies(string policy, IEnumerable<DeploymentParameter> parameters, DeploymentParameterWellKnownTag dbTag)
{ {
foreach (DeploymentParameter parameter in parameters) foreach (DeploymentParameter parameter in parameters)
{ {
if ((parameter.WellKnownTags & DeploymentParameterWellKnownTag.DBName) != 0) if (
(parameter.WellKnownTags & DeploymentParameterWellKnownTag.DBName) != 0
&&
(parameter.WellKnownTags & dbTag) != 0
)
{ {
// database name // database name
string policyValue = GetPackagePolicy(policy, "DatabaseNamePolicy"); string policyValue = GetPackagePolicy(policy, "DatabaseNamePolicy");
ApplyPrefixSuffixPolicy(parameter, policyValue); ApplyPrefixSuffixPolicy(parameter, policyValue);
} }
if ((parameter.WellKnownTags & DeploymentParameterWellKnownTag.DBUserName) != 0) if (
(parameter.WellKnownTags & DeploymentParameterWellKnownTag.DBUserName) != 0
&&
(parameter.WellKnownTags & dbTag) != 0
)
{ {
// user name // user name
string policyValue = GetPackagePolicy(policy, "UserNamePolicy"); string policyValue = GetPackagePolicy(policy, "UserNamePolicy");
@ -302,7 +323,13 @@ namespace WebsitePanel.Portal
protected void databaseEngines_SelectedIndexChanged(object sender, EventArgs e) protected void databaseEngines_SelectedIndexChanged(object sender, EventArgs e)
{ {
BindParameters(); // load parameters
List<DeploymentParameter> parameters = GetApplicationParameters();
if (parameters == null)
return;
BindDBPolicies(parameters);
BindParameters(parameters);
} }
protected void databaseMode_SelectedIndexChanged(object sender, EventArgs e) protected void databaseMode_SelectedIndexChanged(object sender, EventArgs e)