diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Data/DataProvider.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Data/DataProvider.cs index 196376ce..168db35f 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Data/DataProvider.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Data/DataProvider.cs @@ -979,6 +979,8 @@ namespace WebsitePanel.EnterpriseServer new SqlParameter("@ClusterId", clusterId), new SqlParameter("@comments", comments)); + UpdateServerPackageServices(serverId); + return Convert.ToInt32(prmServiceId.Value); } @@ -1559,6 +1561,8 @@ namespace WebsitePanel.EnterpriseServer // read identity packageId = Convert.ToInt32(prmPackageId.Value); + DistributePackageServices(actorId, packageId); + return ds; } @@ -1660,6 +1664,33 @@ namespace WebsitePanel.EnterpriseServer new SqlParameter("@PackageAddonID", packageAddonId)); } + public static void UpdateServerPackageServices(int serverId) + { + // FIXME + int defaultActorID = 1; + + // get server packages + IDataReader packagesReader = SqlHelper.ExecuteReader(ConnectionString, CommandType.Text, + @"SELECT PackageID FROM Packages WHERE ServerID = @ServerID", + new SqlParameter("@ServerID", serverId) + ); + + // call DistributePackageServices for all packages on this server + while (packagesReader.Read()) + { + int packageId = (int) packagesReader["PackageID"]; + DistributePackageServices(defaultActorID, packageId); + } + } + + public static void DistributePackageServices(int actorId, int packageId) + { + SqlHelper.ExecuteNonQuery(ConnectionString, CommandType.StoredProcedure, + ObjectQualifier + "DistributePackageServices", + new SqlParameter("@ActorId", actorId), + new SqlParameter("@PackageID", packageId)); + } + #endregion #region Packages Settings diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Packages/PackageController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Packages/PackageController.cs index 522ab4e6..5332351b 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Packages/PackageController.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Packages/PackageController.cs @@ -229,6 +229,8 @@ namespace WebsitePanel.EnterpriseServer if (result.ExceedingQuotas.Tables[0].Rows.Count > 0) result.Result = BusinessErrorCodes.ERROR_PACKAGE_QUOTA_EXCEED; + DataProvider.DistributePackageServices(SecurityContext.User.UserId, plan.PackageId); + return result; } @@ -781,6 +783,8 @@ namespace WebsitePanel.EnterpriseServer // Update the Hard quota on home folder in case it was enabled and in case there was a change in disk space UpdatePackageHardQuota(package.PackageId); + + DataProvider.DistributePackageServices(SecurityContext.User.UserId, package.PackageId); } finally {