From e7d5bf0c7e695a4ad798cda89a7dd0031502ce1c Mon Sep 17 00:00:00 2001 From: vfedosevich Date: Thu, 23 May 2013 09:42:55 +0300 Subject: [PATCH] replace saving background tasks in DB --- .../Tasks/BackgroundTask.cs | 266 ++++---- .../Tasks/BackgroundTaskLogRecord.cs | 78 +-- .../Tasks/BackgroundTaskStatus.cs | 8 + .../WebsitePanel.EnterpriseServer.Base.csproj | 1 + .../Data/DataProvider.cs | 143 +++++ .../DatabaseServerController.cs | 23 +- .../DnsServers/DnsServerController.cs | 4 +- .../ContractSystem/ContractController.cs | 4 +- .../Ecommerce/InvoiceController.cs | 13 +- .../Provisioning/HostingPackageController.cs | 3 +- .../Provisioning/ServiceProvisioningBase.cs | 11 +- .../Ecommerce/StorehouseController.cs | 20 +- .../SendEmailNotification.cs | 29 +- .../TaskEventHandlers/SystemTriggersAgent.cs | 22 +- .../ExchangeServerController.cs | 222 +++---- .../Files/FilesController.cs | 54 +- .../FtpServers/FtpServerController.cs | 7 +- .../HostedSolution/LyncController.cs | 37 +- .../HostedSolution/OrganizationController.cs | 50 +- .../MailServers/MailServerController.cs | 52 +- .../OperatingSystemController.cs | 21 +- .../Packages/PackageController.cs | 20 +- .../Provisioning/BackupController.cs | 11 +- .../Provisioning/ImportController.cs | 3 +- .../SchedulerTasks/BackupDatabaseTask.cs | 14 +- .../SchedulerTasks/BackupTask.cs | 15 +- .../CalculateExchangeDiskspaceTask.cs | 4 +- .../CalculatePackagesBandwidthTask.cs | 4 +- .../CalculatePackagesDiskspaceTask.cs | 4 +- .../SchedulerTasks/CheckWebSiteTask.cs | 32 +- .../SchedulerTasks/FTPFilesTask.cs | 22 +- .../SchedulerTasks/HostedSolutionReport.cs | 16 +- .../NotifyOverusedDatabasesTask.cs | 32 +- .../SchedulerTasks/RunSystemCommandTask.cs | 8 +- .../SendMailNotificationTask.cs | 10 +- .../SuspendOverusedPackagesTask.cs | 34 +- .../SchedulerTasks/ZipFilesTask.cs | 8 +- .../Scheduling/SchedulerJob.cs | 16 +- .../Servers/ServerController.cs | 102 ++- .../HostedSharePointServerController.cs | 17 +- .../SharePoint/SharePointServerController.cs | 29 +- .../StatisticsServerController.cs | 6 +- .../Tasks/SendEmailNotification.cs | 41 +- .../Tasks/TaskController.cs | 174 +++++ .../Tasks/TaskManager.cs | 593 ++++++++++-------- .../Users/UserAsyncWorker.cs | 3 +- .../Users/UserController.cs | 22 +- .../VirtualizationServerController.cs | 139 +--- ...lizationServerControllerForPrivateCloud.cs | 149 +---- .../WebServers/WebServerController.cs | 121 ++-- .../WebsitePanel.EnterpriseServer.Code.csproj | 1 + .../Wizards/WebApplicationsInstaller.cs | 11 +- 52 files changed, 1423 insertions(+), 1306 deletions(-) create mode 100644 WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Base/Tasks/BackgroundTaskStatus.cs create mode 100644 WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Tasks/TaskController.cs diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Base/Tasks/BackgroundTask.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Base/Tasks/BackgroundTask.cs index 8ea92110..419ebe91 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Base/Tasks/BackgroundTask.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Base/Tasks/BackgroundTask.cs @@ -36,162 +36,156 @@ using System.Xml.Serialization; namespace WebsitePanel.EnterpriseServer { + public class BackgroundTask { - private string taskId; - private int userId; - private int packageId; - private int effectiveUserId; - private DateTime startDate = DateTime.MinValue; - private DateTime finishDate = DateTime.MinValue; - private int maximumExecutionTime = -1; // seconds - private string source; - private string taskName; - private int scheduleId; - private string itemName; - private int itemId = 0; - private int severity = 0; /* 0 - Info, 1 - Warning, 2 - Error */ - private List logRecords = new List(); - private List lastLogRecords = new List(); - private BackgroundTaskLogRecord lastLogRecord; - private Hashtable parameters = new Hashtable(); - private int indicatorMaximum; - private int indicatorCurrent; - private bool completed; - private bool notifyOnComplete; - private Thread taskThread; + #region Properties - public System.DateTime StartDate + public int Id { get; protected set; } + + public String TaskId { get; protected set; } + + public int ScheduleId { get; set; } + + public int PackageId { get; set; } + + public int UserId { get; protected set; } + + public int EffectiveUserId { get; protected set; } + + public String TaskName { get; protected set; } + + public int ItemId { get; set; } + + public String ItemName { get; set; } + + public DateTime StartDate { get; protected set; } + + public DateTime FinishDate { get; set; } + + public int IndicatorCurrent { get; set; } + + public int IndicatorMaximum { get; set; } + + public int MaximumExecutionTime { get; set; } + + public String Source { get; protected set; } + + public int Severity { get; set; } + + public bool Completed { get; set; } + + public bool NotifyOnComplete { get; set; } + + public BackgroundTaskStatus Status { get; set; } + + public IList Logs { get; set; } + + public IList Params { get; set; } + + #endregion + + #region Constructors + + public BackgroundTask() { - get { return this.startDate; } - set { this.startDate = value; } + StartDate = DateTime.Now; + Severity = 0; + IndicatorCurrent = 0; + IndicatorMaximum = 0; + Status = BackgroundTaskStatus.Run; + + Logs = new List(); } - public System.DateTime FinishDate + public BackgroundTask(String taskId, int userId, int effectiveUserId, String source, String taskName, String itemName, + int itemId, int scheduleId, int packageId, int maximumExecutionTime, IList parameters) + : this() { - get { return this.finishDate; } - set { this.finishDate = value; } + TaskId = TaskId; + UserId = userId; + EffectiveUserId = effectiveUserId; + Source = source; + TaskName = taskName; + ItemName = itemName; + ItemId = itemId; + ScheduleId = scheduleId; + PackageId = packageId; + MaximumExecutionTime = maximumExecutionTime; + Params = parameters; } - public string Source + #endregion + + #region Methods + + public Object GetParamValue(String name) { - get { return this.source; } - set { this.source = value; } + foreach(BackgroundTaskParameter param in Params) + { + if (param.Name == name) + return param.Value; + } + + return null; } - public string TaskName + public void UpdateParamValue(String name, object value) { - get { return this.taskName; } - set { this.taskName = value; } + foreach (BackgroundTaskParameter param in Params) + { + if (param.Name == name) + { + param.Value = value; + + return; + + } + } + + Params.Add(new BackgroundTaskParameter(name, value)); } - public int ItemId + public bool ContainsParam(String name) { - get { return this.itemId; } - set { this.itemId = value; } + foreach (BackgroundTaskParameter param in Params) + { + if (param.Name == name) + return true; + } + + return false; } - public int PackageId + #endregion + } + + public class BackgroundTaskParameter + { + #region Properties + + public int ParameterId { get; protected set; } + + public int TaskId { get; protected set; } + + public String Name { get; protected set; } + + public Object Value { get; set; } + + public String SerializerValue { get; set; } + + #endregion + + #region Constructors + + public BackgroundTaskParameter() { } + + public BackgroundTaskParameter(String name, Object value) { - get { return this.packageId; } - set { this.packageId = value; } + Name = name; + Value = value; } - public int Severity - { - get { return this.severity; } - set { this.severity = value; } - } - - [XmlIgnore] - public List LogRecords - { - get { return this.logRecords; } - set { this.logRecords = value; } - } - - public List LastLogRecords - { - get { return this.lastLogRecords; } - } - - public string ItemName - { - get { return this.itemName; } - set { this.itemName = value; } - } - - public BackgroundTaskLogRecord LastLogRecord - { - get { return this.lastLogRecord; } - set { this.lastLogRecord = value; } - } - - public string TaskId - { - get { return this.taskId; } - set { this.taskId = value; } - } - - public int UserId - { - get { return this.userId; } - set { this.userId = value; } - } - - [XmlIgnore] - public Hashtable Parameters - { - get { return this.parameters; } - } - - public int IndicatorMaximum - { - get { return this.indicatorMaximum; } - set { this.indicatorMaximum = value; } - } - - public int IndicatorCurrent - { - get { return this.indicatorCurrent; } - set { this.indicatorCurrent = value; } - } - - public bool Completed - { - get { return this.completed; } - set { this.completed = value; } - } - - public bool NotifyOnComplete - { - get { return this.notifyOnComplete; } - set { this.notifyOnComplete = value; } - } - - public int EffectiveUserId - { - get { return this.effectiveUserId; } - set { this.effectiveUserId = value; } - } - - [XmlIgnore] - public System.Threading.Thread TaskThread - { - get { return this.taskThread; } - set { this.taskThread = value; } - } - - public int ScheduleId - { - get { return this.scheduleId; } - set { this.scheduleId = value; } - } - - public int MaximumExecutionTime - { - get { return this.maximumExecutionTime; } - set { this.maximumExecutionTime = value; } - } + #endregion } } diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Base/Tasks/BackgroundTaskLogRecord.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Base/Tasks/BackgroundTaskLogRecord.cs index d6ef3ab4..afccc7d8 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Base/Tasks/BackgroundTaskLogRecord.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Base/Tasks/BackgroundTaskLogRecord.cs @@ -34,54 +34,54 @@ namespace WebsitePanel.EnterpriseServer { public class BackgroundTaskLogRecord { - private DateTime date = DateTime.Now; - private string text; - private int severity; /* 0 - Info, 1 - Warning, 2 - Error */ - private string[] textParameters; - private int textIdent = 0; - private bool innerTaskStart; - private string exceptionStackTrace; + #region Properties - public System.DateTime Date + public int LogId { get; set; } + + public int TaskId { get; set; } + + public DateTime Date { get; set; } + + public String ExceptionStackTrace { get; set; } + + public bool InnerTaskStart { get; set; } + + public int Severity { get; set; } + + public String Text { get; set; } + + public int TextIdent { get; set; } + + public string[] TextParameters { get; set; } + + public string XmlParameters { get; set; } + + #endregion + + #region Constructors + + public BackgroundTaskLogRecord() { - get { return this.date; } - set { this.date = value; } + Date = DateTime.Now; } - public string Text + public BackgroundTaskLogRecord(int taskId, int textIdent, bool innerTaskStart, String text, string[] textParameters) + : this() { - get { return this.text; } - set { this.text = value; } + TaskId = taskId; + TextIdent = textIdent; + Text = text; + InnerTaskStart = innerTaskStart; + TextParameters = textParameters; } - public int Severity + public BackgroundTaskLogRecord(int taskId, int textIdent, bool innerTaskStart, String text, + String exceptionStackTrace, string[] textParameters) + : this(taskId, textIdent, innerTaskStart, text, textParameters) { - get { return this.severity; } - set { this.severity = value; } + ExceptionStackTrace = exceptionStackTrace; } - public string[] TextParameters - { - get { return this.textParameters; } - set { this.textParameters = value; } - } - - public int TextIdent - { - get { return this.textIdent; } - set { this.textIdent = value; } - } - - public bool InnerTaskStart - { - get { return this.innerTaskStart; } - set { this.innerTaskStart = value; } - } - - public string ExceptionStackTrace - { - get { return this.exceptionStackTrace; } - set { this.exceptionStackTrace = value; } - } + #endregion } } diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Base/Tasks/BackgroundTaskStatus.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Base/Tasks/BackgroundTaskStatus.cs new file mode 100644 index 00000000..51f33a04 --- /dev/null +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Base/Tasks/BackgroundTaskStatus.cs @@ -0,0 +1,8 @@ +namespace WebsitePanel.EnterpriseServer +{ + public enum BackgroundTaskStatus + { + Run = 1, + Abort = 2 + } +} diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Base/WebsitePanel.EnterpriseServer.Base.csproj b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Base/WebsitePanel.EnterpriseServer.Base.csproj index 2168e6e3..dde357fa 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Base/WebsitePanel.EnterpriseServer.Base.csproj +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Base/WebsitePanel.EnterpriseServer.Base.csproj @@ -156,6 +156,7 @@ + diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Data/DataProvider.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Data/DataProvider.cs index bd948d2e..2e20067c 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Data/DataProvider.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Data/DataProvider.cs @@ -1836,6 +1836,149 @@ namespace WebsitePanel.EnterpriseServer #endregion #region Scheduler + + public static IDataReader GetBackgroundTask(int actorId, string taskId) + { + return SqlHelper.ExecuteReader(ConnectionString, CommandType.StoredProcedure, + ObjectQualifier + "GetBackgroundTask", + new SqlParameter("@actorId", actorId), + new SqlParameter("@taskId", taskId)); + } + + public static IDataReader GetBackgroundTasks(int actorId) + { + return SqlHelper.ExecuteReader(ConnectionString, CommandType.StoredProcedure, + ObjectQualifier + "GetBackgroundTasks", + new SqlParameter("actorId", actorId)); + } + + public static IDataReader GetBackgroundTopTask(int actorId) + { + return SqlHelper.ExecuteReader(ConnectionString, CommandType.StoredProcedure, + ObjectQualifier + "GetBackGroundTopTask", + new SqlParameter("actorId", actorId)); + } + + public static int AddBackgroundTask(string taskId, int scheduleId, int packageId, int userId, + int effectiveUserId, string taskName, int itemId, string itemName, DateTime startDate, + int indicatorCurrent, int indicatorMaximum, int maximumExecutionTime, string source, + int severity, bool completed, bool notifyOnComplete, BackgroundTaskStatus status) + { + SqlParameter prmId = new SqlParameter("@BackgroundTaskID", SqlDbType.Int); + prmId.Direction = ParameterDirection.Output; + + SqlHelper.ExecuteNonQuery(ConnectionString, CommandType.StoredProcedure, + ObjectQualifier + "AddBackgroundTask", + prmId, + new SqlParameter("@taskId", taskId), + new SqlParameter("@scheduleId", scheduleId), + new SqlParameter("@packageId", packageId), + new SqlParameter("@userId", userId), + new SqlParameter("@effectiveUserId", effectiveUserId), + new SqlParameter("@taskName", taskName), + new SqlParameter("@itemId", itemId), + new SqlParameter("@itemName", itemName), + new SqlParameter("@startDate", startDate), + new SqlParameter("@indicatorCurrent", indicatorCurrent), + new SqlParameter("@indicatorMaximum", indicatorMaximum), + new SqlParameter("@maximumExecutionTime", maximumExecutionTime), + new SqlParameter("@source", source), + new SqlParameter("@severity", severity), + new SqlParameter("@completed", completed), + new SqlParameter("@notifyOnComplete", notifyOnComplete), + new SqlParameter("@status", status)); + + // read identity + return Convert.ToInt32(prmId.Value); + } + + public static void AddBackgroundTaskLog(int taskId, DateTime date, string exceptionStackTrace, + bool innerTaskStart, int severity, string text, int textIdent, string xmlParameters) + { + SqlHelper.ExecuteNonQuery(ConnectionString, CommandType.StoredProcedure, + ObjectQualifier + "AddBackgroundTaskLog", + new SqlParameter("@taskId", taskId), + new SqlParameter("@date", date), + new SqlParameter("@exceptionStackTrace", exceptionStackTrace), + new SqlParameter("@innerTaskStart", innerTaskStart), + new SqlParameter("@severity", severity), + new SqlParameter("@text", text), + new SqlParameter("@textIdent", textIdent), + new SqlParameter("@xmlParameters", xmlParameters)); + } + + public static IDataReader GetBackgroundTaskLogs(int taskId, DateTime startLogTime) + { + return SqlHelper.ExecuteReader(ConnectionString, CommandType.StoredProcedure, + ObjectQualifier + "AddBackgroundTaskLogParam", + new SqlParameter("@taskId", taskId), + new SqlParameter("@startLogTime", startLogTime)); + } + + public static void UpdateBackgroundTask(int taskId, int scheduleId, int packageId, string taskName, int itemId, + string itemName, DateTime finishDate, int indicatorCurrent, int indicatorMaximum, int maximumExecutionTime, + string source, int severity, bool completed, bool notifyOnComplete, BackgroundTaskStatus status) + { + SqlHelper.ExecuteNonQuery(ConnectionString, CommandType.StoredProcedure, + ObjectQualifier + "UpdateBackgroundTask", + new SqlParameter("@taskId", scheduleId), + new SqlParameter("@scheduleId", scheduleId), + new SqlParameter("@packageId", packageId), + new SqlParameter("@taskName", taskName), + new SqlParameter("@itemId", itemId), + new SqlParameter("@itemName", itemName), + new SqlParameter("@finishDate", + finishDate == DateTime.MinValue + ? DBNull.Value + : (object) finishDate), + new SqlParameter("@indicatorCurrent", indicatorCurrent), + new SqlParameter("@indicatorMaximum", indicatorMaximum), + new SqlParameter("@maximumExecutionTime", maximumExecutionTime), + new SqlParameter("@source", source), + new SqlParameter("@severity", severity), + new SqlParameter("@completed", completed), + new SqlParameter("@notifyOnComplete", notifyOnComplete), + new SqlParameter("@status", status)); + + } + + public static IDataReader GetBackgroundTaskParams(int taskId) + { + return SqlHelper.ExecuteReader(ConnectionString, CommandType.StoredProcedure, + ObjectQualifier + "GetBackgroundTaskParams", + new SqlParameter("@taskId", taskId)); + } + + public static void AddBackgroundTaskParam(int taskId, string name, string value) + { + SqlHelper.ExecuteNonQuery(ConnectionString, CommandType.StoredProcedure, + ObjectQualifier + "AddBackgroundTaskParam", + new SqlParameter("@taskId", taskId), + new SqlParameter("@name", name), + new SqlParameter("@value", value)); + } + + public static void DeleteBackgroundTaskParams(int taskId) + { + SqlHelper.ExecuteNonQuery(ConnectionString, CommandType.StoredProcedure, + ObjectQualifier + "DeleteBackgroundTaskParams", + new SqlParameter("@taskId", taskId)); + } + + public static void AddBackgroundTaskStack(int taskId) + { + SqlHelper.ExecuteNonQuery(ConnectionString, CommandType.StoredProcedure, + ObjectQualifier + "AddBackgroundTaskStack", + new SqlParameter("@taskId", taskId)); + } + + public static void DeleteBackgroundTaskStack(int taskId) + { + SqlHelper.ExecuteNonQuery(ConnectionString, CommandType.StoredProcedure, + ObjectQualifier + "DeleteBackgroundTaskStack", + new SqlParameter("@taskId", taskId)); + } + public static IDataReader GetScheduleTasks(int actorId) { return SqlHelper.ExecuteReader(ConnectionString, CommandType.StoredProcedure, diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/DatabaseServers/DatabaseServerController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/DatabaseServers/DatabaseServerController.cs index 26a3fac9..99e2d55d 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/DatabaseServers/DatabaseServerController.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/DatabaseServers/DatabaseServerController.cs @@ -200,8 +200,8 @@ namespace WebsitePanel.EnterpriseServer if (packageCheck < 0) return packageCheck; // place log record - TaskManager.StartTask("SQL_DATABASE", "UPDATE", origItem.Name); - TaskManager.ItemId = item.Id; + TaskManager.StartTask("SQL_DATABASE", "UPDATE", origItem.Name, item.Id); + TaskManager.WriteParameter("Provider", origItem.GroupName); try @@ -237,9 +237,7 @@ namespace WebsitePanel.EnterpriseServer return BusinessErrorCodes.ERROR_MSSQL_DATABASES_PACKAGE_ITEM_NOT_FOUND; // place log record - TaskManager.StartTask("SQL_DATABASE", "DELETE", origItem.Name); - TaskManager.ItemId = itemId; - TaskManager.WriteParameter("Provider", origItem.GroupName); + TaskManager.StartTask("SQL_DATABASE", "DELETE", origItem.Name, itemId, new BackgroundTaskParameter("Provider", origItem.GroupName)); try { @@ -305,8 +303,7 @@ namespace WebsitePanel.EnterpriseServer return null; // place log record - TaskManager.StartTask("SQL_DATABASE", "BACKUP", item.Name); - TaskManager.ItemId = itemId; + TaskManager.StartTask("SQL_DATABASE", "BACKUP", item.Name, itemId); try { @@ -398,8 +395,7 @@ namespace WebsitePanel.EnterpriseServer if (packageCheck < 0) return packageCheck; // place log record - TaskManager.StartTask("SQL_DATABASE", "RESTORE", item.Name); - TaskManager.ItemId = itemId; + TaskManager.StartTask("SQL_DATABASE", "RESTORE", item.Name, itemId); try { @@ -468,8 +464,7 @@ namespace WebsitePanel.EnterpriseServer return BusinessErrorCodes.ERROR_MSSQL_DATABASES_PACKAGE_ITEM_NOT_FOUND; // place log record - TaskManager.StartTask("SQL_DATABASE", "TRUNCATE", origItem.Name); - TaskManager.ItemId = itemId; + TaskManager.StartTask("SQL_DATABASE", "TRUNCATE", origItem.Name, itemId); try { @@ -701,8 +696,7 @@ namespace WebsitePanel.EnterpriseServer if (packageCheck < 0) return packageCheck; // place log record - TaskManager.StartTask("SQL_USER", "UPDATE", origItem.Name); - TaskManager.ItemId = item.Id; + TaskManager.StartTask("SQL_USER", "UPDATE", origItem.Name, item.Id); try { @@ -746,8 +740,7 @@ namespace WebsitePanel.EnterpriseServer return BusinessErrorCodes.ERROR_MSSQL_USERS_PACKAGE_ITEM_NOT_FOUND; // place log record - TaskManager.StartTask("SQL_USER", "DELETE", origItem.Name); - TaskManager.ItemId = itemId; + TaskManager.StartTask("SQL_USER", "DELETE", origItem.Name, itemId); try { diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/DnsServers/DnsServerController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/DnsServers/DnsServerController.cs index de9aa5fd..10d4bbea 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/DnsServers/DnsServerController.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/DnsServers/DnsServerController.cs @@ -214,12 +214,10 @@ namespace WebsitePanel.EnterpriseServer // if (zoneItem != null) { - TaskManager.StartTask("DNS_ZONE", "DELETE", zoneItem.Name); + TaskManager.StartTask("DNS_ZONE", "DELETE", zoneItem.Name, zoneItemId); // try { - // - TaskManager.ItemId = zoneItemId; // delete DNS zone DNSServer dns = new DNSServer(); ServiceProviderProxy.Init(dns, zoneItem.ServiceId); diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Ecommerce/ContractSystem/ContractController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Ecommerce/ContractSystem/ContractController.cs index 05920e1a..1fcab30c 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Ecommerce/ContractSystem/ContractController.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Ecommerce/ContractSystem/ContractController.cs @@ -84,8 +84,10 @@ namespace WebsitePanel.Ecommerce.EnterpriseServer.ContractSystem // result.Succeed = true; result.SetProperty("ContractId", contractId); + // Add contract object - ES.TaskManager.TaskParameters[SystemTaskParams.PARAM_CONTRACT] = GetContract(contractId); + ES.TaskManager.UpdateParam(SystemTaskParams.PARAM_CONTRACT, GetContract(contractId)); + // return result; } diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Ecommerce/InvoiceController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Ecommerce/InvoiceController.cs index 8b666d2a..65ccd06e 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Ecommerce/InvoiceController.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Ecommerce/InvoiceController.cs @@ -224,10 +224,15 @@ namespace WebsitePanel.Ecommerce.EnterpriseServer InvoiceController.UpdateInvoice(invoice.InvoiceId, invoice.InvoiceNumber, invoice.DueDate, invoice.Total, invoice.SubTotal, invoice.TaxationId, invoice.TaxAmount, invoice.Currency); // - ES.TaskManager.TaskParameters[SystemTaskParams.PARAM_CONTRACT] = contract; - ES.TaskManager.TaskParameters[SystemTaskParams.PARAM_INVOICE] = invoice; - ES.TaskManager.TaskParameters[SystemTaskParams.PARAM_INVOICE_LINES] = invoiceLines; - ES.TaskManager.TaskParameters[SystemTaskParams.PARAM_EXTRA_ARGS] = extraArgs; + + Hashtable parameters = new Hashtable(); + + parameters.Add(SystemTaskParams.PARAM_CONTRACT, contract); + parameters.Add(SystemTaskParams.PARAM_INVOICE, invoice); + parameters.Add(SystemTaskParams.PARAM_INVOICE_LINES, invoiceLines); + parameters.Add(SystemTaskParams.PARAM_EXTRA_ARGS, extraArgs); + + TaskManager.UpdateParams(parameters); // return result; } diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Ecommerce/Provisioning/HostingPackageController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Ecommerce/Provisioning/HostingPackageController.cs index 196c6f88..dca4232f 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Ecommerce/Provisioning/HostingPackageController.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Ecommerce/Provisioning/HostingPackageController.cs @@ -162,7 +162,8 @@ namespace WebsitePanel.Ecommerce.EnterpriseServer TaskManager.WriteParameter(USERNAME_PARAM, context.ConsumerInfo[ContractAccount.USERNAME]); TaskManager.WriteParameter(SVC_PARAM, context.ServiceInfo.ServiceName); TaskManager.WriteParameter(SVC_ID_PARAM, context.ServiceInfo.ServiceId); - TaskManager.TaskParameters[SystemTaskParams.PARAM_SEND_EMAIL] = context.SendEmail; + + TaskManager.UpdateParam(SystemTaskParams.PARAM_SEND_EMAIL, context.SendEmail); // 0. Do security checks if (!CheckOperationClientPermissions(result)) diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Ecommerce/Provisioning/ServiceProvisioningBase.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Ecommerce/Provisioning/ServiceProvisioningBase.cs index 50673c48..1988b103 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Ecommerce/Provisioning/ServiceProvisioningBase.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Ecommerce/Provisioning/ServiceProvisioningBase.cs @@ -235,10 +235,13 @@ namespace WebsitePanel.Ecommerce.EnterpriseServer protected void SetOutboundParameters(ProvisioningContext context) { // set task outbound parameters - TaskManager.TaskParameters[SystemTaskParams.PARAM_SERVICE] = context.ServiceInfo; - TaskManager.TaskParameters[SystemTaskParams.PARAM_CONTRACT] = context.ContractInfo; - TaskManager.TaskParameters[SystemTaskParams.PARAM_CONTRACT_ACCOUNT] = context.ConsumerInfo; - TaskManager.TaskParameters[SystemTaskParams.PARAM_SEND_EMAIL] = context.SendEmail; + Hashtable parameters = new Hashtable(); + parameters.Add(SystemTaskParams.PARAM_SERVICE, context.ServiceInfo); + parameters.Add(SystemTaskParams.PARAM_CONTRACT, context.ContractInfo); + parameters.Add(SystemTaskParams.PARAM_CONTRACT_ACCOUNT, context.ConsumerInfo); + parameters.Add(SystemTaskParams.PARAM_SEND_EMAIL, context.SendEmail); + + TaskManager.UpdateParams(parameters); } } diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Ecommerce/StorehouseController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Ecommerce/StorehouseController.cs index f5efbdc9..6ea4ddc6 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Ecommerce/StorehouseController.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Ecommerce/StorehouseController.cs @@ -1145,10 +1145,15 @@ namespace WebsitePanel.Ecommerce.EnterpriseServer // int resultCode = EcommerceProvider.UpdateCustomerPayment(SecurityContext.User.UserId, paymentId, invoiceId, transactionId, total, currency, methodName, pluginId, (int)status); + // - TaskManager.TaskParameters[SystemTaskParams.PARAM_CONTRACT] = ContractSystem.ContractController.GetContract(contractId); - TaskManager.TaskParameters[SystemTaskParams.PARAM_INVOICE] = InvoiceController.GetCustomerInvoiceInternally(invoiceId); - TaskManager.TaskParameters[SystemTaskParams.PARAM_PAYMENT] = GetCustomerPayment(paymentId); + Hashtable parameters = new Hashtable(); + parameters[SystemTaskParams.PARAM_CONTRACT] = ContractSystem.ContractController.GetContract(contractId); + parameters[SystemTaskParams.PARAM_INVOICE] = InvoiceController.GetCustomerInvoiceInternally(invoiceId); + parameters[SystemTaskParams.PARAM_PAYMENT] = GetCustomerPayment(paymentId); + + TaskManager.UpdateParams(parameters); + // return resultCode; } @@ -1209,9 +1214,12 @@ namespace WebsitePanel.Ecommerce.EnterpriseServer // TRACE TaskManager.WriteParameter("PaymentID", resultCode); // - TaskManager.TaskParameters[SystemTaskParams.PARAM_CONTRACT] = contract; - TaskManager.TaskParameters[SystemTaskParams.PARAM_INVOICE] = invoice; - TaskManager.TaskParameters[SystemTaskParams.PARAM_PAYMENT] = GetCustomerPayment(resultCode); + Hashtable parameters = new Hashtable(); + parameters[SystemTaskParams.PARAM_CONTRACT] = contract; + parameters[SystemTaskParams.PARAM_INVOICE] = invoice; + parameters[SystemTaskParams.PARAM_PAYMENT] = GetCustomerPayment(resultCode); + + TaskManager.UpdateParams(parameters); // return resultCode; } diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Ecommerce/TaskEventHandlers/SendEmailNotification.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Ecommerce/TaskEventHandlers/SendEmailNotification.cs index d13af554..8dbdf99e 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Ecommerce/TaskEventHandlers/SendEmailNotification.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Ecommerce/TaskEventHandlers/SendEmailNotification.cs @@ -45,9 +45,11 @@ namespace WebsitePanel.Ecommerce.EnterpriseServer.TaskEventHandlers /// public override void OnComplete() { - if (!TaskManager.HasErrors) + BackgroundTask topTask = TaskController.GetTopTask(); + + if (!TaskManager.HasErrors(topTask)) { - switch (TaskManager.TaskName) + switch (topTask.TaskName) { case SystemTasks.SVC_SUSPEND: case SystemTasks.SVC_CANCEL: @@ -72,7 +74,10 @@ namespace WebsitePanel.Ecommerce.EnterpriseServer.TaskEventHandlers // send an e-mail notification try { - bool sendNotification = (bool)TaskManager.TaskParameters[SystemTaskParams.PARAM_SEND_EMAIL]; + BackgroundTask topTask = TaskController.GetTopTask(); + + bool sendNotification = Utils.ParseBool(topTask.GetParamValue(SystemTaskParams.PARAM_SEND_EMAIL), false); + // Ensure notification is required if (!sendNotification) { @@ -80,7 +85,7 @@ namespace WebsitePanel.Ecommerce.EnterpriseServer.TaskEventHandlers return; } - Service service = (Service)TaskManager.TaskParameters[SystemTaskParams.PARAM_SERVICE]; + Service service = (Service)topTask.GetParamValue(SystemTaskParams.PARAM_SERVICE); int smtpResult = 0; switch (service.Status) { @@ -112,9 +117,11 @@ namespace WebsitePanel.Ecommerce.EnterpriseServer.TaskEventHandlers // try { + BackgroundTask topTask = TaskController.GetTopTask(); + // Read task parameters - Invoice invoice = (Invoice)TaskManager.TaskParameters[SystemTaskParams.PARAM_INVOICE]; - CustomerPayment payment = (CustomerPayment)TaskManager.TaskParameters[SystemTaskParams.PARAM_PAYMENT]; + Invoice invoice = (Invoice)topTask.GetParamValue(SystemTaskParams.PARAM_INVOICE); + CustomerPayment payment = (CustomerPayment)topTask.GetParamValue(SystemTaskParams.PARAM_PAYMENT); // if (payment.Status == TransactionStatus.Approved) { @@ -139,11 +146,13 @@ namespace WebsitePanel.Ecommerce.EnterpriseServer.TaskEventHandlers // try { + BackgroundTask topTask = TaskController.GetTopTask(); + // Read task parameters - Contract contract = (Contract)TaskManager.TaskParameters[SystemTaskParams.PARAM_CONTRACT]; - Invoice invoice = (Invoice)TaskManager.TaskParameters[SystemTaskParams.PARAM_INVOICE]; - List invoiceLines = (List)TaskManager.TaskParameters[SystemTaskParams.PARAM_INVOICE_LINES]; - KeyValueBunch extraArgs = (KeyValueBunch)TaskManager.TaskParameters[SystemTaskParams.PARAM_EXTRA_ARGS]; + Contract contract = (Contract)topTask.GetParamValue(SystemTaskParams.PARAM_CONTRACT); + Invoice invoice = (Invoice)topTask.GetParamValue(SystemTaskParams.PARAM_INVOICE); + List invoiceLines = (List)topTask.GetParamValue(SystemTaskParams.PARAM_INVOICE_LINES); + KeyValueBunch extraArgs = (KeyValueBunch)topTask.GetParamValue(SystemTaskParams.PARAM_EXTRA_ARGS); // modify invoice direct url if (extraArgs != null && !String.IsNullOrEmpty(extraArgs["InvoiceDirectURL"])) extraArgs["InvoiceDirectURL"] += "&InvoiceId=" + invoice.InvoiceId; diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Ecommerce/TaskEventHandlers/SystemTriggersAgent.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Ecommerce/TaskEventHandlers/SystemTriggersAgent.cs index 1ce637c4..cc7f4edd 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Ecommerce/TaskEventHandlers/SystemTriggersAgent.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Ecommerce/TaskEventHandlers/SystemTriggersAgent.cs @@ -44,9 +44,11 @@ namespace WebsitePanel.Ecommerce.EnterpriseServer.TaskEventHandlers public override void OnComplete() { - if (!TaskManager.HasErrors) + BackgroundTask topTask = TaskController.GetTopTask(); + + if (!TaskManager.HasErrors(topTask)) { - switch (TaskManager.TaskName) + switch (topTask.TaskName) { case SystemTasks.TASK_ADD_INVOICE: RegisterInvoiceActivationTrigger(); @@ -64,8 +66,10 @@ namespace WebsitePanel.Ecommerce.EnterpriseServer.TaskEventHandlers private void RegisterInvoiceActivationTrigger() { + BackgroundTask topTask = TaskController.GetTopTask(); + // Read contract invoice - Invoice invoice = (Invoice)TaskManager.TaskParameters[SystemTaskParams.PARAM_INVOICE]; + Invoice invoice = (Invoice)topTask.GetParamValue(SystemTaskParams.PARAM_INVOICE); // TriggerSystem.TriggerController.AddSystemTrigger(invoice.InvoiceId.ToString(), ActivateInvoiceTrigger.STATUS_AWAITING_PAYMENT, typeof(ActivateInvoiceTrigger)); @@ -73,10 +77,12 @@ namespace WebsitePanel.Ecommerce.EnterpriseServer.TaskEventHandlers private void RegisterContractActivationTrigger() { + BackgroundTask topTask = TaskController.GetTopTask(); + // Ensure the contract has been registered successfully - if (TaskManager.TaskParameters.ContainsKey(SystemTaskParams.PARAM_CONTRACT)) + if (topTask.ContainsParam(SystemTaskParams.PARAM_CONTRACT)) { - Contract contract = (Contract)TaskManager.TaskParameters[SystemTaskParams.PARAM_CONTRACT]; + Contract contract = (Contract)topTask.GetParamValue(SystemTaskParams.PARAM_CONTRACT); // if (contract.Status == ContractStatus.Pending) { @@ -88,8 +94,10 @@ namespace WebsitePanel.Ecommerce.EnterpriseServer.TaskEventHandlers private void ActivatePaymentSystemTriggers() { - CustomerPayment payment = (CustomerPayment)TaskManager.TaskParameters[SystemTaskParams.PARAM_PAYMENT]; - Contract contract = (Contract)TaskManager.TaskParameters[SystemTaskParams.PARAM_CONTRACT]; + BackgroundTask topTask = TaskController.GetTopTask(); + + CustomerPayment payment = (CustomerPayment)topTask.GetParamValue(SystemTaskParams.PARAM_PAYMENT); + Contract contract = (Contract)topTask.GetParamValue(SystemTaskParams.PARAM_CONTRACT); // Run activate contract trigger if the transaction was approved if (payment.Status == TransactionStatus.Approved) diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/ExchangeServer/ExchangeServerController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/ExchangeServer/ExchangeServerController.cs index 8e0a1a82..8ea81b62 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/ExchangeServer/ExchangeServerController.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/ExchangeServer/ExchangeServerController.cs @@ -171,8 +171,7 @@ namespace WebsitePanel.EnterpriseServer #endregion // place log record - TaskManager.StartTask("EXCHANGE", "GET_ORG_STATS"); - TaskManager.ItemId = itemId; + TaskManager.StartTask("EXCHANGE", "GET_ORG_STATS", itemId); try { @@ -260,8 +259,7 @@ namespace WebsitePanel.EnterpriseServer if (accountCheck < 0) return accountCheck; // place log record - TaskManager.StartTask("EXCHANGE", "CALCULATE_DISKSPACE"); - TaskManager.ItemId = itemId; + TaskManager.StartTask("EXCHANGE", "CALCULATE_DISKSPACE", itemId); try { @@ -348,8 +346,7 @@ namespace WebsitePanel.EnterpriseServer private static int ExtendToExchangeOrganization(ref Organization org) { // place log record - TaskManager.StartTask("EXCHANGE", "CREATE_ORG", org.Name); - TaskManager.TaskParameters["Organization ID"] = org.OrganizationId; + TaskManager.StartTask("EXCHANGE", "CREATE_ORG", org.Name, new BackgroundTaskParameter("Organization ID", org.OrganizationId)); try { @@ -575,8 +572,7 @@ namespace WebsitePanel.EnterpriseServer if (accountCheck < 0) return accountCheck; // place log record - TaskManager.StartTask("EXCHANGE", "DELETE_ORG"); - TaskManager.ItemId = itemId; + TaskManager.StartTask("EXCHANGE", "DELETE_ORG", itemId); try { @@ -613,8 +609,7 @@ namespace WebsitePanel.EnterpriseServer public static Organization GetOrganizationStorageLimits(int itemId) { // place log record - TaskManager.StartTask("EXCHANGE", "GET_ORG_LIMITS"); - TaskManager.ItemId = itemId; + TaskManager.StartTask("EXCHANGE", "GET_ORG_LIMITS", itemId); try { @@ -638,8 +633,7 @@ namespace WebsitePanel.EnterpriseServer if (accountCheck < 0) return accountCheck; // place log record - TaskManager.StartTask("EXCHANGE", "SET_ORG_LIMITS"); - TaskManager.ItemId = itemId; + TaskManager.StartTask("EXCHANGE", "SET_ORG_LIMITS", itemId); try { @@ -724,8 +718,7 @@ namespace WebsitePanel.EnterpriseServer #endregion // place log record - TaskManager.StartTask("EXCHANGE", "GET_MAILBOXES_STATS"); - TaskManager.ItemId = itemId; + TaskManager.StartTask("EXCHANGE", "GET_MAILBOXES_STATS", itemId); try { @@ -753,8 +746,7 @@ namespace WebsitePanel.EnterpriseServer public static ExchangeMailboxStatistics GetMailboxStatistics(int itemId, int accountId) { // place log record - TaskManager.StartTask("EXCHANGE", "GET_MAILBOX_STATS"); - TaskManager.ItemId = itemId; + TaskManager.StartTask("EXCHANGE", "GET_MAILBOX_STATS", itemId); try { @@ -818,8 +810,7 @@ namespace WebsitePanel.EnterpriseServer #endregion // place log record - TaskManager.StartTask("EXCHANGE", "GET_FOLDERS_STATS"); - TaskManager.ItemId = itemId; + TaskManager.StartTask("EXCHANGE", "GET_FOLDERS_STATS", itemId); try { @@ -865,8 +856,7 @@ namespace WebsitePanel.EnterpriseServer #endregion // place log record - TaskManager.StartTask("EXCHANGE", "GET_ACTIVESYNC_POLICY"); - TaskManager.ItemId = itemId; + TaskManager.StartTask("EXCHANGE", "GET_ACTIVESYNC_POLICY", itemId); try { @@ -917,8 +907,7 @@ namespace WebsitePanel.EnterpriseServer if (accountCheck < 0) return accountCheck; // place log record - TaskManager.StartTask("EXCHANGE", "SET_ACTIVESYNC_POLICY"); - TaskManager.ItemId = itemId; + TaskManager.StartTask("EXCHANGE", "SET_ACTIVESYNC_POLICY", itemId); try { @@ -1171,8 +1160,7 @@ namespace WebsitePanel.EnterpriseServer public static bool CheckAccountCredentials(int itemId, string email, string password) { // place log record - TaskManager.StartTask("EXCHANGE", "AUTHENTICATE", email); - TaskManager.ItemId = itemId; + TaskManager.StartTask("EXCHANGE", "AUTHENTICATE", email, itemId); try { @@ -1396,9 +1384,7 @@ namespace WebsitePanel.EnterpriseServer if (accountCheck < 0) return accountCheck; // place log record - TaskManager.StartTask("EXCHANGE", "ADD_DOMAIN"); - TaskManager.TaskParameters["Domain ID"] = domainId; - TaskManager.ItemId = itemId; + TaskManager.StartTask("EXCHANGE", "ADD_DOMAIN", itemId, new BackgroundTaskParameter("Domain ID", domainId)); try { @@ -1469,10 +1455,12 @@ namespace WebsitePanel.EnterpriseServer if (accountCheck < 0) return accountCheck; // place log record - TaskManager.StartTask("EXCHANGE", "CHANGE_DOMAIN_TYPE"); - TaskManager.TaskParameters["Domain ID"] = domainId; - TaskManager.TaskParameters["Domain Type"] = domainType.ToString(); - TaskManager.ItemId = itemId; + + IList parameters = new List(); + parameters.Add(new BackgroundTaskParameter("Domain ID", domainId)); + parameters.Add(new BackgroundTaskParameter("Domain Type", domainType.ToString())); + + TaskManager.StartTask("EXCHANGE", "CHANGE_DOMAIN_TYPE", itemId, parameters); try { @@ -1527,9 +1515,7 @@ namespace WebsitePanel.EnterpriseServer if (accountCheck < 0) return accountCheck; // place log record - TaskManager.StartTask("EXCHANGE", "DELETE_DOMAIN"); - TaskManager.TaskParameters["Domain ID"] = domainId; - TaskManager.ItemId = itemId; + TaskManager.StartTask("EXCHANGE", "DELETE_DOMAIN", itemId, new BackgroundTaskParameter("Domain ID", domainId)); try { @@ -1632,8 +1618,8 @@ namespace WebsitePanel.EnterpriseServer // place log record - TaskManager.StartTask("EXCHANGE", "CREATE_MAILBOX"); - TaskManager.ItemId = itemId; + TaskManager.StartTask("EXCHANGE", "CREATE_MAILBOX", itemId); + bool userCreated = false; Organization org = null; try @@ -1824,8 +1810,7 @@ namespace WebsitePanel.EnterpriseServer if (accountCheck < 0) return accountCheck; // place log record - TaskManager.StartTask("EXCHANGE", "DISABLE_MAILBOX"); - TaskManager.ItemId = itemId; + TaskManager.StartTask("EXCHANGE", "DISABLE_MAILBOX", itemId); try { @@ -1873,8 +1858,7 @@ namespace WebsitePanel.EnterpriseServer if (accountCheck < 0) return accountCheck; // place log record - TaskManager.StartTask("EXCHANGE", "DELETE_MAILBOX"); - TaskManager.ItemId = itemId; + TaskManager.StartTask("EXCHANGE", "DELETE_MAILBOX", itemId); try { @@ -1953,8 +1937,7 @@ namespace WebsitePanel.EnterpriseServer #endregion // place log record - TaskManager.StartTask("EXCHANGE", "GET_MAILBOX_GENERAL"); - TaskManager.ItemId = itemId; + TaskManager.StartTask("EXCHANGE", "GET_MAILBOX_GENERAL", itemId); try { @@ -1989,8 +1972,7 @@ namespace WebsitePanel.EnterpriseServer if (accountCheck < 0) return accountCheck; // place log record - TaskManager.StartTask("EXCHANGE", "UPDATE_MAILBOX_GENERAL"); - TaskManager.ItemId = itemId; + TaskManager.StartTask("EXCHANGE", "UPDATE_MAILBOX_GENERAL", itemId); try { @@ -2036,8 +2018,7 @@ namespace WebsitePanel.EnterpriseServer public static ExchangeEmailAddress[] GetMailboxEmailAddresses(int itemId, int accountId) { // place log record - TaskManager.StartTask("EXCHANGE", "GET_MAILBOX_ADDRESSES"); - TaskManager.ItemId = itemId; + TaskManager.StartTask("EXCHANGE", "GET_MAILBOX_ADDRESSES", itemId); try { @@ -2060,8 +2041,7 @@ namespace WebsitePanel.EnterpriseServer if (accountCheck < 0) return accountCheck; // place log record - TaskManager.StartTask("EXCHANGE", "ADD_MAILBOX_ADDRESS"); - TaskManager.ItemId = itemId; + TaskManager.StartTask("EXCHANGE", "ADD_MAILBOX_ADDRESS", itemId); try { @@ -2123,8 +2103,7 @@ namespace WebsitePanel.EnterpriseServer if (accountCheck < 0) return accountCheck; // place log record - TaskManager.StartTask("EXCHANGE", "SET_PRIMARY_MAILBOX_ADDRESS"); - TaskManager.ItemId = itemId; + TaskManager.StartTask("EXCHANGE", "SET_PRIMARY_MAILBOX_ADDRESS", itemId); try { @@ -2183,8 +2162,7 @@ namespace WebsitePanel.EnterpriseServer if (accountCheck < 0) return accountCheck; // place log record - TaskManager.StartTask("EXCHANGE", "DELETE_MAILBOX_ADDRESSES"); - TaskManager.ItemId = itemId; + TaskManager.StartTask("EXCHANGE", "DELETE_MAILBOX_ADDRESSES", itemId); try { @@ -2238,8 +2216,7 @@ namespace WebsitePanel.EnterpriseServer #endregion // place log record - TaskManager.StartTask("EXCHANGE", "GET_MAILBOX_MAILFLOW"); - TaskManager.ItemId = itemId; + TaskManager.StartTask("EXCHANGE", "GET_MAILBOX_MAILFLOW", itemId); try { @@ -2278,8 +2255,7 @@ namespace WebsitePanel.EnterpriseServer if (accountCheck < 0) return accountCheck; // place log record - TaskManager.StartTask("EXCHANGE", "UPDATE_MAILBOX_MAILFLOW"); - TaskManager.ItemId = itemId; + TaskManager.StartTask("EXCHANGE", "UPDATE_MAILBOX_MAILFLOW", itemId); try { @@ -2331,8 +2307,7 @@ namespace WebsitePanel.EnterpriseServer #endregion // place log record - TaskManager.StartTask("EXCHANGE", "GET_MAILBOX_ADVANCED"); - TaskManager.ItemId = itemId; + TaskManager.StartTask("EXCHANGE", "GET_MAILBOX_ADVANCED", itemId); try { @@ -2368,8 +2343,7 @@ namespace WebsitePanel.EnterpriseServer if (accountCheck < 0) return accountCheck; // place log record - TaskManager.StartTask("EXCHANGE", "UPDATE_MAILBOX_GENERAL"); - TaskManager.ItemId = itemId; + TaskManager.StartTask("EXCHANGE", "UPDATE_MAILBOX_GENERAL", itemId); try { @@ -2539,8 +2513,7 @@ namespace WebsitePanel.EnterpriseServer public static ExchangeMailbox GetMailboxPermissions(int itemId, int accountId) { // place log record - TaskManager.StartTask("EXCHANGE", "GET_MAILBOX_PERMISSIONS"); - TaskManager.ItemId = itemId; + TaskManager.StartTask("EXCHANGE", "GET_MAILBOX_PERMISSIONS", itemId); try { @@ -2576,8 +2549,7 @@ namespace WebsitePanel.EnterpriseServer if (accountCheck < 0) return accountCheck; // place log record - TaskManager.StartTask("EXCHANGE", "SET_MAILBOX_PERMISSIONS"); - TaskManager.ItemId = itemId; + TaskManager.StartTask("EXCHANGE", "SET_MAILBOX_PERMISSIONS", itemId); try { @@ -2625,8 +2597,7 @@ namespace WebsitePanel.EnterpriseServer if (accountCheck < 0) return accountCheck; // place log record - TaskManager.StartTask("EXCHANGE", "SET_MAILBOXPLAN"); - TaskManager.ItemId = itemId; + TaskManager.StartTask("EXCHANGE", "SET_MAILBOXPLAN", itemId); try { @@ -2736,8 +2707,7 @@ namespace WebsitePanel.EnterpriseServer public static List GetExchangeMailboxPlans(int itemId) { // place log record - TaskManager.StartTask("EXCHANGE", "GET_EXCHANGE_MAILBOXPLANS"); - TaskManager.ItemId = itemId; + TaskManager.StartTask("EXCHANGE", "GET_EXCHANGE_MAILBOXPLANS", itemId); try { @@ -2819,8 +2789,7 @@ namespace WebsitePanel.EnterpriseServer { // place log record - TaskManager.StartTask("EXCHANGE", "GET_EXCHANGE_MAILBOXPLAN"); - TaskManager.ItemId = mailboxPlanId; + TaskManager.StartTask("EXCHANGE", "GET_EXCHANGE_MAILBOXPLAN", mailboxPlanId); try { @@ -2840,8 +2809,7 @@ namespace WebsitePanel.EnterpriseServer public static int AddExchangeMailboxPlan(int itemID, ExchangeMailboxPlan mailboxPlan) { // place log record - TaskManager.StartTask("EXCHANGE", "ADD_EXCHANGE_MAILBOXPLAN"); - TaskManager.ItemId = itemID; + TaskManager.StartTask("EXCHANGE", "ADD_EXCHANGE_MAILBOXPLAN", itemID); try { @@ -2910,8 +2878,7 @@ namespace WebsitePanel.EnterpriseServer public static int UpdateExchangeMailboxPlan(int itemID, ExchangeMailboxPlan mailboxPlan) { // place log record - TaskManager.StartTask("EXCHANGE", "UPDATE_EXCHANGE_MAILBOXPLAN"); - TaskManager.ItemId = itemID; + TaskManager.StartTask("EXCHANGE", "UPDATE_EXCHANGE_MAILBOXPLAN", itemID); try { @@ -2983,8 +2950,7 @@ namespace WebsitePanel.EnterpriseServer public static int DeleteExchangeMailboxPlan(int itemID, int mailboxPlanId) { - TaskManager.StartTask("EXCHANGE", "DELETE_EXCHANGE_MAILBOXPLAN"); - TaskManager.ItemId = itemID; + TaskManager.StartTask("EXCHANGE", "DELETE_EXCHANGE_MAILBOXPLAN", itemID); try { @@ -3005,8 +2971,7 @@ namespace WebsitePanel.EnterpriseServer public static void SetOrganizationDefaultExchangeMailboxPlan(int itemId, int mailboxPlanId) { - TaskManager.StartTask("EXCHANGE", "SET_EXCHANGE_MAILBOXPLAN"); - TaskManager.ItemId = itemId; + TaskManager.StartTask("EXCHANGE", "SET_EXCHANGE_MAILBOXPLAN", itemId); try { @@ -3046,8 +3011,7 @@ namespace WebsitePanel.EnterpriseServer return BusinessErrorCodes.ERROR_EXCHANGE_CONTACTS_QUOTA_LIMIT; // place log record - TaskManager.StartTask("EXCHANGE", "CREATE_CONTACT"); - TaskManager.ItemId = itemId; + TaskManager.StartTask("EXCHANGE", "CREATE_CONTACT", itemId); try { @@ -3114,10 +3078,9 @@ namespace WebsitePanel.EnterpriseServer if (accountCheck < 0) return accountCheck; // place log record - TaskManager.StartTask("EXCHANGE", "DELETE_CONTACT"); - TaskManager.ItemId = itemId; + TaskManager.StartTask("EXCHANGE", "DELETE_CONTACT", itemId); - try + try { // load organization Organization org = GetOrganization(itemId); @@ -3170,8 +3133,7 @@ namespace WebsitePanel.EnterpriseServer #endregion // place log record - TaskManager.StartTask("EXCHANGE", "GET_CONTACT_GENERAL"); - TaskManager.ItemId = itemId; + TaskManager.StartTask("EXCHANGE", "GET_CONTACT_GENERAL", itemId); try { @@ -3211,8 +3173,7 @@ namespace WebsitePanel.EnterpriseServer if (accountCheck < 0) return accountCheck; // place log record - TaskManager.StartTask("EXCHANGE", "UPDATE_CONTACT_GENERAL"); - TaskManager.ItemId = itemId; + TaskManager.StartTask("EXCHANGE", "UPDATE_CONTACT_GENERAL", itemId); try { @@ -3292,8 +3253,7 @@ namespace WebsitePanel.EnterpriseServer #endregion // place log record - TaskManager.StartTask("EXCHANGE", "GET_CONTACT_MAILFLOW"); - TaskManager.ItemId = itemId; + TaskManager.StartTask("EXCHANGE", "GET_CONTACT_MAILFLOW", itemId); try { @@ -3331,8 +3291,7 @@ namespace WebsitePanel.EnterpriseServer if (accountCheck < 0) return accountCheck; // place log record - TaskManager.StartTask("EXCHANGE", "UPDATE_CONTACT_MAILFLOW"); - TaskManager.ItemId = itemId; + TaskManager.StartTask("EXCHANGE", "UPDATE_CONTACT_MAILFLOW", itemId); try { @@ -3384,8 +3343,7 @@ namespace WebsitePanel.EnterpriseServer return BusinessErrorCodes.ERROR_EXCHANGE_DLISTS_QUOTA_LIMIT; // place log record - TaskManager.StartTask("EXCHANGE", "CREATE_DISTR_LIST"); - TaskManager.ItemId = itemId; + TaskManager.StartTask("EXCHANGE", "CREATE_DISTR_LIST", itemId); try { @@ -3465,8 +3423,7 @@ namespace WebsitePanel.EnterpriseServer if (accountCheck < 0) return accountCheck; // place log record - TaskManager.StartTask("EXCHANGE", "DELETE_DISTR_LIST"); - TaskManager.ItemId = itemId; + TaskManager.StartTask("EXCHANGE", "DELETE_DISTR_LIST", itemId); try { @@ -3520,8 +3477,7 @@ namespace WebsitePanel.EnterpriseServer #endregion // place log record - TaskManager.StartTask("EXCHANGE", "GET_DISTR_LIST_GENERAL"); - TaskManager.ItemId = itemId; + TaskManager.StartTask("EXCHANGE", "GET_DISTR_LIST_GENERAL", itemId); try { @@ -3558,8 +3514,7 @@ namespace WebsitePanel.EnterpriseServer if (accountCheck < 0) return accountCheck; // place log record - TaskManager.StartTask("EXCHANGE", "UPDATE_DISTR_LIST_GENERAL"); - TaskManager.ItemId = itemId; + TaskManager.StartTask("EXCHANGE", "UPDATE_DISTR_LIST_GENERAL", itemId); try { @@ -3621,8 +3576,7 @@ namespace WebsitePanel.EnterpriseServer #endregion // place log record - TaskManager.StartTask("EXCHANGE", "GET_DISTR_LIST_MAILFLOW"); - TaskManager.ItemId = itemId; + TaskManager.StartTask("EXCHANGE", "GET_DISTR_LIST_MAILFLOW", itemId); try { @@ -3660,8 +3614,7 @@ namespace WebsitePanel.EnterpriseServer if (accountCheck < 0) return accountCheck; // place log record - TaskManager.StartTask("EXCHANGE", "UPDATE_DISTR_LIST_MAILFLOW"); - TaskManager.ItemId = itemId; + TaskManager.StartTask("EXCHANGE", "UPDATE_DISTR_LIST_MAILFLOW", itemId); try { @@ -3707,8 +3660,7 @@ namespace WebsitePanel.EnterpriseServer public static ExchangeEmailAddress[] GetDistributionListEmailAddresses(int itemId, int accountId) { // place log record - TaskManager.StartTask("EXCHANGE", "GET_DISTR_LIST_ADDRESSES"); - TaskManager.ItemId = itemId; + TaskManager.StartTask("EXCHANGE", "GET_DISTR_LIST_ADDRESSES", itemId); try { @@ -3731,8 +3683,7 @@ namespace WebsitePanel.EnterpriseServer if (accountCheck < 0) return accountCheck; // place log record - TaskManager.StartTask("EXCHANGE", "ADD_DISTR_LIST_ADDRESS"); - TaskManager.ItemId = itemId; + TaskManager.StartTask("EXCHANGE", "ADD_DISTR_LIST_ADDRESS", itemId); try { @@ -3786,8 +3737,7 @@ namespace WebsitePanel.EnterpriseServer if (accountCheck < 0) return accountCheck; // place log record - TaskManager.StartTask("EXCHANGE", "SET_PRIMARY_DISTR_LIST_ADDRESS"); - TaskManager.ItemId = itemId; + TaskManager.StartTask("EXCHANGE", "SET_PRIMARY_DISTR_LIST_ADDRESS", itemId); try { @@ -3839,8 +3789,7 @@ namespace WebsitePanel.EnterpriseServer if (accountCheck < 0) return accountCheck; // place log record - TaskManager.StartTask("EXCHANGE", "DELETE_DISTR_LIST_ADDRESSES"); - TaskManager.ItemId = itemId; + TaskManager.StartTask("EXCHANGE", "DELETE_DISTR_LIST_ADDRESSES", itemId); try { @@ -4020,8 +3969,7 @@ namespace WebsitePanel.EnterpriseServer return BusinessErrorCodes.ERROR_EXCHANGE_PFOLDERS_QUOTA_LIMIT; // place log record - TaskManager.StartTask("EXCHANGE", "CREATE_PUBLIC_FOLDER"); - TaskManager.ItemId = itemId; + TaskManager.StartTask("EXCHANGE", "CREATE_PUBLIC_FOLDER", itemId); try { @@ -4128,8 +4076,7 @@ namespace WebsitePanel.EnterpriseServer if (accountCheck < 0) return accountCheck; // place log record - TaskManager.StartTask("EXCHANGE", "DELETE_PUBLIC_FOLDER"); - TaskManager.ItemId = itemId; + TaskManager.StartTask("EXCHANGE", "DELETE_PUBLIC_FOLDER", itemId); try { @@ -4178,8 +4125,7 @@ namespace WebsitePanel.EnterpriseServer if (accountCheck < 0) return accountCheck; // place log record - TaskManager.StartTask("EXCHANGE", "ENABLE_MAIL_PUBLIC_FOLDER"); - TaskManager.ItemId = itemId; + TaskManager.StartTask("EXCHANGE", "ENABLE_MAIL_PUBLIC_FOLDER", itemId); try { @@ -4245,8 +4191,7 @@ namespace WebsitePanel.EnterpriseServer if (accountCheck < 0) return accountCheck; // place log record - TaskManager.StartTask("EXCHANGE", "DISABLE_MAIL_PUBLIC_FOLDER"); - TaskManager.ItemId = itemId; + TaskManager.StartTask("EXCHANGE", "DISABLE_MAIL_PUBLIC_FOLDER", itemId); try { @@ -4318,8 +4263,7 @@ namespace WebsitePanel.EnterpriseServer #endregion // place log record - TaskManager.StartTask("EXCHANGE", "GET_PUBLIC_FOLDER_GENERAL"); - TaskManager.ItemId = itemId; + TaskManager.StartTask("EXCHANGE", "GET_PUBLIC_FOLDER_GENERAL", itemId); try { @@ -4357,8 +4301,7 @@ namespace WebsitePanel.EnterpriseServer if (accountCheck < 0) return accountCheck; // place log record - TaskManager.StartTask("EXCHANGE", "UPDATE_PUBLIC_FOLDER_GENERAL"); - TaskManager.ItemId = itemId; + TaskManager.StartTask("EXCHANGE", "UPDATE_PUBLIC_FOLDER_GENERAL", itemId); try { @@ -4431,8 +4374,7 @@ namespace WebsitePanel.EnterpriseServer #endregion // place log record - TaskManager.StartTask("EXCHANGE", "GET_PUBLIC_FOLDER_MAILFLOW"); - TaskManager.ItemId = itemId; + TaskManager.StartTask("EXCHANGE", "GET_PUBLIC_FOLDER_MAILFLOW", itemId); try { @@ -4470,8 +4412,7 @@ namespace WebsitePanel.EnterpriseServer if (accountCheck < 0) return accountCheck; // place log record - TaskManager.StartTask("EXCHANGE", "UPDATE_PUBLIC_FOLDER_MAILFLOW"); - TaskManager.ItemId = itemId; + TaskManager.StartTask("EXCHANGE", "UPDATE_PUBLIC_FOLDER_MAILFLOW", itemId); try { @@ -4511,8 +4452,7 @@ namespace WebsitePanel.EnterpriseServer public static ExchangeEmailAddress[] GetPublicFolderEmailAddresses(int itemId, int accountId) { // place log record - TaskManager.StartTask("EXCHANGE", "GET_PUBLIC_FOLDER_ADDRESSES"); - TaskManager.ItemId = itemId; + TaskManager.StartTask("EXCHANGE", "GET_PUBLIC_FOLDER_ADDRESSES", itemId); try { @@ -4535,8 +4475,7 @@ namespace WebsitePanel.EnterpriseServer if (accountCheck < 0) return accountCheck; // place log record - TaskManager.StartTask("EXCHANGE", "ADD_PUBLIC_FOLDER_ADDRESS"); - TaskManager.ItemId = itemId; + TaskManager.StartTask("EXCHANGE", "ADD_PUBLIC_FOLDER_ADDRESS", itemId); try { @@ -4587,8 +4526,7 @@ namespace WebsitePanel.EnterpriseServer if (accountCheck < 0) return accountCheck; // place log record - TaskManager.StartTask("EXCHANGE", "SET_PRIMARY_PUBLIC_FOLDER_ADDRESS"); - TaskManager.ItemId = itemId; + TaskManager.StartTask("EXCHANGE", "SET_PRIMARY_PUBLIC_FOLDER_ADDRESS", itemId); try { @@ -4636,8 +4574,7 @@ namespace WebsitePanel.EnterpriseServer if (accountCheck < 0) return accountCheck; // place log record - TaskManager.StartTask("EXCHANGE", "DELETE_PUBLIC_FOLDER_ADDRESSES"); - TaskManager.ItemId = itemId; + TaskManager.StartTask("EXCHANGE", "DELETE_PUBLIC_FOLDER_ADDRESSES", itemId); try { @@ -4817,8 +4754,7 @@ namespace WebsitePanel.EnterpriseServer public static ExchangeMobileDevice[] GetMobileDevices(int itemId, int accountId) { // place log record - TaskManager.StartTask("EXCHANGE", "GET_MOBILE_DEVICES"); - TaskManager.ItemId = itemId; + TaskManager.StartTask("EXCHANGE", "GET_MOBILE_DEVICES", itemId); try { @@ -4848,8 +4784,7 @@ namespace WebsitePanel.EnterpriseServer public static ExchangeMobileDevice GetMobileDevice(int itemId, string deviceId) { // place log record - TaskManager.StartTask("EXCHANGE", "GET_MOBILE_DEVICE"); - TaskManager.ItemId = itemId; + TaskManager.StartTask("EXCHANGE", "GET_MOBILE_DEVICE", itemId); try { @@ -4876,8 +4811,7 @@ namespace WebsitePanel.EnterpriseServer public static void WipeDataFromDevice(int itemId, string deviceId) { // place log record - TaskManager.StartTask("EXCHANGE", "WIPE_DATA_FROM_DEVICE"); - TaskManager.ItemId = itemId; + TaskManager.StartTask("EXCHANGE", "WIPE_DATA_FROM_DEVICE", itemId); try { @@ -4904,8 +4838,7 @@ namespace WebsitePanel.EnterpriseServer public static void CancelRemoteWipeRequest(int itemId, string deviceId) { // place log record - TaskManager.StartTask("EXCHANGE", "CANCEL_REMOTE_WIPE_REQUEST"); - TaskManager.ItemId = itemId; + TaskManager.StartTask("EXCHANGE", "CANCEL_REMOTE_WIPE_REQUEST", itemId); try { @@ -4932,8 +4865,7 @@ namespace WebsitePanel.EnterpriseServer public static void RemoveDevice(int itemId, string deviceId) { // place log record - TaskManager.StartTask("EXCHANGE", "REMOVE_DEVICE"); - TaskManager.ItemId = itemId; + TaskManager.StartTask("EXCHANGE", "REMOVE_DEVICE", itemId); try { diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Files/FilesController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Files/FilesController.cs index e9dc8e48..74dd8d78 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Files/FilesController.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Files/FilesController.cs @@ -169,8 +169,7 @@ namespace WebsitePanel.EnterpriseServer if (packageCheck < 0) return packageCheck; // place log record - TaskManager.StartTask("FILES", "UPDATE_BINARY_CONTENT", path); - TaskManager.ItemId = packageId; + TaskManager.StartTask("FILES", "UPDATE_BINARY_CONTENT", path, packageId); try { @@ -204,8 +203,7 @@ namespace WebsitePanel.EnterpriseServer if (packageCheck < 0) return packageCheck; // place log record - TaskManager.StartTask("FILES", "UPDATE_BINARY_CONTENT", path); - TaskManager.ItemId = packageId; + TaskManager.StartTask("FILES", "UPDATE_BINARY_CONTENT", path, packageId); try { @@ -260,8 +258,8 @@ namespace WebsitePanel.EnterpriseServer if (accountCheck < 0) return accountCheck; // place log record - TaskManager.StartTask("FILES", "DELETE_FILES"); - TaskManager.ItemId = packageId; + TaskManager.StartTask("FILES", "DELETE_FILES", packageId); + if (files != null) { foreach (string file in files) @@ -302,8 +300,7 @@ namespace WebsitePanel.EnterpriseServer if (packageCheck < 0) return packageCheck; // place log record - TaskManager.StartTask("FILES", "CREATE_FILE", path); - TaskManager.ItemId = packageId; + TaskManager.StartTask("FILES", "CREATE_FILE", path, packageId); try { @@ -356,8 +353,7 @@ namespace WebsitePanel.EnterpriseServer if (packageCheck < 0) return packageCheck; // place log record - TaskManager.StartTask("FILES", "CREATE_FOLDER", path); - TaskManager.ItemId = packageId; + TaskManager.StartTask("FILES", "CREATE_FOLDER", path, packageId); try { @@ -396,8 +392,7 @@ namespace WebsitePanel.EnterpriseServer if (!DirectoryExists(packageId, destFolder)) return BusinessErrorCodes.ERROR_FILE_DEST_FOLDER_NONEXISTENT; // place log record - TaskManager.StartTask("FILES", "COPY_FILES"); - TaskManager.ItemId = packageId; + TaskManager.StartTask("FILES", "COPY_FILES", packageId); TaskManager.WriteParameter("Destination folder", destFolder); if (files != null) { @@ -455,8 +450,8 @@ namespace WebsitePanel.EnterpriseServer if (!DirectoryExists(packageId, destFolder)) return BusinessErrorCodes.ERROR_FILE_DEST_FOLDER_NONEXISTENT; // place log record - TaskManager.StartTask("FILES", "MOVE_FILES"); - TaskManager.ItemId = packageId; + TaskManager.StartTask("FILES", "MOVE_FILES", packageId); + TaskManager.WriteParameter("Destination folder", destFolder); if (files != null) { @@ -514,8 +509,8 @@ namespace WebsitePanel.EnterpriseServer if (accountCheck < 0) return accountCheck; // place log record - TaskManager.StartTask("FILES", "RENAME_FILE", oldPath); - TaskManager.ItemId = packageId; + TaskManager.StartTask("FILES", "RENAME_FILE", oldPath, packageId); + TaskManager.WriteParameter("New name", newPath); try @@ -551,8 +546,8 @@ namespace WebsitePanel.EnterpriseServer if (packageCheck < 0) return null; // place log record - TaskManager.StartTask("FILES", "UNZIP_FILES"); - TaskManager.ItemId = packageId; + TaskManager.StartTask("FILES", "UNZIP_FILES", packageId); + if (files != null) { foreach (string file in files) @@ -596,8 +591,8 @@ namespace WebsitePanel.EnterpriseServer if (packageCheck < 0) return packageCheck; // place log record - TaskManager.StartTask("FILES", "ZIP_FILES", archivePath); - TaskManager.ItemId = packageId; + TaskManager.StartTask("FILES", "ZIP_FILES", archivePath, packageId); + if (files != null) { foreach (string file in files) @@ -647,8 +642,8 @@ namespace WebsitePanel.EnterpriseServer if (packageCheck < 0) return packageCheck; // place log record - TaskManager.StartTask("FILES", "ZIP_FILES", archivePath); - TaskManager.ItemId = packageId; + TaskManager.StartTask("FILES", "ZIP_FILES", archivePath, packageId); + if (files != null) { foreach (string file in files) @@ -706,8 +701,7 @@ namespace WebsitePanel.EnterpriseServer if (packageCheck < 0) return packageCheck; // place log record - TaskManager.StartTask("FILES", "CREATE_ACCESS_DATABASE", dbPath); - TaskManager.ItemId = packageId; + TaskManager.StartTask("FILES", "CREATE_ACCESS_DATABASE", dbPath, packageId); try { @@ -737,8 +731,7 @@ namespace WebsitePanel.EnterpriseServer if (accountCheck < 0) return accountCheck; // place log record - TaskManager.StartTask("SPACE", "CALCULATE_DISKSPACE"); - TaskManager.ItemId = packageId; + TaskManager.StartTask("SPACE", "CALCULATE_DISKSPACE", packageId); try { @@ -813,8 +806,7 @@ namespace WebsitePanel.EnterpriseServer if (accountCheck < 0) return accountCheck; // place log record - TaskManager.StartTask("FILES", "SET_PERMISSIONS", path); - TaskManager.ItemId = packageId; + TaskManager.StartTask("FILES", "SET_PERMISSIONS", path, packageId); try { @@ -925,8 +917,7 @@ namespace WebsitePanel.EnterpriseServer if (packageCheck < 0) return packageCheck; // place log record - TaskManager.StartTask("FILES", "SET_QUOTA_ON_FOLDER", path); - TaskManager.ItemId = packageId; + TaskManager.StartTask("FILES", "SET_QUOTA_ON_FOLDER", path, packageId); try { @@ -1046,8 +1037,7 @@ namespace WebsitePanel.EnterpriseServer if (packageCheck < 0) return packageCheck; // place log record - TaskManager.StartTask("FILES", "DELETE_DIRECTORY_RECURSIVE", rootPath); - TaskManager.ItemId = packageId; + TaskManager.StartTask("FILES", "DELETE_DIRECTORY_RECURSIVE", rootPath, packageId); try { diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/FtpServers/FtpServerController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/FtpServers/FtpServerController.cs index 4c174bf0..25541268 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/FtpServers/FtpServerController.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/FtpServers/FtpServerController.cs @@ -215,8 +215,8 @@ namespace WebsitePanel.EnterpriseServer if (packageCheck < 0) return packageCheck; // place log record - TaskManager.StartTask("FTP_ACCOUNT", "UPDATE", origItem.Name); - TaskManager.ItemId = item.Id; + TaskManager.StartTask("FTP_ACCOUNT", "UPDATE", origItem.Name, item.Id); + TaskManager.WriteParameter("Folder", item.Folder); TaskManager.WriteParameter("CanRead", item.CanRead); TaskManager.WriteParameter("CanWrite", item.CanWrite); @@ -279,8 +279,7 @@ namespace WebsitePanel.EnterpriseServer return BusinessErrorCodes.ERROR_FTP_PACKAGE_ITEM_NOT_FOUND; // place log record - TaskManager.StartTask("FTP_ACCOUNT", "DELETE", origItem.Name); - TaskManager.ItemId = itemId; + TaskManager.StartTask("FTP_ACCOUNT", "DELETE", origItem.Name, itemId); try { diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/HostedSolution/LyncController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/HostedSolution/LyncController.cs index a72d5b59..71895df1 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/HostedSolution/LyncController.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/HostedSolution/LyncController.cs @@ -419,8 +419,7 @@ namespace WebsitePanel.EnterpriseServer.Code.HostedSolution if (accountCheck < 0) return accountCheck; // place log record - TaskManager.StartTask("LYNC", "DELETE_ORG"); - TaskManager.ItemId = itemId; + TaskManager.StartTask("LYNC", "DELETE_ORG", itemId); try { @@ -622,8 +621,7 @@ namespace WebsitePanel.EnterpriseServer.Code.HostedSolution public static List GetLyncUserPlans(int itemId) { // place log record - TaskManager.StartTask("LYNC", "GET_LYNC_LYNCUSERPLANS"); - TaskManager.ItemId = itemId; + TaskManager.StartTask("LYNC", "GET_LYNC_LYNCUSERPLANS", itemId); try { @@ -705,8 +703,7 @@ namespace WebsitePanel.EnterpriseServer.Code.HostedSolution { // place log record - TaskManager.StartTask("LYNC", "GET_LYNC_LYNCUSERPLAN"); - TaskManager.ItemId = lyncUserPlanId; + TaskManager.StartTask("LYNC", "GET_LYNC_LYNCUSERPLAN", lyncUserPlanId); try { @@ -729,8 +726,7 @@ namespace WebsitePanel.EnterpriseServer.Code.HostedSolution if (accountCheck < 0) return accountCheck; // place log record - TaskManager.StartTask("LYNC", "ADD_LYNC_LYNCUSERPLAN"); - TaskManager.ItemId = itemID; + TaskManager.StartTask("LYNC", "ADD_LYNC_LYNCUSERPLAN", itemID); try { @@ -770,8 +766,7 @@ namespace WebsitePanel.EnterpriseServer.Code.HostedSolution if (accountCheck < 0) return accountCheck; // place log record - TaskManager.StartTask("LYNC", "ADD_LYNC_LYNCUSERPLAN"); - TaskManager.ItemId = itemID; + TaskManager.StartTask("LYNC", "ADD_LYNC_LYNCUSERPLAN", itemID); try { @@ -809,8 +804,7 @@ namespace WebsitePanel.EnterpriseServer.Code.HostedSolution int accountCheck = SecurityContext.CheckAccount(DemandAccount.NotDemo | DemandAccount.IsActive); if (accountCheck < 0) return accountCheck; - TaskManager.StartTask("LYNC", "DELETE_LYNC_LYNCPLAN"); - TaskManager.ItemId = itemID; + TaskManager.StartTask("LYNC", "DELETE_LYNC_LYNCPLAN", itemID); try { @@ -834,8 +828,7 @@ namespace WebsitePanel.EnterpriseServer.Code.HostedSolution int accountCheck = SecurityContext.CheckAccount(DemandAccount.NotDemo | DemandAccount.IsActive); if (accountCheck < 0) return accountCheck; - TaskManager.StartTask("LYNC", "SET_LYNC_LYNCUSERPLAN"); - TaskManager.ItemId = itemId; + TaskManager.StartTask("LYNC", "SET_LYNC_LYNCUSERPLAN", itemId); try { @@ -861,8 +854,7 @@ namespace WebsitePanel.EnterpriseServer.Code.HostedSolution public static LyncFederationDomain[] GetFederationDomains(int itemId) { // place log record - TaskManager.StartTask("LYNC", "GET_LYNC_FEDERATIONDOMAINS"); - TaskManager.ItemId = itemId; + TaskManager.StartTask("LYNC", "GET_LYNC_FEDERATIONDOMAINS", itemId); LyncFederationDomain[] lyncFederationDomains = null; @@ -889,10 +881,11 @@ namespace WebsitePanel.EnterpriseServer.Code.HostedSolution public static LyncUserResult AddFederationDomain(int itemId, string domainName, string proxyFqdn) { - LyncUserResult res = TaskManager.StartResultTask("LYNC", "ADD_LYNC_FEDERATIONDOMAIN"); - TaskManager.ItemId = itemId; - TaskManager.TaskParameters["domainName"] = domainName; - TaskManager.TaskParameters["proxyFqdn"] = proxyFqdn; + IList parameters = new List(); + parameters.Add(new BackgroundTaskParameter("domainName", domainName)); + parameters.Add(new BackgroundTaskParameter("proxyFqdn", proxyFqdn)); + + LyncUserResult res = TaskManager.StartResultTask("LYNC", "ADD_LYNC_FEDERATIONDOMAIN", itemId, parameters); int accountCheck = SecurityContext.CheckAccount(DemandAccount.NotDemo | DemandAccount.IsActive); @@ -966,9 +959,7 @@ namespace WebsitePanel.EnterpriseServer.Code.HostedSolution public static LyncUserResult RemoveFederationDomain(int itemId, string domainName) { - LyncUserResult res = TaskManager.StartResultTask("LYNC", "REMOVE_LYNC_FEDERATIONDOMAIN"); - TaskManager.ItemId = itemId; - TaskManager.TaskParameters["domainName"] = domainName; + LyncUserResult res = TaskManager.StartResultTask("LYNC", "REMOVE_LYNC_FEDERATIONDOMAIN", itemId, new BackgroundTaskParameter("domainName", domainName)); int accountCheck = SecurityContext.CheckAccount(DemandAccount.NotDemo | DemandAccount.IsActive); diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/HostedSolution/OrganizationController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/HostedSolution/OrganizationController.cs index e8eb4767..b5755625 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/HostedSolution/OrganizationController.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/HostedSolution/OrganizationController.cs @@ -291,9 +291,11 @@ namespace WebsitePanel.EnterpriseServer return errorCode; // place log record - TaskManager.StartTask("ORGANIZATION", "CREATE_ORG", organizationName); - TaskManager.TaskParameters["Organization ID"] = organizationId; - TaskManager.TaskParameters["DomainName"] = domainName; + IList parameters = new List(); + parameters.Add(new BackgroundTaskParameter("Organization ID", organizationId)); + parameters.Add(new BackgroundTaskParameter("DomainName", domainName)); + + TaskManager.StartTask("ORGANIZATION", "CREATE_ORG", organizationName, parameters); try { @@ -411,9 +413,7 @@ namespace WebsitePanel.EnterpriseServer if (accountCheck < 0) return accountCheck; // place log record - TaskManager.StartTask("ORGANIZATION", "DELETE_DOMAIN"); - TaskManager.TaskParameters["Domain ID"] = domainId; - TaskManager.ItemId = itemId; + TaskManager.StartTask("ORGANIZATION", "DELETE_DOMAIN", itemId, new BackgroundTaskParameter("Domain ID", domainId)); try { @@ -586,8 +586,7 @@ namespace WebsitePanel.EnterpriseServer if (accountCheck < 0) return accountCheck; // place log record - TaskManager.StartTask("ORGANIZATION", "DELETE_ORG"); - TaskManager.ItemId = itemId; + TaskManager.StartTask("ORGANIZATION", "DELETE_ORG", itemId); try { @@ -869,8 +868,7 @@ namespace WebsitePanel.EnterpriseServer #endregion // place log record - TaskManager.StartTask("ORGANIZATION", "GET_ORG_STATS"); - TaskManager.ItemId = itemId; + TaskManager.StartTask("ORGANIZATION", "GET_ORG_STATS", itemId); try { @@ -1022,8 +1020,7 @@ namespace WebsitePanel.EnterpriseServer if (accountCheck < 0) return accountCheck; // place log record - TaskManager.StartTask("ORGANIZATION", "CHANGE_DOMAIN_TYPE", domainId); - TaskManager.ItemId = itemId; + TaskManager.StartTask("ORGANIZATION", "CHANGE_DOMAIN_TYPE", domainId, itemId); try { @@ -1060,8 +1057,7 @@ namespace WebsitePanel.EnterpriseServer return BusinessErrorCodes.ERROR_EXCHANGE_DOMAINS_QUOTA_LIMIT; // place log record - TaskManager.StartTask("ORGANIZATION", "ADD_DOMAIN", domainName); - TaskManager.ItemId = itemId; + TaskManager.StartTask("ORGANIZATION", "ADD_DOMAIN", domainName, itemId); try { @@ -1291,8 +1287,8 @@ namespace WebsitePanel.EnterpriseServer // place log record - TaskManager.StartTask("ORGANIZATION", "CREATE_USER"); - TaskManager.ItemId = itemId; + TaskManager.StartTask("ORGANIZATION", "CREATE_USER", itemId); + TaskManager.Write("Organization ID :" + itemId); TaskManager.Write("name :" + name); TaskManager.Write("domain :" + domain); @@ -1414,8 +1410,8 @@ namespace WebsitePanel.EnterpriseServer // place log record - TaskManager.StartTask("ORGANIZATION", "IMPORT_USER"); - TaskManager.ItemId = itemId; + TaskManager.StartTask("ORGANIZATION", "IMPORT_USER", itemId); + TaskManager.Write("Organization ID :" + itemId); TaskManager.Write("account :" + accountName); TaskManager.Write("name :" + name); @@ -1572,8 +1568,7 @@ namespace WebsitePanel.EnterpriseServer if (accountCheck < 0) return accountCheck; // place log record - TaskManager.StartTask("ORGANIZATION", "DELETE_USER"); - TaskManager.ItemId = itemId; + TaskManager.StartTask("ORGANIZATION", "DELETE_USER", itemId); try { @@ -1676,8 +1671,7 @@ namespace WebsitePanel.EnterpriseServer #endregion // place log record - TaskManager.StartTask("ORGANIZATION", "GET_USER_GENERAL"); - TaskManager.ItemId = itemId; + TaskManager.StartTask("ORGANIZATION", "GET_USER_GENERAL", itemId); OrganizationUser account = null; Organization org = null; @@ -1740,8 +1734,7 @@ namespace WebsitePanel.EnterpriseServer if (accountCheck < 0) return accountCheck; // place log record - TaskManager.StartTask("ORGANIZATION", "UPDATE_USER_GENERAL"); - TaskManager.ItemId = itemId; + TaskManager.StartTask("ORGANIZATION", "UPDATE_USER_GENERAL", itemId); try { @@ -1832,8 +1825,7 @@ namespace WebsitePanel.EnterpriseServer // place log record - TaskManager.StartTask("ORGANIZATION", "SET_USER_USERPRINCIPALNAME"); - TaskManager.ItemId = itemId; + TaskManager.StartTask("ORGANIZATION", "SET_USER_USERPRINCIPALNAME", itemId); try { @@ -1931,8 +1923,7 @@ namespace WebsitePanel.EnterpriseServer if (accountCheck < 0) return accountCheck; // place log record - TaskManager.StartTask("ORGANIZATION", "SET_USER_PASSWORD"); - TaskManager.ItemId = itemId; + TaskManager.StartTask("ORGANIZATION", "SET_USER_PASSWORD", itemId); try { @@ -2048,8 +2039,7 @@ namespace WebsitePanel.EnterpriseServer public static int GetAccountIdByUserPrincipalName(int itemId, string userPrincipalName) { // place log record - TaskManager.StartTask("ORGANIZATION", "GET_ACCOUNT_BYUPN"); - TaskManager.ItemId = itemId; + TaskManager.StartTask("ORGANIZATION", "GET_ACCOUNT_BYUPN", itemId); int accounId = -1; diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/MailServers/MailServerController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/MailServers/MailServerController.cs index a911b077..e0ca1a40 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/MailServers/MailServerController.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/MailServers/MailServerController.cs @@ -191,8 +191,7 @@ namespace WebsitePanel.EnterpriseServer return BusinessErrorCodes.ERROR_MAIL_ACCOUNT_MAX_MAILBOX_SIZE_LIMIT; // place log record - TaskManager.StartTask("MAIL_ACCOUNT", "UPDATE", origItem.Name); - TaskManager.ItemId = item.Id; + TaskManager.StartTask("MAIL_ACCOUNT", "UPDATE", origItem.Name, item.Id); try { @@ -245,8 +244,7 @@ namespace WebsitePanel.EnterpriseServer return BusinessErrorCodes.ERROR_MAIL_ACCOUNTS_PACKAGE_ITEM_NOT_FOUND; // place log record - TaskManager.StartTask("MAIL_ACCOUNT", "DELETE", origItem.Name); - TaskManager.ItemId = itemId; + TaskManager.StartTask("MAIL_ACCOUNT", "DELETE", origItem.Name, itemId); try { @@ -402,7 +400,7 @@ namespace WebsitePanel.EnterpriseServer item.ServiceId = serviceId; int itemId = PackageController.AddPackageItem(item); - TaskManager.ItemId = itemId; + TaskManager.ItemId = itemId; return itemId; } @@ -432,8 +430,7 @@ namespace WebsitePanel.EnterpriseServer if (packageCheck < 0) return packageCheck; // place log record - TaskManager.StartTask("MAIL_FORWARDING", "UPDATE", origItem.Name); - TaskManager.ItemId = item.Id; + TaskManager.StartTask("MAIL_FORWARDING", "UPDATE", origItem.Name, item.Id); try { @@ -477,8 +474,7 @@ namespace WebsitePanel.EnterpriseServer return BusinessErrorCodes.ERROR_MAIL_FORWARDINGS_PACKAGE_ITEM_NOT_FOUND; // place log record - TaskManager.StartTask("MAIL_FORWARDING", "DELETE", origItem.Name); - TaskManager.ItemId = itemId; + TaskManager.StartTask("MAIL_FORWARDING", "DELETE", origItem.Name, itemId); try { @@ -638,8 +634,7 @@ namespace WebsitePanel.EnterpriseServer return BusinessErrorCodes.ERROR_MAIL_GROUPS_RECIPIENTS_LIMIT; // place log record - TaskManager.StartTask("MAIL_GROUP", "UPDATE", origItem.Name); - TaskManager.ItemId = item.Id; + TaskManager.StartTask("MAIL_GROUP", "UPDATE", origItem.Name, item.Id); try { @@ -679,8 +674,7 @@ namespace WebsitePanel.EnterpriseServer return BusinessErrorCodes.ERROR_MAIL_GROUPS_PACKAGE_ITEM_NOT_FOUND; // place log record - TaskManager.StartTask("MAIL_GROUP", "DELETE", origItem.Name); - TaskManager.ItemId = itemId; + TaskManager.StartTask("MAIL_GROUP", "DELETE", origItem.Name, itemId); try { @@ -889,8 +883,7 @@ namespace WebsitePanel.EnterpriseServer return BusinessErrorCodes.ERROR_MAIL_LISTS_RECIPIENTS_LIMIT; // place log record - TaskManager.StartTask("MAIL_LIST", "UPDATE", origItem.Name); - TaskManager.ItemId = item.Id; + TaskManager.StartTask("MAIL_LIST", "UPDATE", origItem.Name, item.Id); try { @@ -938,8 +931,7 @@ namespace WebsitePanel.EnterpriseServer return BusinessErrorCodes.ERROR_MAIL_LISTS_PACKAGE_ITEM_NOT_FOUND; // place log record - TaskManager.StartTask("MAIL_LIST", "DELETE", origItem.Name); - TaskManager.ItemId = itemId; + TaskManager.StartTask("MAIL_LIST", "DELETE", origItem.Name, itemId); try { @@ -1073,7 +1065,8 @@ namespace WebsitePanel.EnterpriseServer } TaskManager.ItemId = itemId; - return itemId; + + return itemId; } catch (Exception ex) { @@ -1101,8 +1094,7 @@ namespace WebsitePanel.EnterpriseServer if (packageCheck < 0) return packageCheck; // place log record - TaskManager.StartTask("MAIL_DOMAIN", "UPDATE", origItem.Name); - TaskManager.ItemId = item.Id; + TaskManager.StartTask("MAIL_DOMAIN", "UPDATE", origItem.Name, item.Id); // get service MailServer mail = new MailServer(); @@ -1148,8 +1140,7 @@ namespace WebsitePanel.EnterpriseServer return BusinessErrorCodes.ERROR_MAIL_DOMAIN_IS_NOT_EMPTY; // mail domain is not empty // place log record - TaskManager.StartTask("MAIL_DOMAIN", "DELETE", origItem.Name); - TaskManager.ItemId = itemId; + TaskManager.StartTask("MAIL_DOMAIN", "DELETE", origItem.Name, itemId); try { @@ -1222,10 +1213,9 @@ namespace WebsitePanel.EnterpriseServer return BusinessErrorCodes.ERROR_DOMAIN_PACKAGE_ITEM_NOT_FOUND; // place log record - TaskManager.StartTask("MAIL_DOMAIN", "ADD_POINTER", mailDomain.Name); - TaskManager.ItemId = itemId; - TaskManager.TaskParameters["Domain ID"] = domain.DomainId; - TaskManager.WriteParameter("Domain pointer", domain.DomainName); + TaskManager.StartTask("MAIL_DOMAIN", "ADD_POINTER", mailDomain.Name, itemId, new BackgroundTaskParameter("Domain ID", domain.DomainId)); + + TaskManager.WriteParameter("Domain pointer", domain.DomainName); try { @@ -1277,10 +1267,12 @@ namespace WebsitePanel.EnterpriseServer return BusinessErrorCodes.ERROR_DOMAIN_PACKAGE_ITEM_NOT_FOUND; // place log record - TaskManager.StartTask("MAIL_DOMAIN", "DELETE_POINTER", mailDomain.Name); - TaskManager.ItemId = itemId; - TaskManager.TaskParameters["Domain ID"] = domain.DomainId; - TaskManager.WriteParameter("Domain pointer", domain.DomainName); + + IList parameters = new List(); + parameters.Add(new BackgroundTaskParameter("Domain ID", domain.DomainId)); + parameters.Add(new BackgroundTaskParameter("Domain pointer", domain.DomainName)); + + TaskManager.StartTask("MAIL_DOMAIN", "DELETE_POINTER", mailDomain.Name, itemId, parameters); try { diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/OperatingSystems/OperatingSystemController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/OperatingSystems/OperatingSystemController.cs index 238ec360..10a79b04 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/OperatingSystems/OperatingSystemController.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/OperatingSystems/OperatingSystemController.cs @@ -191,8 +191,7 @@ namespace WebsitePanel.EnterpriseServer if (packageCheck < 0) return packageCheck; // place log record - TaskManager.StartTask("ODBC_DSN", "UPDATE", origItem.Name); - TaskManager.ItemId = item.Id; + TaskManager.StartTask("ODBC_DSN", "UPDATE", origItem.Name, item.Id); try { @@ -265,8 +264,7 @@ namespace WebsitePanel.EnterpriseServer return BusinessErrorCodes.ERROR_OS_DSN_PACKAGE_ITEM_NOT_FOUND; // place log record - TaskManager.StartTask("ODBC_DSN", "DELETE", origItem.Name); - TaskManager.ItemId = itemId; + TaskManager.StartTask("ODBC_DSN", "DELETE", origItem.Name, itemId); try { @@ -316,8 +314,7 @@ namespace WebsitePanel.EnterpriseServer ServerInfo server = ServerController.GetServerById(serverId); // place log record - TaskManager.StartTask("SERVER", "RESET_TERMINAL_SESSION", sessionId); - TaskManager.ItemId = serverId; + TaskManager.StartTask("SERVER", "RESET_TERMINAL_SESSION", sessionId, serverId); try { @@ -352,8 +349,7 @@ namespace WebsitePanel.EnterpriseServer ServerInfo server = ServerController.GetServerById(serverId); // place log record - TaskManager.StartTask("SERVER", "TERMINATE_SYSTEM_PROCESS", pid); - TaskManager.ItemId = serverId; + TaskManager.StartTask("SERVER", "TERMINATE_SYSTEM_PROCESS", pid, serverId); try { @@ -388,8 +384,7 @@ namespace WebsitePanel.EnterpriseServer ServerInfo server = ServerController.GetServerById(serverId); // place log record - TaskManager.StartTask("SERVER", "CHANGE_WINDOWS_SERVICE_STATUS", id); - TaskManager.ItemId = serverId; + TaskManager.StartTask("SERVER", "CHANGE_WINDOWS_SERVICE_STATUS", id, serverId); TaskManager.WriteParameter("New Status", status); try @@ -555,8 +550,7 @@ namespace WebsitePanel.EnterpriseServer | DemandAccount.IsActive); if (accountCheck < 0) return accountCheck; - TaskManager.StartTask("SERVER", "CLEAR_EVENT_LOG", logName); - TaskManager.ItemId = serverId; + TaskManager.StartTask("SERVER", "CLEAR_EVENT_LOG", logName, serverId); try { @@ -587,8 +581,7 @@ namespace WebsitePanel.EnterpriseServer ServerInfo server = ServerController.GetServerById(serverId); // place log record - TaskManager.StartTask("SERVER", "REBOOT"); - TaskManager.ItemId = serverId; + TaskManager.StartTask("SERVER", "REBOOT", serverId); try { diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Packages/PackageController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Packages/PackageController.cs index 3363a13f..9ebfda7d 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Packages/PackageController.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Packages/PackageController.cs @@ -617,8 +617,12 @@ namespace WebsitePanel.EnterpriseServer } } - TaskManager.ItemId = result.Result; - TaskManager.TaskParameters["SendLetter"] = sendLetter; + BackgroundTask topTask = TaskController.GetTopTask(); + + topTask.ItemId = userId; + topTask.UpdateParamValue("SendLetter", sendLetter); + + TaskController.UpdateTask(topTask); return result; } @@ -718,10 +722,14 @@ namespace WebsitePanel.EnterpriseServer if (homeId < 0) result.Result = homeId; - TaskManager.ItemId = result.Result; - TaskManager.TaskParameters["Signup"] = signup; - TaskManager.TaskParameters["UserId"] = userId; - TaskManager.TaskParameters["SendLetter"] = sendLetter; + BackgroundTask topTask = TaskController.GetTopTask(); + + topTask.ItemId = userId; + topTask.UpdateParamValue("Signup", signup); + topTask.UpdateParamValue("UserId", userId); + topTask.UpdateParamValue("SendLetter", sendLetter); + + TaskController.UpdateTask(topTask); } finally { diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Provisioning/BackupController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Provisioning/BackupController.cs index a580954a..f11491af 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Provisioning/BackupController.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Provisioning/BackupController.cs @@ -116,8 +116,7 @@ namespace WebsitePanel.EnterpriseServer { try { - TaskManager.StartTask(taskId, "BACKUP", "BACKUP", backupFileName); - TaskManager.ItemId = SecurityContext.User.UserId; + TaskManager.StartTask(taskId, "BACKUP", "BACKUP", backupFileName, SecurityContext.User.UserId); // get the list of items to backup TaskManager.Write("Calculate items to backup"); @@ -343,7 +342,10 @@ namespace WebsitePanel.EnterpriseServer } } - TaskManager.IndicatorCurrent = TaskManager.IndicatorMaximum; + BackgroundTask topTask = TaskController.GetTopTask(); + topTask.IndicatorCurrent = topTask.IndicatorMaximum; + + TaskController.UpdateTask(topTask); } catch (Exception ex) { @@ -490,8 +492,7 @@ namespace WebsitePanel.EnterpriseServer string backupFileName = (storePackageId > 0) ? Path.GetFileName(storePackageBackupPath) : Path.GetFileName(storeServerBackupPath); - TaskManager.StartTask(taskId, "BACKUP", "RESTORE", backupFileName); - TaskManager.ItemId = SecurityContext.User.UserId; + TaskManager.StartTask(taskId, "BACKUP", "RESTORE", backupFileName, SecurityContext.User.UserId); // create temp folder string tempFolder = GetTempBackupFolder(); diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Provisioning/ImportController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Provisioning/ImportController.cs index fef786d4..aaa74100 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Provisioning/ImportController.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Provisioning/ImportController.cs @@ -171,8 +171,7 @@ namespace WebsitePanel.EnterpriseServer { PackageInfo package = PackageController.GetPackage(packageId); - TaskManager.StartTask(taskId, "IMPORT", "IMPORT", package.PackageName); - TaskManager.ItemId = packageId; + TaskManager.StartTask(taskId, "IMPORT", "IMPORT", package.PackageName, packageId); TaskManager.IndicatorMaximum = items.Length; TaskManager.IndicatorCurrent = 0; diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/BackupDatabaseTask.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/BackupDatabaseTask.cs index fd545c4e..f6cfa5b1 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/BackupDatabaseTask.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/BackupDatabaseTask.cs @@ -46,11 +46,13 @@ namespace WebsitePanel.EnterpriseServer // - BACKUP_NAME // - ZIP_BACKUP - string databaseGroup = (string)TaskManager.TaskParameters["DATABASE_GROUP"]; - string databaseName = (string)TaskManager.TaskParameters["DATABASE_NAME"]; - string backupFolder = (string)TaskManager.TaskParameters["BACKUP_FOLDER"]; - string backupName = (string)TaskManager.TaskParameters["BACKUP_NAME"]; - string strZipBackup = (string)TaskManager.TaskParameters["ZIP_BACKUP"]; + BackgroundTask topTask = TaskController.GetTopTask(); + + string databaseGroup = (string)topTask.GetParamValue("DATABASE_GROUP"); + string databaseName = (string)topTask.GetParamValue("DATABASE_NAME"); + string backupFolder = (string)topTask.GetParamValue("BACKUP_FOLDER"); + string backupName = (string)topTask.GetParamValue("BACKUP_NAME"); + string strZipBackup = (string)topTask.GetParamValue("ZIP_BACKUP"); // check input parameters if (String.IsNullOrEmpty(databaseName)) @@ -77,7 +79,7 @@ namespace WebsitePanel.EnterpriseServer } // try to find database - SqlDatabase item = (SqlDatabase)PackageController.GetPackageItemByName(TaskManager.PackageId, databaseGroup, + SqlDatabase item = (SqlDatabase)PackageController.GetPackageItemByName(topTask.PackageId, databaseGroup, databaseName, typeof(SqlDatabase)); if (item == null) diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/BackupTask.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/BackupTask.cs index 8d04180d..cabc75e6 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/BackupTask.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/BackupTask.cs @@ -53,13 +53,16 @@ namespace WebsitePanel.EnterpriseServer string storePackageFolder; string storeServerFolder; bool deleteTempBackup; + + BackgroundTask topTask = TaskController.GetTopTask(); + try { - backupFileName = (string)TaskManager.TaskParameters["BACKUP_FILE_NAME"]; - storePackageId = Convert.ToInt32(TaskManager.TaskParameters["STORE_PACKAGE_ID"]); - storePackageFolder = (string)TaskManager.TaskParameters["STORE_PACKAGE_FOLDER"]; - storeServerFolder = (string)TaskManager.TaskParameters["STORE_SERVER_FOLDER"]; - deleteTempBackup = Convert.ToBoolean(TaskManager.TaskParameters["DELETE_TEMP_BACKUP"]); + backupFileName = (string)topTask.GetParamValue("BACKUP_FILE_NAME"); + storePackageId = Convert.ToInt32(topTask.GetParamValue("STORE_PACKAGE_ID")); + storePackageFolder = (string)topTask.GetParamValue("STORE_PACKAGE_FOLDER"); + storeServerFolder = (string)topTask.GetParamValue("STORE_SERVER_FOLDER"); + deleteTempBackup = Convert.ToBoolean(topTask.GetParamValue("DELETE_TEMP_BACKUP")); } catch(Exception ex) { @@ -69,7 +72,7 @@ namespace WebsitePanel.EnterpriseServer try { - PackageInfo package = PackageController.GetPackage(TaskManager.PackageId); + PackageInfo package = PackageController.GetPackage(topTask.PackageId); // We do not take into account service id as long as scheduled tasks run against packages. BackupController.Backup(false, "BackupTask", package.UserId, package.PackageId, 0, 0, backupFileName, storePackageId, storePackageFolder, storeServerFolder, deleteTempBackup); diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/CalculateExchangeDiskspaceTask.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/CalculateExchangeDiskspaceTask.cs index 1a8909a9..fb49452f 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/CalculateExchangeDiskspaceTask.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/CalculateExchangeDiskspaceTask.cs @@ -45,8 +45,10 @@ namespace WebsitePanel.EnterpriseServer public void CalculateDiskspace() { + BackgroundTask topTask = TaskController.GetTopTask(); + // get all space organizations recursively - List items = ExchangeServerController.GetExchangeOrganizations(TaskManager.PackageId, true); + List items = ExchangeServerController.GetExchangeOrganizations(topTask.PackageId, true); foreach (Organization item in items) { diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/CalculatePackagesBandwidthTask.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/CalculatePackagesBandwidthTask.cs index ccb91d16..2cf26867 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/CalculatePackagesBandwidthTask.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/CalculatePackagesBandwidthTask.cs @@ -50,8 +50,10 @@ namespace WebsitePanel.EnterpriseServer public void CalculateBandwidth() { + BackgroundTask topTask = TaskController.GetTopTask(); + // get all owned packages - List packages = PackageController.GetPackagePackages(TaskManager.PackageId, true); + List packages = PackageController.GetPackagePackages(topTask.PackageId, true); TaskManager.Write("Packages to calculate: " + packages.Count.ToString()); foreach (PackageInfo package in packages) diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/CalculatePackagesDiskspaceTask.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/CalculatePackagesDiskspaceTask.cs index 7a744cf9..d3f15df8 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/CalculatePackagesDiskspaceTask.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/CalculatePackagesDiskspaceTask.cs @@ -51,8 +51,10 @@ namespace WebsitePanel.EnterpriseServer public void CalculateDiskspace() { + BackgroundTask topTask = TaskController.GetTopTask(); + // get all owned packages - List packages = PackageController.GetPackagePackages(TaskManager.PackageId, true); + List packages = PackageController.GetPackagePackages(topTask.PackageId, true); TaskManager.Write("Packages to calculate: " + packages.Count.ToString()); foreach (PackageInfo package in packages) diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/CheckWebSiteTask.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/CheckWebSiteTask.cs index c16812d9..438fbc41 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/CheckWebSiteTask.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/CheckWebSiteTask.cs @@ -57,17 +57,19 @@ namespace WebsitePanel.EnterpriseServer // - MAIL_SUBJECT // - MAIL_BODY - // get input parameters - string url = (string)TaskManager.TaskParameters["URL"]; - string username = (string)TaskManager.TaskParameters["USERNAME"]; - string password = (string)TaskManager.TaskParameters["PASSWORD"]; - string strResponseStatus = (string)TaskManager.TaskParameters["RESPONSE_STATUS"]; - string responseContains = (string)TaskManager.TaskParameters["RESPONSE_CONTAIN"]; - string responseNotContains = (string)TaskManager.TaskParameters["RESPONSE_DOESNT_CONTAIN"]; + BackgroundTask topTask = TaskController.GetTopTask(); - bool useResponseStatus = Convert.ToBoolean(TaskManager.TaskParameters["USE_RESPONSE_STATUS"]); - bool useResponseContains = Convert.ToBoolean(TaskManager.TaskParameters["USE_RESPONSE_CONTAIN"]); - bool useResponseDoesntContain = Convert.ToBoolean(TaskManager.TaskParameters["USE_RESPONSE_DOESNT_CONTAIN"]); + // get input parameters + string url = (string)topTask.GetParamValue("URL"); + string username = (string)topTask.GetParamValue("USERNAME"); + string password = (string)topTask.GetParamValue("PASSWORD"); + string strResponseStatus = (string)topTask.GetParamValue("RESPONSE_STATUS"); + string responseContains = (string)topTask.GetParamValue("RESPONSE_CONTAIN"); + string responseNotContains = (string)topTask.GetParamValue("RESPONSE_DOESNT_CONTAIN"); + + bool useResponseStatus = Convert.ToBoolean(topTask.GetParamValue("USE_RESPONSE_STATUS")); + bool useResponseContains = Convert.ToBoolean(topTask.GetParamValue("USE_RESPONSE_CONTAIN")); + bool useResponseDoesntContain = Convert.ToBoolean(topTask.GetParamValue("USE_RESPONSE_DOESNT_CONTAIN")); // check input parameters if (String.IsNullOrEmpty(url)) @@ -126,11 +128,13 @@ namespace WebsitePanel.EnterpriseServer private void SendMailMessage(string url, string message, string content) { + BackgroundTask topTask = TaskController.GetTopTask(); + // input parameters - string mailFrom = (string)TaskManager.TaskParameters["MAIL_FROM"]; - string mailTo = (string)TaskManager.TaskParameters["MAIL_TO"]; - string mailSubject = (string)TaskManager.TaskParameters["MAIL_SUBJECT"]; - string mailBody = (string)TaskManager.TaskParameters["MAIL_BODY"]; + string mailFrom = (string)topTask.GetParamValue("MAIL_FROM"); + string mailTo = (string)topTask.GetParamValue("MAIL_TO"); + string mailSubject = (string)topTask.GetParamValue("MAIL_SUBJECT"); + string mailBody = (string)topTask.GetParamValue("MAIL_BODY"); if (String.IsNullOrEmpty(mailTo)) { diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/FTPFilesTask.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/FTPFilesTask.cs index b069aa07..35ff4e85 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/FTPFilesTask.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/FTPFilesTask.cs @@ -46,12 +46,14 @@ namespace WebsitePanel.EnterpriseServer // - FTP_PASSWORD // - FTP_FOLDER + BackgroundTask topTask = TaskController.GetTopTask(); + // get input parameters - string filePath = (string)TaskManager.TaskParameters["FILE_PATH"]; - string ftpServer = (string)TaskManager.TaskParameters["FTP_SERVER"]; - string ftpUsername = (string)TaskManager.TaskParameters["FTP_USERNAME"]; - string ftpPassword = (string)TaskManager.TaskParameters["FTP_PASSWORD"]; - string ftpFolder = (string)TaskManager.TaskParameters["FTP_FOLDER"]; + string filePath = (string)topTask.GetParamValue("FILE_PATH"); + string ftpServer = (string)topTask.GetParamValue("FTP_SERVER"); + string ftpUsername = (string)topTask.GetParamValue("FTP_USERNAME"); + string ftpPassword = (string)topTask.GetParamValue("FTP_PASSWORD"); + string ftpFolder = (string)topTask.GetParamValue("FTP_FOLDER"); // check input parameters if (String.IsNullOrEmpty(filePath)) @@ -100,7 +102,7 @@ namespace WebsitePanel.EnterpriseServer // file to send writer.WriteLine("binary"); - writer.WriteLine("put " + FilesController.GetFullPackagePath(TaskManager.PackageId, filePath)); + writer.WriteLine("put " + FilesController.GetFullPackagePath(topTask.PackageId, filePath)); // bye writer.WriteLine("bye"); @@ -109,14 +111,14 @@ namespace WebsitePanel.EnterpriseServer // create temp file in user space string cmdPath = Utils.GetRandomString(10) + ".txt"; - string fullCmdPath = FilesController.GetFullPackagePath(TaskManager.PackageId, cmdPath); + string fullCmdPath = FilesController.GetFullPackagePath(topTask.PackageId, cmdPath); // upload batch - FilesController.UpdateFileBinaryContent(TaskManager.PackageId, cmdPath, Encoding.UTF8.GetBytes(cmdBatch)); + FilesController.UpdateFileBinaryContent(topTask.PackageId, cmdPath, Encoding.UTF8.GetBytes(cmdBatch)); // execute system command // load OS service - int serviceId = PackageController.GetPackageServiceId(TaskManager.PackageId, ResourceGroups.Os); + int serviceId = PackageController.GetPackageServiceId(topTask.PackageId, ResourceGroups.Os); // load service ServiceInfo service = ServerController.GetServiceInfo(serviceId); @@ -128,7 +130,7 @@ namespace WebsitePanel.EnterpriseServer TaskManager.Write(winServer.ExecuteSystemCommand("ftp.exe", "-s:" + fullCmdPath)); // delete batch file - FilesController.DeleteFiles(TaskManager.PackageId, new string[] { cmdPath }); + FilesController.DeleteFiles(topTask.PackageId, new string[] { cmdPath }); } } } diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/HostedSolutionReport.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/HostedSolutionReport.cs index b82436df..68dea40f 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/HostedSolutionReport.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/HostedSolutionReport.cs @@ -51,16 +51,18 @@ namespace WebsitePanel.EnterpriseServer { try { - bool isExchange = Utils.ParseBool(TaskManager.TaskParameters[EXCHANGE_REPORT], false); - bool isSharePoint = Utils.ParseBool(TaskManager.TaskParameters[SHAREPOINT_REPORT], false); - bool isLync = Utils.ParseBool(TaskManager.TaskParameters[LYNC_REPORT], false); - bool isCRM = Utils.ParseBool(TaskManager.TaskParameters[CRM_REPORT], false); - bool isOrganization = Utils.ParseBool(TaskManager.TaskParameters[ORGANIZATION_REPORT], false); + BackgroundTask topTask = TaskController.GetTopTask(); - string email = TaskManager.TaskParameters[EMAIL].ToString(); + bool isExchange = Utils.ParseBool(topTask.GetParamValue(EXCHANGE_REPORT), false); + bool isSharePoint = Utils.ParseBool(topTask.GetParamValue(SHAREPOINT_REPORT), false); + bool isLync = Utils.ParseBool(topTask.GetParamValue(LYNC_REPORT), false); + bool isCRM = Utils.ParseBool(topTask.GetParamValue(CRM_REPORT), false); + bool isOrganization = Utils.ParseBool(topTask.GetParamValue(ORGANIZATION_REPORT), false); + + string email = topTask.GetParamValue(EMAIL).ToString(); - UserInfo user = PackageController.GetPackageOwner(TaskManager.PackageId); + UserInfo user = PackageController.GetPackageOwner(topTask.PackageId); EnterpriseSolutionStatisticsReport report = ReportController.GetEnterpriseSolutionStatisticsReport(user.UserId, isExchange, isSharePoint, isCRM, isOrganization, isLync); diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/NotifyOverusedDatabasesTask.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/NotifyOverusedDatabasesTask.cs index 5aae6dff..3700bc0a 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/NotifyOverusedDatabasesTask.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/NotifyOverusedDatabasesTask.cs @@ -44,25 +44,27 @@ namespace WebsitePanel.EnterpriseServer // - DISKSPACE_OVERUSED // - BANDWIDTH_OVERUSED + BackgroundTask topTask = TaskController.GetTopTask(); + // get the list of all packages - List packages = PackageController.GetPackagePackages(TaskManager.PackageId, false); + List packages = PackageController.GetPackagePackages(topTask.PackageId, false); TaskManager.Write("Packages to verify: " + packages.Count.ToString()); - bool checkMSSQL = (String.Compare((string)TaskManager.TaskParameters["MSSQL_OVERUSED"], "true", true) == 0); - bool checkMySQL = (String.Compare((string)TaskManager.TaskParameters["MYSQL_OVERUSED"], "true", true) == 0); + bool checkMSSQL = (String.Compare((string)topTask.GetParamValue("MSSQL_OVERUSED"), "true", true) == 0); + bool checkMySQL = (String.Compare((string)topTask.GetParamValue("MYSQL_OVERUSED"), "true", true) == 0); - bool sendWarningEmail = Convert.ToBoolean(TaskManager.TaskParameters["SEND_WARNING_EMAIL"]); - bool sendOverusedEmail = Convert.ToBoolean(TaskManager.TaskParameters["SEND_OVERUSED_EMAIL"]); - int warningUsageThreshold = Convert.ToInt32(TaskManager.TaskParameters["WARNING_USAGE_THRESHOLD"]); - int overusedUsageThreshold = Convert.ToInt32(TaskManager.TaskParameters["OVERUSED_USAGE_THRESHOLD"]); - string warningMailFrom = Convert.ToString(TaskManager.TaskParameters["WARNING_MAIL_FROM"]); - string warningMailBcc = Convert.ToString(TaskManager.TaskParameters["WARNING_MAIL_BCC"]); - string warningMailSubject = Convert.ToString(TaskManager.TaskParameters["WARNING_MAIL_SUBJECT"]); - string warningMailBody = Convert.ToString(TaskManager.TaskParameters["WARNING_MAIL_BODY"]); - string overusedMailFrom = Convert.ToString(TaskManager.TaskParameters["OVERUSED_MAIL_FROM"]); - string overusedMailBcc = Convert.ToString(TaskManager.TaskParameters["OVERUSED_MAIL_BCC"]); - string overusedMailSubject = Convert.ToString(TaskManager.TaskParameters["OVERUSED_MAIL_SUBJECT"]); - string overusedMailBody = Convert.ToString(TaskManager.TaskParameters["OVERUSED_MAIL_BODY"]); + bool sendWarningEmail = Convert.ToBoolean(topTask.GetParamValue("SEND_WARNING_EMAIL")); + bool sendOverusedEmail = Convert.ToBoolean(topTask.GetParamValue("SEND_OVERUSED_EMAIL")); + int warningUsageThreshold = Convert.ToInt32(topTask.GetParamValue("WARNING_USAGE_THRESHOLD")); + int overusedUsageThreshold = Convert.ToInt32(topTask.GetParamValue("OVERUSED_USAGE_THRESHOLD")); + string warningMailFrom = Convert.ToString(topTask.GetParamValue("WARNING_MAIL_FROM")); + string warningMailBcc = Convert.ToString(topTask.GetParamValue("WARNING_MAIL_BCC")); + string warningMailSubject = Convert.ToString(topTask.GetParamValue("WARNING_MAIL_SUBJECT")); + string warningMailBody = Convert.ToString(topTask.GetParamValue("WARNING_MAIL_BODY")); + string overusedMailFrom = Convert.ToString(topTask.GetParamValue("OVERUSED_MAIL_FROM")); + string overusedMailBcc = Convert.ToString(topTask.GetParamValue("OVERUSED_MAIL_BCC")); + string overusedMailSubject = Convert.ToString(topTask.GetParamValue("OVERUSED_MAIL_SUBJECT")); + string overusedMailBody = Convert.ToString(topTask.GetParamValue("OVERUSED_MAIL_BODY")); int overusedPackages = 0; diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/RunSystemCommandTask.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/RunSystemCommandTask.cs index 3dba9938..0de5b022 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/RunSystemCommandTask.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/RunSystemCommandTask.cs @@ -42,10 +42,12 @@ namespace WebsitePanel.EnterpriseServer // - SERVER_NAME // - EXECUTABLE_PATH + BackgroundTask topTask = TaskController.GetTopTask(); + // get input parameters - string serverName = (string)TaskManager.TaskParameters["SERVER_NAME"]; - string execPath = (string)TaskManager.TaskParameters["EXECUTABLE_PATH"]; - string execParams = (string)TaskManager.TaskParameters["EXECUTABLE_PARAMS"]; + string serverName = (string)topTask.GetParamValue("SERVER_NAME"); + string execPath = (string)topTask.GetParamValue("EXECUTABLE_PATH"); + string execParams = (string)topTask.GetParamValue("EXECUTABLE_PARAMS"); if (execParams == null) execParams = ""; diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/SendMailNotificationTask.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/SendMailNotificationTask.cs index 57e722ea..a882010c 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/SendMailNotificationTask.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/SendMailNotificationTask.cs @@ -42,11 +42,13 @@ namespace WebsitePanel.EnterpriseServer // - MAIL_SUBJECT // - MAIL_BODY + BackgroundTask topTask = TaskController.GetTopTask(); + // get input parameters - string mailFrom = (string)TaskManager.TaskParameters["MAIL_FROM"]; - string mailTo = (string)TaskManager.TaskParameters["MAIL_TO"]; - string mailSubject = (string)TaskManager.TaskParameters["MAIL_SUBJECT"]; - string mailBody = (string)TaskManager.TaskParameters["MAIL_BODY"]; + string mailFrom = (string)topTask.GetParamValue("MAIL_FROM"); + string mailTo = (string)topTask.GetParamValue("MAIL_TO"); + string mailSubject = (string)topTask.GetParamValue("MAIL_SUBJECT"); + string mailBody = (string)topTask.GetParamValue("MAIL_BODY"); // check input parameters if (String.IsNullOrEmpty(mailFrom)) diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/SuspendOverusedPackagesTask.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/SuspendOverusedPackagesTask.cs index 5fa58ce9..e5cd0413 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/SuspendOverusedPackagesTask.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/SuspendOverusedPackagesTask.cs @@ -43,27 +43,29 @@ namespace WebsitePanel.EnterpriseServer // - DISKSPACE_OVERUSED // - BANDWIDTH_OVERUSED + BackgroundTask topTask = TaskController.GetTopTask(); + // get the list of all packages - List packages = PackageController.GetPackagePackages(TaskManager.PackageId, false); + List packages = PackageController.GetPackagePackages(topTask.PackageId, false); TaskManager.Write("Packages to verify: " + packages.Count.ToString()); - bool checkDiskspace = (String.Compare((string)TaskManager.TaskParameters["DISKSPACE_OVERUSED"], "true", true) == 0); - bool checkBandwidth = (String.Compare((string)TaskManager.TaskParameters["BANDWIDTH_OVERUSED"], "true", true) == 0); + bool checkDiskspace = (String.Compare((string)topTask.GetParamValue("DISKSPACE_OVERUSED"), "true", true) == 0); + bool checkBandwidth = (String.Compare((string)topTask.GetParamValue("BANDWIDTH_OVERUSED"), "true", true) == 0); - bool suspendOverused = Convert.ToBoolean(TaskManager.TaskParameters["SUSPEND_OVERUSED"]); + bool suspendOverused = Convert.ToBoolean(topTask.GetParamValue("SUSPEND_OVERUSED")); - bool sendWarningEmail = Convert.ToBoolean(TaskManager.TaskParameters["SEND_WARNING_EMAIL"]); - bool sendSuspensionEmail = Convert.ToBoolean(TaskManager.TaskParameters["SEND_SUSPENSION_EMAIL"]); - int warningUsageThreshold = Convert.ToInt32(TaskManager.TaskParameters["WARNING_USAGE_THRESHOLD"]); - int suspensionUsageThreshold = Convert.ToInt32(TaskManager.TaskParameters["SUSPENSION_USAGE_THRESHOLD"]); - string warningMailFrom = Convert.ToString(TaskManager.TaskParameters["WARNING_MAIL_FROM"]); - string warningMailBcc = Convert.ToString(TaskManager.TaskParameters["WARNING_MAIL_BCC"]); - string warningMailSubject = Convert.ToString(TaskManager.TaskParameters["WARNING_MAIL_SUBJECT"]); - string warningMailBody = Convert.ToString(TaskManager.TaskParameters["WARNING_MAIL_BODY"]); - string suspensionMailFrom = Convert.ToString(TaskManager.TaskParameters["SUSPENSION_MAIL_FROM"]); - string suspensionMailBcc = Convert.ToString(TaskManager.TaskParameters["SUSPENSION_MAIL_BCC"]); - string suspensionMailSubject = Convert.ToString(TaskManager.TaskParameters["SUSPENSION_MAIL_SUBJECT"]); - string suspensionMailBody = Convert.ToString(TaskManager.TaskParameters["SUSPENSION_MAIL_BODY"]); + bool sendWarningEmail = Convert.ToBoolean(topTask.GetParamValue("SEND_WARNING_EMAIL")); + bool sendSuspensionEmail = Convert.ToBoolean(topTask.GetParamValue("SEND_SUSPENSION_EMAIL")); + int warningUsageThreshold = Convert.ToInt32(topTask.GetParamValue("WARNING_USAGE_THRESHOLD")); + int suspensionUsageThreshold = Convert.ToInt32(topTask.GetParamValue("SUSPENSION_USAGE_THRESHOLD")); + string warningMailFrom = Convert.ToString(topTask.GetParamValue("WARNING_MAIL_FROM")); + string warningMailBcc = Convert.ToString(topTask.GetParamValue("WARNING_MAIL_BCC")); + string warningMailSubject = Convert.ToString(topTask.GetParamValue("WARNING_MAIL_SUBJECT")); + string warningMailBody = Convert.ToString(topTask.GetParamValue("WARNING_MAIL_BODY")); + string suspensionMailFrom = Convert.ToString(topTask.GetParamValue("SUSPENSION_MAIL_FROM")); + string suspensionMailBcc = Convert.ToString(topTask.GetParamValue("SUSPENSION_MAIL_BCC")); + string suspensionMailSubject = Convert.ToString(topTask.GetParamValue("SUSPENSION_MAIL_SUBJECT")); + string suspensionMailBody = Convert.ToString(topTask.GetParamValue("SUSPENSION_MAIL_BODY")); int suspendedPackages = 0; diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/ZipFilesTask.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/ZipFilesTask.cs index 5f93c1ac..52aee2b9 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/ZipFilesTask.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/ZipFilesTask.cs @@ -40,9 +40,11 @@ namespace WebsitePanel.EnterpriseServer // - FOLDER // - ZIP_FILE + BackgroundTask topTask = TaskController.GetTopTask(); + // get input parameters - string filesList = (string)TaskManager.TaskParameters["FOLDER"]; - string zipFile = (string)TaskManager.TaskParameters["ZIP_FILE"]; + string filesList = (string)topTask.GetParamValue("FOLDER"); + string zipFile = (string)topTask.GetParamValue("ZIP_FILE"); // check input parameters if (String.IsNullOrEmpty(filesList)) @@ -68,7 +70,7 @@ namespace WebsitePanel.EnterpriseServer zipFile = Utils.ReplaceStringVariable(zipFile, "time", time); // zip files and folders - FilesController.ZipFiles(TaskManager.PackageId, new string[] { filesList }, zipFile); + FilesController.ZipFiles(topTask.PackageId, new string[] { filesList }, zipFile); } } } diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Scheduling/SchedulerJob.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Scheduling/SchedulerJob.cs index c29be3fd..5d8caede 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Scheduling/SchedulerJob.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Scheduling/SchedulerJob.cs @@ -89,15 +89,15 @@ namespace WebsitePanel.EnterpriseServer UserInfo user = PackageController.GetPackageOwner(scheduleInfo.PackageId); SecurityContext.SetThreadPrincipal(user.UserId); - TaskManager.StartTask("SCHEDULER", "RUN_SCHEDULE", scheduleInfo.ScheduleName); - TaskManager.PackageId = scheduleInfo.PackageId; - TaskManager.ItemId = scheduleInfo.ScheduleId; - TaskManager.ScheduleId = scheduleInfo.ScheduleId; - TaskManager.MaximumExecutionTime = scheduleInfo.MaxExecutionTime; - - // set task parameters + IList parameters = new List(); foreach (ScheduleTaskParameterInfo prm in scheduleInfo.Parameters) - TaskManager.TaskParameters[prm.ParameterId] = prm.ParameterValue; + { + parameters.Add(new BackgroundTaskParameter(prm.ParameterId, prm.ParameterValue)); + } + + TaskManager.StartTask("SCHEDULER", "RUN_SCHEDULE", scheduleInfo.ScheduleName, scheduleInfo.ScheduleId, + scheduleInfo.ScheduleId, scheduleInfo.PackageId, scheduleInfo.MaxExecutionTime, + parameters); // run task try diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Servers/ServerController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Servers/ServerController.cs index b1cd15f0..61e838a6 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Servers/ServerController.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Servers/ServerController.cs @@ -265,6 +265,7 @@ namespace WebsitePanel.EnterpriseServer } TaskManager.ItemId = serverId; + TaskManager.CompleteTask(); return serverId; @@ -277,12 +278,10 @@ namespace WebsitePanel.EnterpriseServer | DemandAccount.IsAdmin); if (accountCheck < 0) return accountCheck; - TaskManager.StartTask("SERVER", "UPDATE"); - TaskManager.ItemId = server.ServerId; - // get original server ServerInfo origServer = GetServerByIdInternal(server.ServerId); - TaskManager.ItemName = origServer.ServerName; + + TaskManager.StartTask("SERVER", "UPDATE", origServer.ServerName, server.ServerId); // preserve passwords server.Password = origServer.Password; @@ -313,12 +312,10 @@ namespace WebsitePanel.EnterpriseServer | DemandAccount.IsAdmin); if (accountCheck < 0) return accountCheck; - TaskManager.StartTask("SERVER", "UPDATE_PASSWORD"); - TaskManager.ItemId = serverId; - // get original server ServerInfo server = GetServerByIdInternal(serverId); - TaskManager.ItemName = server.ServerName; + + TaskManager.StartTask("SERVER", "UPDATE_PASSWORD", server.ServerName, serverId); // set password server.Password = password; @@ -341,12 +338,10 @@ namespace WebsitePanel.EnterpriseServer | DemandAccount.IsAdmin); if (accountCheck < 0) return accountCheck; - TaskManager.StartTask("SERVER", "UPDATE_AD_PASSWORD"); - TaskManager.ItemId = serverId; - // get original server ServerInfo server = GetServerByIdInternal(serverId); - TaskManager.ItemName = server.ServerName; + + TaskManager.StartTask("SERVER", "UPDATE_AD_PASSWORD", server.ServerName, serverId); // set password server.ADPassword = adPassword; @@ -369,12 +364,10 @@ namespace WebsitePanel.EnterpriseServer | DemandAccount.IsAdmin); if (accountCheck < 0) return accountCheck; - TaskManager.StartTask("SERVER", "DELETE"); - TaskManager.ItemId = serverId; - // get original server ServerInfo server = GetServerByIdInternal(serverId); - TaskManager.ItemName = server.ServerName; + + TaskManager.StartTask("SERVER", "DELETE", server.ServerName, serverId); try { @@ -427,10 +420,9 @@ namespace WebsitePanel.EnterpriseServer | DemandAccount.IsActive); if (accountCheck < 0) return accountCheck; - TaskManager.StartTask("VIRTUAL_SERVER", "ADD_SERVICES"); ServerInfo server = GetServerByIdInternal(serverId); - TaskManager.ItemId = serverId; - TaskManager.ItemName = server.ServerName; + + TaskManager.StartTask("VIRTUAL_SERVER", "ADD_SERVICES", server.ServerName, serverId); // build XML string xml = BuildXmlFromArray(ids, "services", "service"); @@ -450,10 +442,9 @@ namespace WebsitePanel.EnterpriseServer | DemandAccount.IsActive); if (accountCheck < 0) return accountCheck; - TaskManager.StartTask("VIRTUAL_SERVER", "DELETE_SERVICES"); ServerInfo server = GetServerByIdInternal(serverId); - TaskManager.ItemId = serverId; - TaskManager.ItemName = server.ServerName; + + TaskManager.StartTask("VIRTUAL_SERVER", "DELETE_SERVICES", server.ServerName, serverId); // build XML string xml = BuildXmlFromArray(ids, "services", "service"); @@ -585,9 +576,8 @@ namespace WebsitePanel.EnterpriseServer | DemandAccount.IsActive); if (accountCheck < 0) return accountCheck; - TaskManager.StartTask("SERVER", "ADD_SERVICE"); - TaskManager.ItemId = service.ServerId; - TaskManager.ItemName = GetServerByIdInternal(service.ServerId).ServerName; + TaskManager.StartTask("SERVER", "ADD_SERVICE", GetServerByIdInternal(service.ServerId).ServerName, service.ServerId); + TaskManager.WriteParameter("Service name", service.ServiceName); TaskManager.WriteParameter("Provider", service.ProviderId); @@ -641,9 +631,8 @@ namespace WebsitePanel.EnterpriseServer // load original service ServiceInfo origService = GetServiceInfo(service.ServiceId); - TaskManager.StartTask("SERVER", "UPDATE_SERVICE"); - TaskManager.ItemId = origService.ServerId; - TaskManager.ItemName = GetServerByIdInternal(origService.ServerId).ServerName; + TaskManager.StartTask("SERVER", "UPDATE_SERVICE", GetServerByIdInternal(origService.ServerId).ServerName, origService.ServerId); + TaskManager.WriteParameter("New service name", service.ServiceName); DataProvider.UpdateService(service.ServiceId, service.ServiceName, @@ -663,9 +652,8 @@ namespace WebsitePanel.EnterpriseServer ServiceInfo service = GetServiceInfoAdmin(serviceId); - TaskManager.StartTask("SERVER", "DELETE_SERVICE"); - TaskManager.ItemId = service.ServerId; - TaskManager.ItemName = GetServerByIdInternal(service.ServerId).ServerName; + TaskManager.StartTask("SERVER", "DELETE_SERVICE", GetServerByIdInternal(service.ServerId).ServerName, service.ServerId); + TaskManager.WriteParameter("Service name", service.ServiceName); try @@ -926,8 +914,8 @@ namespace WebsitePanel.EnterpriseServer #endregion // start task - res = TaskManager.StartResultTask("IP_ADDRESS", "ADD"); - TaskManager.ItemName = externalIP; + res = TaskManager.StartResultTask("IP_ADDRESS", "ADD", externalIP); + TaskManager.WriteParameter("IP Address", externalIP); TaskManager.WriteParameter("NAT Address", internalIP); @@ -961,8 +949,8 @@ namespace WebsitePanel.EnterpriseServer #endregion // start task - res = TaskManager.StartResultTask("IP_ADDRESS", "ADD_RANGE"); - TaskManager.ItemName = externalIP; + res = TaskManager.StartResultTask("IP_ADDRESS", "ADD_RANGE", externalIP); + TaskManager.WriteParameter("IP Address", externalIP); TaskManager.WriteParameter("End IP Address", endIP); TaskManager.WriteParameter("NAT Address", internalIP); @@ -1251,8 +1239,7 @@ namespace WebsitePanel.EnterpriseServer if (addressesNumber > maxAvailableIPs) addressesNumber = maxAvailableIPs; - res = TaskManager.StartResultTask("IP_ADDRESS", "ALLOCATE_PACKAGE_IP"); - TaskManager.PackageId = packageId; + res = TaskManager.StartResultTask("IP_ADDRESS", "ALLOCATE_PACKAGE_IP", packageId); try { @@ -1337,8 +1324,8 @@ namespace WebsitePanel.EnterpriseServer return res; #endregion - res = TaskManager.StartResultTask("IP_ADDRESS", "DEALLOCATE_PACKAGE_IP"); - TaskManager.PackageId = packageId; + res = TaskManager.StartResultTask("IP_ADDRESS", "DEALLOCATE_PACKAGE_IP", packageId); + try { foreach (int id in addressId) @@ -1876,11 +1863,7 @@ namespace WebsitePanel.EnterpriseServer */ // place log record - TaskManager.StartTask("DOMAIN", "ADD", domainName); - TaskManager.PackageId = packageId; - TaskManager.TaskParameters["CreateZone"] = createDnsZone; - - + TaskManager.StartTask("DOMAIN", "ADD", domainName, 0, packageId, new BackgroundTaskParameter("CreateZone", createDnsZone)); // create DNS zone int zoneItemId = 0; @@ -1911,6 +1894,7 @@ namespace WebsitePanel.EnterpriseServer packageId, zoneItemId, domainName, allowSubDomains, 0, 0, isSubDomain, isInstantAlias, isDomainPointer); TaskManager.ItemId = itemId; + TaskManager.CompleteTask(); return itemId; @@ -2041,8 +2025,7 @@ namespace WebsitePanel.EnterpriseServer // place log record DomainInfo origDomain = GetDomain(domain.DomainId); - TaskManager.StartTask("DOMAIN", "UPDATE", origDomain.DomainName); - TaskManager.ItemId = domain.DomainId; + TaskManager.StartTask("DOMAIN", "UPDATE", origDomain.DomainName, domain.DomainId); try { @@ -2074,8 +2057,7 @@ namespace WebsitePanel.EnterpriseServer return 0; // place log record - TaskManager.StartTask("DOMAIN", "DETACH", domain.DomainName); - TaskManager.ItemId = domain.DomainId; + TaskManager.StartTask("DOMAIN", "DETACH", domain.DomainName, domain.DomainId); try { @@ -2143,8 +2125,7 @@ namespace WebsitePanel.EnterpriseServer return 0; // place log record - TaskManager.StartTask("DOMAIN", "DELETE", domain.DomainName); - TaskManager.ItemId = domain.DomainId; + TaskManager.StartTask("DOMAIN", "DELETE", domain.DomainName, domain.DomainId); try { @@ -2223,8 +2204,7 @@ namespace WebsitePanel.EnterpriseServer return 0; // place log record - TaskManager.StartTask("DOMAIN", "DISABLE_DNS", domain.DomainName); - TaskManager.ItemId = domain.DomainId; + TaskManager.StartTask("DOMAIN", "DISABLE_DNS", domain.DomainName, domain.DomainId); try { @@ -2270,8 +2250,7 @@ namespace WebsitePanel.EnterpriseServer return 0; // place log record - TaskManager.StartTask("DOMAIN", "ENABLE_DNS", domain.DomainName); - TaskManager.ItemId = domain.DomainId; + TaskManager.StartTask("DOMAIN", "ENABLE_DNS", domain.DomainName, domain.DomainId); try { @@ -2475,8 +2454,7 @@ namespace WebsitePanel.EnterpriseServer return BusinessErrorCodes.ERROR_INSTANT_ALIAS_IS_NOT_CONFIGURED; // place log record - TaskManager.StartTask("DOMAIN", "CREATE_INSTANT_ALIAS", domain.DomainName); - TaskManager.ItemId = domain.DomainId; + TaskManager.StartTask("DOMAIN", "CREATE_INSTANT_ALIAS", domain.DomainName, domain.DomainId); try { @@ -2560,8 +2538,7 @@ namespace WebsitePanel.EnterpriseServer return 0; // place log record - TaskManager.StartTask("DOMAIN", "DELETE_INSTANT_ALIAS", domain.DomainName); - TaskManager.ItemId = domain.DomainId; + TaskManager.StartTask("DOMAIN", "DELETE_INSTANT_ALIAS", domain.DomainName, domain.DomainId); try { @@ -2695,8 +2672,7 @@ namespace WebsitePanel.EnterpriseServer return 0; // place log record - TaskManager.StartTask("DNS_ZONE", "ADD_RECORD", domain.DomainName); - TaskManager.ItemId = domain.ZoneItemId; + TaskManager.StartTask("DNS_ZONE", "ADD_RECORD", domain.DomainName, domain.ZoneItemId); try { @@ -2736,8 +2712,7 @@ namespace WebsitePanel.EnterpriseServer { // place log record DomainInfo domain = GetDomain(domainId); - TaskManager.StartTask("DNS_ZONE", "UPDATE_RECORD", domain.DomainName); - TaskManager.ItemId = domain.ZoneItemId; + TaskManager.StartTask("DNS_ZONE", "UPDATE_RECORD", domain.DomainName, domain.ZoneItemId); try { @@ -2783,8 +2758,7 @@ namespace WebsitePanel.EnterpriseServer try { // place log record - TaskManager.StartTask("DNS_ZONE", "DELETE_RECORD", domain.DomainName); - TaskManager.ItemId = domain.ZoneItemId; + TaskManager.StartTask("DNS_ZONE", "DELETE_RECORD", domain.DomainName, domain.ZoneItemId); DNSServer dns = new DNSServer(); ServiceProviderProxy.Init(dns, zoneItem.ServiceId); diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SharePoint/HostedSharePointServerController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SharePoint/HostedSharePointServerController.cs index eebff84b..886936a1 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SharePoint/HostedSharePointServerController.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SharePoint/HostedSharePointServerController.cs @@ -341,6 +341,7 @@ namespace WebsitePanel.EnterpriseServer.Code.SharePoint } TaskManager.ItemId = itemId; + return itemId; } catch (Exception ex) @@ -380,8 +381,7 @@ namespace WebsitePanel.EnterpriseServer.Code.SharePoint string siteName = origItem.Name.Replace(String.Format("{0}://", rootWebApplicationUri.Scheme), String.Empty); // Log operation. - TaskManager.StartTask("HOSTEDSHAREPOINT", "DELETE_SITE", origItem.Name); - TaskManager.ItemId = itemId; + TaskManager.StartTask("HOSTEDSHAREPOINT", "DELETE_SITE", origItem.Name, itemId); try { @@ -459,8 +459,7 @@ namespace WebsitePanel.EnterpriseServer.Code.SharePoint } // Log operation. - TaskManager.StartTask("HOSTEDSHAREPOINT", "BACKUP_SITE_COLLECTION", origItem.Name); - TaskManager.ItemId = itemId; + TaskManager.StartTask("HOSTEDSHAREPOINT", "BACKUP_SITE_COLLECTION", origItem.Name, itemId); try { @@ -550,8 +549,7 @@ namespace WebsitePanel.EnterpriseServer.Code.SharePoint } // Log operation. - TaskManager.StartTask("HOSTEDSHAREPOINT", "BACKUP_SITE_COLLECTION", origItem.Name); - TaskManager.ItemId = itemId; + TaskManager.StartTask("HOSTEDSHAREPOINT", "BACKUP_SITE_COLLECTION", origItem.Name, itemId); try { @@ -850,8 +848,7 @@ namespace WebsitePanel.EnterpriseServer.Code.SharePoint if (accountCheck < 0) return accountCheck; // place log record - TaskManager.StartTask("HOSTED_SHAREPOINT", "SET_ORG_LIMITS"); - TaskManager.ItemId = itemId; + TaskManager.StartTask("HOSTED_SHAREPOINT", "SET_ORG_LIMITS", itemId); try { @@ -923,8 +920,8 @@ namespace WebsitePanel.EnterpriseServer.Code.SharePoint } // place log record - TaskManager.StartTask("HOSTED_SHAREPOINT", "CALCULATE_DISK_SPACE"); - TaskManager.ItemId = itemId; + TaskManager.StartTask("HOSTED_SHAREPOINT", "CALCULATE_DISK_SPACE", itemId); + try { Organization org = (Organization)PackageController.GetPackageItem(itemId); diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SharePoint/SharePointServerController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SharePoint/SharePointServerController.cs index 63382be7..f516bfa6 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SharePoint/SharePointServerController.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SharePoint/SharePointServerController.cs @@ -268,8 +268,7 @@ namespace WebsitePanel.EnterpriseServer return BusinessErrorCodes.ERROR_SHAREPOINT_PACKAGE_ITEM_NOT_FOUND; // place log record - TaskManager.StartTask("SHAREPOINT", "DELETE_SITE", origItem.Name); - TaskManager.ItemId = itemId; + TaskManager.StartTask("SHAREPOINT", "DELETE_SITE", origItem.Name, itemId); try { @@ -340,8 +339,7 @@ namespace WebsitePanel.EnterpriseServer return null; // place log record - TaskManager.StartTask("SHAREPOINT", "BACKUP_SITE", item.Name); - TaskManager.ItemId = itemId; + TaskManager.StartTask("SHAREPOINT", "BACKUP_SITE", item.Name, itemId); try { @@ -432,8 +430,7 @@ namespace WebsitePanel.EnterpriseServer if (packageCheck < 0) return packageCheck; // place log record - TaskManager.StartTask("SHAREPOINT", "RESTORE_SITE", item.Name); - TaskManager.ItemId = itemId; + TaskManager.StartTask("SHAREPOINT", "RESTORE_SITE", item.Name, itemId); try { @@ -520,8 +517,8 @@ namespace WebsitePanel.EnterpriseServer if (packageCheck < 0) return packageCheck; // place log record - TaskManager.StartTask("SHAREPOINT", "INSTALL_WEBPARTS", item.Name); - TaskManager.ItemId = itemId; + TaskManager.StartTask("SHAREPOINT", "INSTALL_WEBPARTS", item.Name, itemId); + TaskManager.WriteParameter("Package file", packageFile); try @@ -592,8 +589,8 @@ namespace WebsitePanel.EnterpriseServer if (packageCheck < 0) return packageCheck; // place log record - TaskManager.StartTask("SHAREPOINT", "UNINSTALL_WEBPARTS", item.Name); - TaskManager.ItemId = itemId; + TaskManager.StartTask("SHAREPOINT", "UNINSTALL_WEBPARTS", item.Name, itemId); + TaskManager.WriteParameter("Package name", packageName); try @@ -736,8 +733,7 @@ namespace WebsitePanel.EnterpriseServer if (packageCheck < 0) return packageCheck; // place log record - TaskManager.StartTask("SHAREPOINT", "UPDATE_USER", origItem.Name); - TaskManager.ItemId = item.Id; + TaskManager.StartTask("SHAREPOINT", "UPDATE_USER", origItem.Name, item.Id); try { @@ -785,8 +781,7 @@ namespace WebsitePanel.EnterpriseServer return BusinessErrorCodes.ERROR_SHAREPOINT_USERS_PACKAGE_ITEM_NOT_FOUND; // place log record - TaskManager.StartTask("SHAREPOINT", "DELETE_USER", origItem.Name); - TaskManager.ItemId = itemId; + TaskManager.StartTask("SHAREPOINT", "DELETE_USER", origItem.Name, itemId); try { @@ -925,8 +920,7 @@ namespace WebsitePanel.EnterpriseServer if (packageCheck < 0) return packageCheck; // place log record - TaskManager.StartTask("SHAREPOINT", "UPDATE_GROUP", origItem.Name); - TaskManager.ItemId = item.Id; + TaskManager.StartTask("SHAREPOINT", "UPDATE_GROUP", origItem.Name, item.Id); try { @@ -962,8 +956,7 @@ namespace WebsitePanel.EnterpriseServer return BusinessErrorCodes.ERROR_SHAREPOINT_GROUPS_PACKAGE_ITEM_NOT_FOUND; // place log record - TaskManager.StartTask("SHAREPOINT", "DELETE_GROUP", origItem.Name); - TaskManager.ItemId = itemId; + TaskManager.StartTask("SHAREPOINT", "DELETE_GROUP", origItem.Name, itemId); try { diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/StatisticsServers/StatisticsServerController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/StatisticsServers/StatisticsServerController.cs index 1f060c99..29b33e14 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/StatisticsServers/StatisticsServerController.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/StatisticsServers/StatisticsServerController.cs @@ -226,8 +226,7 @@ namespace WebsitePanel.EnterpriseServer item.SiteId = origItem.SiteId; // place log record - TaskManager.StartTask("STATS_SITE", "UPDATE", origItem.Name); - TaskManager.ItemId = origItem.Id; + TaskManager.StartTask("STATS_SITE", "UPDATE", origItem.Name, origItem.Id); try { @@ -263,8 +262,7 @@ namespace WebsitePanel.EnterpriseServer return BusinessErrorCodes.ERROR_STATS_PACKAGE_ITEM_NOT_FOUND; // place log record - TaskManager.StartTask("STATS_SITE", "DELETE", origItem.Name); - TaskManager.ItemId = origItem.Id; + TaskManager.StartTask("STATS_SITE", "DELETE", origItem.Name, itemId); try { diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Tasks/SendEmailNotification.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Tasks/SendEmailNotification.cs index 67d246b2..e69beb1f 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Tasks/SendEmailNotification.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Tasks/SendEmailNotification.cs @@ -40,23 +40,25 @@ namespace WebsitePanel.EnterpriseServer.Tasks public override void OnComplete() { - if (!TaskManager.HasErrors) + BackgroundTask topTask = TaskController.GetTopTask(); + + if (!TaskManager.HasErrors(topTask)) { // Send user add notification - if (TaskManager.TaskSource == "USER" && - TaskManager.TaskName == "ADD" && TaskManager.ItemId > 0) + if (topTask.Source == "USER" && + topTask.TaskName == "ADD" && topTask.ItemId > 0) { SendAddUserNotification(); } // Send hosting package add notification - if (TaskManager.TaskSource == "HOSTING_SPACE" - && TaskManager.TaskName == "ADD" && TaskManager.ItemId > 0) + if (topTask.Source == "HOSTING_SPACE" + && topTask.TaskName == "ADD" && topTask.ItemId > 0) { SendAddPackageNotification(); } // Send hosting package add notification - if (TaskManager.TaskSource == "HOSTING_SPACE_WR" - && TaskManager.TaskName == "ADD" && TaskManager.ItemId > 0) + if (topTask.Source == "HOSTING_SPACE_WR" + && topTask.TaskName == "ADD" && topTask.ItemId > 0) { SendAddPackageWithResourcesNotification(); } @@ -76,10 +78,13 @@ namespace WebsitePanel.EnterpriseServer.Tasks { try { - bool sendLetter = (bool)TaskManager.TaskParameters["SendLetter"]; + BackgroundTask topTask = TaskController.GetTopTask(); + + bool sendLetter = Utils.ParseBool(topTask.GetParamValue("SendLetter"), false); + if (sendLetter) { - int sendResult = PackageController.SendPackageSummaryLetter(TaskManager.ItemId, null, null, true); + int sendResult = PackageController.SendPackageSummaryLetter(topTask.ItemId, null, null, true); CheckSmtpResult(sendResult); } } @@ -93,9 +98,12 @@ namespace WebsitePanel.EnterpriseServer.Tasks { try { - int userId = (int)TaskManager.TaskParameters["UserId"]; - bool sendLetter = (bool)TaskManager.TaskParameters["SendLetter"]; - bool signup = (bool)TaskManager.TaskParameters["Signup"]; + BackgroundTask topTask = TaskController.GetTopTask(); + + int userId = Utils.ParseInt(topTask.GetParamValue("UserId").ToString(), 0); + bool sendLetter = Utils.ParseBool(topTask.GetParamValue("SendLetter"), false); + bool signup = Utils.ParseBool(topTask.GetParamValue("Signup"), false); + // send space letter if enabled UserSettings settings = UserController.GetUserSettings(userId, UserSettings.PACKAGE_SUMMARY_LETTER); if (sendLetter @@ -103,7 +111,7 @@ namespace WebsitePanel.EnterpriseServer.Tasks && Utils.ParseBool(settings["EnableLetter"], false)) { // send letter - int smtpResult = PackageController.SendPackageSummaryLetter(TaskManager.ItemId, null, null, signup); + int smtpResult = PackageController.SendPackageSummaryLetter(topTask.ItemId, null, null, signup); CheckSmtpResult(smtpResult); } } @@ -117,8 +125,11 @@ namespace WebsitePanel.EnterpriseServer.Tasks { try { - bool sendLetter = (bool)TaskManager.TaskParameters["SendLetter"]; - int userId = TaskManager.ItemId; + BackgroundTask topTask = TaskController.GetTopTask(); + + bool sendLetter = Utils.ParseBool(topTask.GetParamValue("SendLetter"), false); + + int userId = topTask.ItemId; // send account letter if enabled UserSettings settings = UserController.GetUserSettings(userId, UserSettings.ACCOUNT_SUMMARY_LETTER); if (sendLetter diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Tasks/TaskController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Tasks/TaskController.cs new file mode 100644 index 00000000..71e25808 --- /dev/null +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Tasks/TaskController.cs @@ -0,0 +1,174 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Xml; +using System.Xml.Serialization; + +namespace WebsitePanel.EnterpriseServer +{ + public class TaskController + { + public static BackgroundTask GetTask(string taskId) + { + BackgroundTask task = ObjectUtils.FillObjectFromDataReader( + DataProvider.GetBackgroundTask(SecurityContext.User.UserId, taskId)); + + task.Params = GetTaskParams(task.Id); + + return task; + } + + public static List GetTasks() + { + return ObjectUtils.CreateListFromDataReader( + DataProvider.GetBackgroundTasks(SecurityContext.User.UserId)); + } + + public static BackgroundTask GetTopTask() + { + BackgroundTask task = ObjectUtils.FillObjectFromDataReader( + DataProvider.GetBackgroundTopTask(SecurityContext.User.UserId)); + + task.Params = GetTaskParams(task.Id); + + return task; + } + + public static void AddTask(BackgroundTask task) + { + int taskId = DataProvider.AddBackgroundTask(task.TaskId, task.ScheduleId, task.PackageId, task.UserId, + task.EffectiveUserId, task.TaskName, task.ItemId, task.ItemName, + task.StartDate, task.IndicatorCurrent, task.IndicatorMaximum, + task.MaximumExecutionTime, task.Source, task.Severity, task.Completed, + task.NotifyOnComplete, task.Status); + + AddTaskParams(taskId, task.Params); + + DataProvider.AddBackgroundTaskStack(taskId); + } + + public static void UpdateTask(BackgroundTask task) + { + DataProvider.UpdateBackgroundTask(task.Id, task.ScheduleId, task.PackageId, task.TaskName, task.ItemId, + task.ItemName, task.FinishDate, task.IndicatorCurrent, + task.IndicatorMaximum, task.MaximumExecutionTime, task.Source, + task.Severity, task.Completed, task.NotifyOnComplete, task.Status); + + AddTaskParams(task.Id, task.Params); + + if (task.Completed) + { + DeleteTaskStack(task.Id); + } + } + + public static void DeleteTaskStack(int taskId) + { + DataProvider.DeleteBackgroundTaskParams(taskId); + } + + public static void AddTaskParams(int taskId, IList parameters) + { + foreach (BackgroundTaskParameter param in SerializeParams(parameters)) + { + DataProvider.AddBackgroundTaskParam(taskId, param.Name, param.SerializerValue); + } + } + + public static IList GetTaskParams(int taskId) + { + List parameters = ObjectUtils.CreateListFromDataReader( + DataProvider.GetBackgroundTaskParams(taskId)); + + return DeserializeParams(parameters); + } + + public static void AddLog(BackgroundTaskLogRecord log) + { + DataProvider.AddBackgroundTaskLog(log.TaskId, log.Date, log.ExceptionStackTrace, log.InnerTaskStart, + log.Severity, log.Text, log.TextIdent, BuildParametersXml(log.TextParameters)); + } + + public static List GetLogs(int taskId, DateTime startLogTime) + { + List logs = ObjectUtils.CreateListFromDataReader( + DataProvider.GetBackgroundTaskLogs(taskId, startLogTime)); + + foreach (BackgroundTaskLogRecord log in logs) + { + log.TextParameters = ReBuildParametersXml(log.XmlParameters); + } + + return logs; + } + + private static IList SerializeParams(IList parameters) + { + foreach (BackgroundTaskParameter param in parameters) + { + XmlSerializer serializer = new XmlSerializer(param.Value.GetType()); + MemoryStream ms = new MemoryStream(); + serializer.Serialize(ms, param.Value); + + ms.Position = 0; + StreamReader sr = new StreamReader(ms); + + param.SerializerValue = sr.ReadToEnd(); + } + + return parameters; + } + + private static IList DeserializeParams(IList parameters) + { + foreach (BackgroundTaskParameter param in parameters) + { + XmlSerializer deserializer = new XmlSerializer(param.Value.GetType()); + StringReader sr = new StringReader(param.SerializerValue); + + param.Value = deserializer.Deserialize(sr); + } + + return parameters; + } + + private static string BuildParametersXml(string[] parameters) + { + XmlDocument xmlDoc = new XmlDocument(); + XmlElement nodeProps = xmlDoc.CreateElement("parameters"); + + if (parameters != null) + { + foreach (string parameter in parameters) + { + XmlElement nodeProp = xmlDoc.CreateElement("parameter"); + nodeProp.SetAttribute("value", parameter); + nodeProps.AppendChild(nodeProp); + } + } + return nodeProps.OuterXml; + } + + private static string[] ReBuildParametersXml(string parameters) + { + string[] textParameters = new string[] {}; + + XmlDocument xmlDoc = new XmlDocument(); + xmlDoc.LoadXml(parameters); + + if (xmlDoc != null) + { + int index = 0; + foreach (XmlNode xmlParameter in xmlDoc.SelectNodes("parameters/parameter")) + { + textParameters[index] = xmlParameter.Attributes.GetNamedItem("value").Value; + index++; + } + } + + return textParameters; + } + } +} diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Tasks/TaskManager.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Tasks/TaskManager.cs index 9772aad5..7cf6d7a2 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Tasks/TaskManager.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Tasks/TaskManager.cs @@ -42,7 +42,6 @@ namespace WebsitePanel.EnterpriseServer { public class TaskManager { - private static Hashtable tasks = Hashtable.Synchronized(new Hashtable()); private static Hashtable eventHandlers = null; // purge timer, used for killing old tasks from the hash @@ -51,81 +50,120 @@ namespace WebsitePanel.EnterpriseServer 60000, // start from 1 minute 60000); // invoke each minute - private static BackgroundTask RootTask - { - get { return TasksStack.Count > 0 ? TasksStack[0] : null; } - } - - private static BackgroundTask TopTask - { - get { return TasksStack.Count > 0 ? TasksStack[TasksStack.Count - 1] : null; } - } - - private static List TasksStack - { - get - { - List stack = (List)Thread.GetData(Thread.GetNamedDataSlot("BackgroundTasksStack")); - if (stack == null) - { - stack = new List(); - Thread.SetData(Thread.GetNamedDataSlot("BackgroundTasksStack"), stack); - } - return stack; - } - } public static void StartTask(string source, string taskName) { - StartTask(null, source, taskName, null); + StartTask(source, taskName, 0); + } + + public static void StartTask(string source, string taskName, int itemId) + { + StartTask(source, taskName, 0, new List()); + } + + public static void StartTask(string source, string taskName, int itemId, BackgroundTaskParameter parameter) + { + StartTask(source, taskName, null, itemId, parameter); + } + + public static void StartTask(string source, string taskName, int itemId, IList parameters) + { + StartTask(source, taskName, null, itemId, parameters); } public static void StartTask(string source, string taskName, object itemName) { - StartTask(null, source, taskName, itemName); + StartTask(source, taskName, itemName, 0); } - public static void StartTask(string taskId, string source, string taskName, object itemName) + public static void StartTask(string source, string taskName, object itemName, int itemId) { - // create new task object - BackgroundTask task = new BackgroundTask(); - task.TaskId = String.IsNullOrEmpty(taskId) ? Guid.NewGuid().ToString("N") : taskId; - task.UserId = SecurityContext.User.UserId; - task.EffectiveUserId = SecurityContext.User.IsPeer ? SecurityContext.User.OwnerId : task.UserId; - task.StartDate = DateTime.Now; - task.Source = source; - task.TaskName = taskName; - task.ItemName = itemName != null ? itemName.ToString() : ""; - task.Severity = 0; //info - task.TaskThread = Thread.CurrentThread; + StartTask(source, taskName, itemName, itemId, new List()); + } - // new "parent" task? - if (TasksStack.Count == 0) + public static void StartTask(string source, string taskName, object itemName, BackgroundTaskParameter parameter) + { + StartTask(source, taskName, itemName, 0, parameter); + } + + public static void StartTask(string source, string taskName, object itemName, IList parameters) + { + StartTask(source, taskName, itemName, 0, parameters); + } + + public static void StartTask(string source, string taskName, object itemName, int itemId, BackgroundTaskParameter parameter) + { + StartTask(source, taskName, itemName, itemId, 0, parameter); + } + + public static void StartTask(string source, string taskName, object itemName, int itemId, IList parameters) + { + StartTask(source, taskName, itemName, itemId, 0, 0, -1, parameters); + } + + public static void StartTask(string source, string taskName, object itemName, int itemId, int packageId, BackgroundTaskParameter parameter) + { + IList parameters = new List(); + if (parameter != null) { - // register task globally - tasks[task.TaskId] = task; + parameters.Add(parameter); } - else - { - // child task - // add log record to the root task - BackgroundTaskLogRecord logRecord = new BackgroundTaskLogRecord(); - logRecord.InnerTaskStart = true; - logRecord.Text = source + "_" + taskName; - logRecord.TextParameters = new string[] { itemName != null ? itemName.ToString() : "" }; - logRecord.TextIdent = TasksStack.Count - 1; - RootTask.LogRecords.Add(logRecord); - // change log records destination - // for nested task - task.LogRecords = RootTask.LogRecords; + StartTask(source, taskName, itemName, itemId, 0, packageId, -1, parameters); + } + + public static void StartTask(string taskId, string source, string taskName, object itemName, int itemId) + { + StartTask(taskId, source, taskName, itemName, itemId, 0, 0, -1, new List()); + } + + public static void StartTask(string taskId, string source, string taskName, object itemName, int itemId, int packageId) + { + StartTask(taskId, source, taskName, itemName, itemId, 0, packageId, -1, new List()); + } + + public static void StartTask(string source, string taskName, object itemName, int itemId, + int scheduleId, int packageId, int maximumExecutionTime, IList parameters) + { + StartTask(null, source, taskName, itemName, itemId, scheduleId, packageId, maximumExecutionTime, new List()); + } + + public static void StartTask(string taskId, string source, string taskName, object itemName, int itemId, + int scheduleId, int packageId, int maximumExecutionTime, IList parameters) + { + if (String.IsNullOrEmpty(taskId)) + { + taskId = Guid.NewGuid().ToString("N"); + } + + int userId = SecurityContext.User.UserId; + int effectiveUserId = SecurityContext.User.IsPeer ? SecurityContext.User.OwnerId : userId; + String itemNameStr = itemName != null ? itemName.ToString() : String.Empty; + + BackgroundTask task = new BackgroundTask(taskId, userId, effectiveUserId, source, taskName, itemNameStr, + itemId, scheduleId, packageId, maximumExecutionTime, parameters); + + List tasks = TaskController.GetTasks(); + + if (tasks.Count > 0) + { + BackgroundTask rootTask = tasks[0]; + + BackgroundTaskLogRecord log = new BackgroundTaskLogRecord( + rootTask.Id, + tasks.Count - 1, + true, + String.Format("{0}_{1}", source, taskName), + new string[] {itemNameStr}); + + + TaskController.AddLog(log); } // call event handler CallTaskEventHandler(task, false); - // push task on the stack - TasksStack.Add(task); + TaskController.AddTask(task); } public static void WriteParameter(string parameterName, object parameterValue) @@ -150,8 +188,11 @@ namespace WebsitePanel.EnterpriseServer { // ERROR WriteLogRecord(2, ex.Message, ex.StackTrace); - return new Exception((TopTask != null) ? String.Format("Error executing '{0}' task on '{1}' {2}", - TopTask.TaskName, TopTask.ItemName, TopTask.Source) : String.Format("Error executing task"), ex); + + BackgroundTask topTask = TaskController.GetTopTask(); + + return new Exception((topTask != null) ? String.Format("Error executing '{0}' task on '{1}' {2}", + topTask.TaskName, topTask.ItemName, topTask.Source) : String.Format("Error executing task"), ex); } public static void WriteError(Exception ex, string text, params string[] textParameters) @@ -176,63 +217,124 @@ namespace WebsitePanel.EnterpriseServer private static void WriteLogRecord(int severity, string text, string stackTrace, params string[] textParameters) { - BackgroundTaskLogRecord logRecord = new BackgroundTaskLogRecord(); - logRecord.Severity = severity; - logRecord.Text = text; - logRecord.TextParameters = textParameters; - logRecord.TextIdent = TasksStack.Count - 1; - logRecord.ExceptionStackTrace = stackTrace; - if (RootTask != null) + List tasks = TaskController.GetTasks(); + + if (tasks.Count > 0) { - RootTask.LogRecords.Add(logRecord); - RootTask.LastLogRecord = logRecord; + BackgroundTask rootTask = tasks[0]; - // change entire task severity - if (severity > RootTask.Severity) - RootTask.Severity = severity; + BackgroundTaskLogRecord log = new BackgroundTaskLogRecord( + rootTask.Id, + tasks.Count - 1, + false, + text, + stackTrace, + textParameters); + + TaskController.AddLog(log); + + if (severity > rootTask.Severity) + { + rootTask.Severity = severity; + + TaskController.UpdateTask(rootTask); + } } } public static void CompleteTask() { - if (TasksStack.Count == 0) + List tasks = TaskController.GetTasks(); + + if (tasks.Count == 0) return; + BackgroundTask topTask = TaskController.GetTopTask(); + // call event handler - CallTaskEventHandler(TopTask, true); + CallTaskEventHandler(topTask, true); // finish task - TopTask.FinishDate = DateTime.Now; - TopTask.Completed = true; + topTask.FinishDate = DateTime.Now; + topTask.Completed = true; // write task execution result to database - if (TasksStack.Count == 1) // single task + if (tasks.Count == 1) // single task { // unregister task globally // tasks.Remove(TopTask.TaskId); // write to database - string itemName = TopTask.ItemName != null ? TopTask.ItemName.ToString() : null; - string executionLog = FormatExecutionLog(TopTask); - UserInfo user = UserController.GetUserInternally(TopTask.UserId); + topTask.Logs = TaskController.GetLogs(topTask.Id, topTask.StartDate); + + string executionLog = FormatExecutionLog(topTask); + UserInfo user = UserController.GetUserInternally(topTask.UserId); string username = user != null ? user.Username : null; - AuditLog.AddAuditLogRecord(TopTask.TaskId, TopTask.Severity, TopTask.UserId, - username, TopTask.PackageId, TopTask.ItemId, - itemName, TopTask.StartDate, TopTask.FinishDate, TopTask.Source, - TopTask.TaskName, executionLog); + AuditLog.AddAuditLogRecord(topTask.TaskId, topTask.Severity, topTask.UserId, + username, topTask.PackageId, topTask.ItemId, + topTask.ItemName, topTask.StartDate, topTask.FinishDate, topTask.Source, + topTask.TaskName, executionLog); } - // update last finish time - SchedulerJob schedule = SchedulerController.GetScheduleComplete(TopTask.ItemId); - if (schedule != null) + TaskController.UpdateTask(topTask); + } + + public static void UpdateParam(String name, Object value) + { + BackgroundTask topTask = TaskController.GetTopTask(); + + if (topTask == null) + return; + + topTask.UpdateParamValue(name, value); + + TaskController.UpdateTask(topTask); + } + + public static int ItemId + { + set { - schedule.ScheduleInfo.LastFinish = DateTime.Now; - SchedulerController.UpdateSchedule(schedule.ScheduleInfo); + BackgroundTask topTask = TaskController.GetTopTask(); + + if (topTask == null) + return; + + topTask.ItemId = value; + + TaskController.UpdateTask(topTask); + } + } + + public static String ItemName + { + set + { + BackgroundTask topTask = TaskController.GetTopTask(); + + if (topTask == null) + return; + + topTask.ItemName = value; + + TaskController.UpdateTask(topTask); + } + } + + public static void UpdateParams(Hashtable parameters) + { + BackgroundTask topTask = TaskController.GetTopTask(); + + if (topTask == null) + return; + + foreach (string key in parameters.Keys) + { + topTask.UpdateParamValue(key, parameters[key]); } - // remove task from the stack - TasksStack.RemoveAt(TasksStack.Count - 1); + TaskController.UpdateTask(topTask); } static string FormatExecutionLog(BackgroundTask task) @@ -244,19 +346,19 @@ namespace WebsitePanel.EnterpriseServer // parameters writer.WriteStartElement("parameters"); - foreach (string name in task.Parameters.Keys) + foreach (BackgroundTaskParameter param in task.Params) { - string val = task.Parameters[name] != null ? task.Parameters[name].ToString() : ""; writer.WriteStartElement("parameter"); - writer.WriteAttributeString("name", name); - writer.WriteString(val); + writer.WriteAttributeString("name", param.Name); + writer.WriteString(param.Value.ToString()); + writer.WriteEndElement(); } writer.WriteEndElement(); // parameters // records writer.WriteStartElement("records"); - foreach (BackgroundTaskLogRecord record in task.LogRecords) + foreach (BackgroundTaskLogRecord record in task.Logs) { writer.WriteStartElement("record"); writer.WriteAttributeString("severity", record.Severity.ToString()); @@ -289,133 +391,84 @@ namespace WebsitePanel.EnterpriseServer static void PurgeCompletedTasks(object obj) { - // remove completed tasks - List completedTasks = new List(); - foreach (BackgroundTask task in tasks.Values) + List tasks = TaskController.GetTasks(); + + foreach (BackgroundTask task in tasks) { if (task.MaximumExecutionTime != -1 - && ((TimeSpan)(DateTime.Now - task.StartDate)).TotalSeconds > task.MaximumExecutionTime) + && ((TimeSpan) (DateTime.Now - task.StartDate)).TotalSeconds > task.MaximumExecutionTime) { - // terminate task - try - { - task.TaskThread.Abort(); - } - catch - { - // nope - } + task.Status = BackgroundTaskStatus.Abort; - // add to the list - completedTasks.Add(task.TaskId); - } - - if ((task.FinishDate != DateTime.MinValue - && ((TimeSpan)(DateTime.Now - task.FinishDate)).TotalMinutes > 2)) - { - // add to the list - completedTasks.Add(task.TaskId); + TaskController.UpdateTask(task); } } - - // remove tasks - foreach (string taskId in completedTasks) - { - BackgroundTask task = GetTask(taskId); - if (task != null) - { - // update last finish time - SchedulerJob schedule = SchedulerController.GetScheduleComplete(task.ItemId); - if (schedule != null) - { - schedule.ScheduleInfo.LastFinish = DateTime.Now; - SchedulerController.UpdateSchedule(schedule.ScheduleInfo); - } - } - - tasks.Remove(taskId); - } - } - - public static int PackageId - { - get { return TopTask.PackageId; } - set { TopTask.PackageId = value; } - } - - public static int ItemId - { - get { return TopTask.ItemId; } - set { TopTask.ItemId = value; } - } - - public static string ItemName - { - get { return TopTask.ItemName; } - set { TopTask.ItemName = value; } - } - - public static string TaskName - { - get { return TopTask.TaskName; } - } - - public static string TaskSource - { - get { return TopTask.Source; } } public static int IndicatorMaximum { - get { return TopTask.IndicatorMaximum; } - set { TopTask.IndicatorMaximum = value; } + set + { + BackgroundTask topTask = TaskController.GetTopTask(); + topTask.IndicatorMaximum = value; + + TaskController.UpdateTask(topTask); + } } public static int IndicatorCurrent { - get { return TopTask.IndicatorCurrent; } - set { TopTask.IndicatorCurrent = value; } + get + { + return TaskController.GetTopTask().IndicatorCurrent; + } + set + { + BackgroundTask topTask = TaskController.GetTopTask(); + topTask.IndicatorCurrent = value; + + TaskController.UpdateTask(topTask); + } } public static int MaximumExecutionTime { - get { return TopTask.MaximumExecutionTime; } - set { TopTask.MaximumExecutionTime = value; } + get + { + return TaskController.GetTopTask().MaximumExecutionTime; + } + set + { + BackgroundTask topTask = TaskController.GetTopTask(); + topTask.MaximumExecutionTime = value; + + TaskController.UpdateTask(topTask); + } } - public static int ScheduleId + public static bool HasErrors(BackgroundTask task) { - get { return TopTask.ScheduleId; } - set { TopTask.ScheduleId = value; } - } - - public static bool HasErrors - { - get { return (TopTask.Severity == 2); } + return task.Severity == 2; } public static BackgroundTask GetTask(string taskId) { - BackgroundTask task = (BackgroundTask)tasks[taskId]; + BackgroundTask task = TaskController.GetTask(taskId); + if (task == null) return null; - task.LastLogRecords.Clear(); return task; } public static BackgroundTask GetTaskWithLogRecords(string taskId, DateTime startLogTime) { BackgroundTask task = GetTask(taskId); + if (task == null) return null; - // fill log records - foreach (BackgroundTaskLogRecord record in task.LogRecords) - { - if (record.Date >= startLogTime) - task.LastLogRecords.Add(record); - } + task.Logs = TaskController.GetLogs(task.Id, startLogTime); return task; } @@ -425,7 +478,7 @@ namespace WebsitePanel.EnterpriseServer Dictionary scheduledTasks = new Dictionary(); try { - foreach (BackgroundTask task in tasks.Values) + foreach (BackgroundTask task in TaskController.GetTasks()) { if (task.ScheduleId > 0 && !task.Completed @@ -441,7 +494,8 @@ namespace WebsitePanel.EnterpriseServer public static void SetTaskNotifyOnComplete(string taskId) { - BackgroundTask task = (BackgroundTask)tasks[taskId]; + BackgroundTask task = GetTask(taskId); + if (task == null) return; @@ -450,101 +504,46 @@ namespace WebsitePanel.EnterpriseServer public static void StopTask(string taskId) { - BackgroundTask task = (BackgroundTask)tasks[taskId]; + BackgroundTask task = GetTask(taskId); + if (task == null) return; - try - { - task.TaskThread.Abort(); - } - catch - { - // nope - } - - // update last finish time - SchedulerJob schedule = SchedulerController.GetScheduleComplete(task.ItemId); - if (schedule != null) - { - schedule.ScheduleInfo.LastFinish = DateTime.Now; - SchedulerController.UpdateSchedule(schedule.ScheduleInfo); - } - - // remove it from stack - tasks.Remove(taskId); - } - - public static Hashtable TaskParameters - { - get { return TopTask.Parameters; } - } - - public static int GetTasksNumber() - { - return tasks.Count; + task.Status = BackgroundTaskStatus.Abort; + + TaskController.UpdateTask(task); } public static List GetUserTasks(int userId) { List list = new List(); - int effectiveUserId = SecurityContext.User.IsPeer ? SecurityContext.User.OwnerId : SecurityContext.User.UserId; - Dictionary scheduledTasks = GetScheduledTasks(); + // try to get user first + UserInfo user = UserController.GetUser(userId); + if (user == null) + return list; // prohibited user - List scheduleList = SchedulerController.GetRunningSchedules(); - - foreach (var scheduleInfo in scheduleList) + // get user tasks + foreach (BackgroundTask task in TaskController.GetTasks()) { - if (effectiveUserId == userId && scheduleInfo.LastRun > scheduleInfo.LastFinish) - { - if (scheduledTasks.ContainsKey(scheduleInfo.ScheduleId) && !scheduledTasks[scheduleInfo.ScheduleId].Completed) - { - list.Add(scheduledTasks[scheduleInfo.ScheduleId]); - } - else - { - list.Add(new BackgroundTask - { - TaskId = "", - ItemId = scheduleInfo.ScheduleId, - StartDate = scheduleInfo.LastRun, - TaskName = scheduleInfo.ScheduleName, - UserId = SecurityContext.User.UserId, - Source = "RUN_SCHEDULE", - Severity = 0, - ItemName = scheduleInfo.ScheduleName, - Completed = false - }); - } - } + if (task.EffectiveUserId == userId && !task.Completed) + list.Add(task); } - return list; } public static List GetUserCompletedTasks(int userId) { - // get user tasks - List list = GetUserTasks(userId); + return new List(); + } - // extract completed only - List completedTasks = new List(); - foreach (BackgroundTask task in list) - { - if (task.Completed && task.NotifyOnComplete) - { - // add to the list - completedTasks.Add(task); - - // remove from hash - tasks.Remove(task.TaskId); - } - } - return completedTasks; + public static int GetTasksNumber() + { + return TaskController.GetTasks().Count; } #region Private Helpers + private static void CallTaskEventHandler(BackgroundTask task, bool onComplete) { string[] taskHandlers = GetTaskEventHandlers(task.Source, task.TaskName); @@ -630,6 +629,7 @@ namespace WebsitePanel.EnterpriseServer List handlersList = (List)eventHandlers[fullTaskName]; return handlersList == null ? null : handlersList.ToArray(); } + #endregion @@ -677,14 +677,6 @@ namespace WebsitePanel.EnterpriseServer CompleteResultTask(null); } - public static T StartResultTask(string source, string taskName, Guid taskId) where T : ResultObject, new() - { - StartTask(taskId.ToString(), source, taskName, null); - T res = new T(); - res.IsSuccess = true; - return res; - } - public static T StartResultTask(string source, string taskName) where T : ResultObject, new() { StartTask(source, taskName); @@ -693,6 +685,69 @@ namespace WebsitePanel.EnterpriseServer return res; } + public static T StartResultTask(string source, string taskName, object itemName) where T : ResultObject, new() + { + StartTask(source, taskName, itemName); + T res = new T(); + res.IsSuccess = true; + return res; + } + + public static T StartResultTask(string source, string taskName, object itemName, int packageId) where T : ResultObject, new() + { + StartTask(source, taskName, itemName, 0, packageId, null); + T res = new T(); + res.IsSuccess = true; + return res; + } + + public static T StartResultTask(string source, string taskName, int packageId) where T : ResultObject, new() + { + StartTask(source, taskName, null, 0, packageId, null); + T res = new T(); + res.IsSuccess = true; + return res; + } + + public static T StartResultTask(string source, string taskName, int itemId, BackgroundTaskParameter parameter) where T : ResultObject, new() + { + StartTask(source, taskName, itemId, parameter); + T res = new T(); + res.IsSuccess = true; + return res; + } + + public static T StartResultTask(string source, string taskName, int itemId, IList parameters) where T : ResultObject, new() + { + StartTask(source, taskName, itemId, parameters); + T res = new T(); + res.IsSuccess = true; + return res; + } + + public static T StartResultTask(string source, string taskName, int itemId, object itemName, int packageId) where T : ResultObject, new() + { + StartTask(source, taskName, itemName, itemId, packageId, null); + T res = new T(); + res.IsSuccess = true; + return res; + } + + public static T StartResultTask(string source, string taskName, Guid taskId, object itemName, int packageId) where T : ResultObject, new() + { + StartTask(taskId.ToString(), source, taskName, itemName, 0, packageId); + T res = new T(); + res.IsSuccess = true; + return res; + } + + public static T StartResultTask(string source, string taskName, Guid taskId, int itemId, object itemName, int packageId) where T : ResultObject, new() + { + StartTask(taskId.ToString(), source, taskName, itemName, itemId, packageId); + T res = new T(); + res.IsSuccess = true; + return res; + } #endregion } diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Users/UserAsyncWorker.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Users/UserAsyncWorker.cs index d5a66597..33cac57d 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Users/UserAsyncWorker.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Users/UserAsyncWorker.cs @@ -103,8 +103,7 @@ namespace WebsitePanel.EnterpriseServer UserInfo user = UserController.GetUserInternally(userId); // place log record - TaskManager.StartTask(taskId, "USER", "DELETE", user.Username); - TaskManager.ItemId = userId; + TaskManager.StartTask(taskId, "USER", "DELETE", user.Username, userId); try { diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Users/UserController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Users/UserController.cs index ff333445..1f1254e5 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Users/UserController.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Users/UserController.cs @@ -448,8 +448,12 @@ namespace WebsitePanel.EnterpriseServer return BusinessErrorCodes.ERROR_USER_ALREADY_EXISTS; } - TaskManager.ItemId = userId; - TaskManager.TaskParameters["SendLetter"] = sendLetter; + BackgroundTask topTask = TaskController.GetTopTask(); + + topTask.ItemId = userId; + topTask.UpdateParamValue("SendLetter", sendLetter); + + TaskController.UpdateTask(topTask); return userId; } @@ -518,8 +522,7 @@ namespace WebsitePanel.EnterpriseServer try { // start task - TaskManager.StartTask(taskId, "USER", "UPDATE", user.Username); - TaskManager.ItemId = user.UserId; + TaskManager.StartTask(taskId, "USER", "UPDATE", user.Username, user.UserId); // check account int accountCheck = SecurityContext.CheckAccount(DemandAccount.NotDemo); @@ -637,10 +640,9 @@ namespace WebsitePanel.EnterpriseServer UserInfo user = GetUserInternally(userId); // place log record - TaskManager.StartTask("USER", "CHANGE_PASSWORD", user.Username); - TaskManager.ItemId = user.UserId; + TaskManager.StartTask("USER", "CHANGE_PASSWORD", user.Username, user.UserId); - try + try { DataProvider.ChangeUserPassword(SecurityContext.User.UserId, userId, @@ -675,8 +677,7 @@ namespace WebsitePanel.EnterpriseServer UserInfo user = GetUserInternally(userId); // place log record - TaskManager.StartTask(taskId, "USER", "CHANGE_STATUS", user.Username); - TaskManager.ItemId = user.UserId; + TaskManager.StartTask(taskId, "USER", "CHANGE_STATUS", user.Username, user.UserId); // update user packages List packages = new List(); @@ -796,8 +797,7 @@ namespace WebsitePanel.EnterpriseServer UserInfo user = GetUserInternally(settings.UserId); // place log record - TaskManager.StartTask("USER", "UPDATE_SETTINGS", user.Username); - TaskManager.ItemId = user.UserId; + TaskManager.StartTask("USER", "UPDATE_SETTINGS", user.Username, user.UserId); try { diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Virtualization/VirtualizationServerController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Virtualization/VirtualizationServerController.cs index ee986ab1..7dd16a43 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Virtualization/VirtualizationServerController.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Virtualization/VirtualizationServerController.cs @@ -583,9 +583,7 @@ namespace WebsitePanel.EnterpriseServer string summaryLetterEmail) { // start task - TaskManager.StartTask(taskId, "VPS", "CREATE", vm.Name); - TaskManager.ItemId = vm.Id; - TaskManager.PackageId = vm.PackageId; + TaskManager.StartTask(taskId, "VPS", "CREATE", vm.Name, vm.Id, vm.PackageId); try { @@ -1647,12 +1645,7 @@ namespace WebsitePanel.EnterpriseServer #endregion // start task - res = TaskManager.StartResultTask("VPS", "UPDATE_HOSTNAME"); - - // log item info - TaskManager.ItemId = vm.Id; - TaskManager.ItemName = vm.Name; - TaskManager.PackageId = vm.PackageId; + res = TaskManager.StartResultTask("VPS", "UPDATE_HOSTNAME", vm.Id, vm.Name, vm.PackageId); try { @@ -1767,9 +1760,13 @@ namespace WebsitePanel.EnterpriseServer return res; } - TaskManager.ItemId = machine.Id; - TaskManager.ItemName = machine.Name; - TaskManager.PackageId = machine.PackageId; + BackgroundTask topTask = TaskController.GetTopTask(); + topTask.ItemId = machine.Id; + topTask.ItemName = machine.Name; + topTask.PackageId = machine.PackageId; + + TaskController.UpdateTask(topTask); + TaskManager.WriteParameter("New state", state); // load proxy @@ -1881,12 +1878,7 @@ namespace WebsitePanel.EnterpriseServer #endregion // start task - res = TaskManager.StartResultTask("VPS", "CHANGE_ADMIN_PASSWORD"); - - // log item info - TaskManager.ItemId = vm.Id; - TaskManager.ItemName = vm.Name; - TaskManager.PackageId = vm.PackageId; + res = TaskManager.StartResultTask("VPS", "CHANGE_ADMIN_PASSWORD", vm.Id, vm.Name, vm.PackageId); try { @@ -1983,12 +1975,7 @@ namespace WebsitePanel.EnterpriseServer #endregion // start task - res = TaskManager.StartResultTask("VPS", "UPDATE_CONFIGURATION"); - - // log item info - TaskManager.ItemId = vm.Id; - TaskManager.ItemName = vm.Name; - TaskManager.PackageId = vm.PackageId; + res = TaskManager.StartResultTask("VPS", "UPDATE_CONFIGURATION", vm.Id, vm.Name, vm.PackageId); try { @@ -2185,12 +2172,7 @@ namespace WebsitePanel.EnterpriseServer #endregion // start task - res = TaskManager.StartResultTask("VPS", "INSERT_DVD_DISK"); - - // log item info - TaskManager.ItemId = vm.Id; - TaskManager.ItemName = vm.Name; - TaskManager.PackageId = vm.PackageId; + res = TaskManager.StartResultTask("VPS", "INSERT_DVD_DISK", vm.Id, vm.Name, vm.PackageId); try { @@ -2246,12 +2228,7 @@ namespace WebsitePanel.EnterpriseServer #endregion // start task - res = TaskManager.StartResultTask("VPS", "EJECT_DVD_DISK"); - - // log item info - TaskManager.ItemId = vm.Id; - TaskManager.ItemName = vm.Name; - TaskManager.PackageId = vm.PackageId; + res = TaskManager.StartResultTask("VPS", "EJECT_DVD_DISK", vm.Id, vm.Name, vm.PackageId); try { @@ -2326,12 +2303,7 @@ namespace WebsitePanel.EnterpriseServer #endregion // start task - res = TaskManager.StartResultTask("VPS", "TAKE_SNAPSHOT"); - - // log item info - TaskManager.ItemId = vm.Id; - TaskManager.ItemName = vm.Name; - TaskManager.PackageId = vm.PackageId; + res = TaskManager.StartResultTask("VPS", "TAKE_SNAPSHOT", vm.Id, vm.Name, vm.PackageId); try { @@ -2401,12 +2373,7 @@ namespace WebsitePanel.EnterpriseServer #endregion // start task - res = TaskManager.StartResultTask("VPS", "APPLY_SNAPSHOT"); - - // log item info - TaskManager.ItemId = vm.Id; - TaskManager.ItemName = vm.Name; - TaskManager.PackageId = vm.PackageId; + res = TaskManager.StartResultTask("VPS", "APPLY_SNAPSHOT", vm.Id, vm.Name, vm.PackageId); try { @@ -2472,12 +2439,7 @@ namespace WebsitePanel.EnterpriseServer #endregion // start task - res = TaskManager.StartResultTask("VPS", "RENAME_SNAPSHOT"); - - // log item info - TaskManager.ItemId = vm.Id; - TaskManager.ItemName = vm.Name; - TaskManager.PackageId = vm.PackageId; + res = TaskManager.StartResultTask("VPS", "RENAME_SNAPSHOT", vm.Id, vm.Name, vm.PackageId); try { @@ -2526,12 +2488,7 @@ namespace WebsitePanel.EnterpriseServer #endregion // start task - res = TaskManager.StartResultTask("VPS", "DELETE_SNAPSHOT"); - - // log item info - TaskManager.ItemId = vm.Id; - TaskManager.ItemName = vm.Name; - TaskManager.PackageId = vm.PackageId; + res = TaskManager.StartResultTask("VPS", "DELETE_SNAPSHOT", vm.Id, vm.Name, vm.PackageId); try { @@ -2587,12 +2544,7 @@ namespace WebsitePanel.EnterpriseServer #endregion // start task - res = TaskManager.StartResultTask("VPS", "DELETE_SNAPSHOT_SUBTREE"); - - // log item info - TaskManager.ItemId = vm.Id; - TaskManager.ItemName = vm.Name; - TaskManager.PackageId = vm.PackageId; + res = TaskManager.StartResultTask("VPS", "DELETE_SNAPSHOT_SUBTREE", vm.Id, vm.Name, vm.PackageId); try { @@ -2776,12 +2728,7 @@ namespace WebsitePanel.EnterpriseServer #endregion // start task - res = TaskManager.StartResultTask("VPS", "ADD_EXTERNAL_IP"); - - // log item info - TaskManager.ItemId = vm.Id; - TaskManager.ItemName = vm.Name; - TaskManager.PackageId = vm.PackageId; + res = TaskManager.StartResultTask("VPS", "ADD_EXTERNAL_IP", vm.Id, vm.Name, vm.PackageId); try { @@ -2841,12 +2788,7 @@ namespace WebsitePanel.EnterpriseServer #endregion // start task - res = TaskManager.StartResultTask("VPS", "SET_PRIMARY_EXTERNAL_IP"); - - // log item info - TaskManager.ItemId = vm.Id; - TaskManager.ItemName = vm.Name; - TaskManager.PackageId = vm.PackageId; + res = TaskManager.StartResultTask("VPS", "SET_PRIMARY_EXTERNAL_IP", vm.Id, vm.Name, vm.PackageId); try { @@ -2893,12 +2835,7 @@ namespace WebsitePanel.EnterpriseServer #endregion // start task - res = TaskManager.StartResultTask("VPS", "DELETE_EXTERNAL_IP"); - - // log item info - TaskManager.ItemId = vm.Id; - TaskManager.ItemName = vm.Name; - TaskManager.PackageId = vm.PackageId; + res = TaskManager.StartResultTask("VPS", "DELETE_EXTERNAL_IP", vm.Id, vm.Name, vm.PackageId); try { @@ -3025,12 +2962,7 @@ namespace WebsitePanel.EnterpriseServer #endregion // start task - res = TaskManager.StartResultTask("VPS", "ADD_PRIVATE_IP"); - - // log item info - TaskManager.ItemId = vm.Id; - TaskManager.ItemName = vm.Name; - TaskManager.PackageId = vm.PackageId; + res = TaskManager.StartResultTask("VPS", "ADD_PRIVATE_IP", vm.Id, vm.Name, vm.PackageId); try { @@ -3148,12 +3080,7 @@ namespace WebsitePanel.EnterpriseServer #endregion // start task - res = TaskManager.StartResultTask("VPS", "SET_PRIMARY_PRIVATE_IP"); - - // log item info - TaskManager.ItemId = vm.Id; - TaskManager.ItemName = vm.Name; - TaskManager.PackageId = vm.PackageId; + res = TaskManager.StartResultTask("VPS", "SET_PRIMARY_PRIVATE_IP", vm.Id, vm.Name, vm.PackageId); try { @@ -3200,12 +3127,7 @@ namespace WebsitePanel.EnterpriseServer #endregion // start task - res = TaskManager.StartResultTask("VPS", "DELETE_PRIVATE_IP"); - - // log item info - TaskManager.ItemId = vm.Id; - TaskManager.ItemName = vm.Name; - TaskManager.PackageId = vm.PackageId; + res = TaskManager.StartResultTask("VPS", "DELETE_PRIVATE_IP", vm.Id, vm.Name, vm.PackageId); try { @@ -3368,12 +3290,7 @@ namespace WebsitePanel.EnterpriseServer #endregion // start task - res = TaskManager.StartResultTask("VPS", "DELETE"); - - // log item info - TaskManager.ItemId = vm.Id; - TaskManager.ItemName = vm.Name; - TaskManager.PackageId = vm.PackageId; + res = TaskManager.StartResultTask("VPS", "DELETE", vm.Id, vm.Name, vm.PackageId); try { @@ -3538,11 +3455,7 @@ namespace WebsitePanel.EnterpriseServer #endregion // start task - res = TaskManager.StartResultTask("VPS", "SEND_SUMMARY_LETTER"); - - TaskManager.ItemId = vm.Id; - TaskManager.ItemName = vm.Name; - TaskManager.PackageId = vm.PackageId; + res = TaskManager.StartResultTask("VPS", "SEND_SUMMARY_LETTER", vm.Id, vm.Name, vm.PackageId); try { diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/VirtualizationForPrivateCloud/VirtualizationServerControllerForPrivateCloud.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/VirtualizationForPrivateCloud/VirtualizationServerControllerForPrivateCloud.cs index d1df6e1e..d33712dd 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/VirtualizationForPrivateCloud/VirtualizationServerControllerForPrivateCloud.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/VirtualizationForPrivateCloud/VirtualizationServerControllerForPrivateCloud.cs @@ -276,9 +276,7 @@ namespace WebsitePanel.EnterpriseServer Guid taksId = Guid.NewGuid(); - res = TaskManager.StartResultTask("VPSForPC", "CREATE", taksId); - TaskManager.ItemName = vmName; - TaskManager.PackageId = packageId; + res = TaskManager.StartResultTask("VPSForPC", "CREATE", taksId, vmName, packageId); string templateName = vmTemplate.Name; @@ -344,9 +342,7 @@ namespace WebsitePanel.EnterpriseServer IntResult res = new IntResult(); //Create Task - res = TaskManager.StartResultTask("VPSForPC", "CREATE"); - TaskManager.PackageId = packageId; - TaskManager.ItemName = vmName; + res = TaskManager.StartResultTask("VPSForPC", "CREATE", vmName, packageId); // meta item VMInfo vmInfo = null; @@ -515,6 +511,7 @@ namespace WebsitePanel.EnterpriseServer { vmInfo.VmId = PackageController.AddPackageItem(vmInfo); vmInfo.Id = vmInfo.VmId; + TaskManager.ItemId = vmInfo.VmId; } catch (Exception ex) @@ -568,10 +565,7 @@ namespace WebsitePanel.EnterpriseServer { Guid taksId = Guid.NewGuid(); - ResultObject taskInfo = TaskManager.StartResultTask("VPSForPC", "CREATE", taksId); - TaskManager.ItemId = vm.Id; - TaskManager.ItemName = vm.Name; - TaskManager.PackageId = vm.PackageId; + ResultObject taskInfo = TaskManager.StartResultTask("VPSForPC", "CREATE", taksId, vm.Id, vm.Name, vm.PackageId); vm.CurrentTaskId = taksId.ToString("N"); @@ -1674,12 +1668,7 @@ namespace WebsitePanel.EnterpriseServer #endregion // start task - res = TaskManager.StartResultTask("VPS", "UPDATE_HOSTNAME"); - - // log item info - TaskManager.ItemId = vm.Id; - TaskManager.ItemName = vm.Name; - TaskManager.PackageId = vm.PackageId; + res = TaskManager.StartResultTask("VPS", "UPDATE_HOSTNAME", vm.Id, vm.Name, vm.PackageId); try { @@ -1814,9 +1803,13 @@ namespace WebsitePanel.EnterpriseServer return res; } - TaskManager.ItemId = machine.Id; - TaskManager.ItemName = machine.Name; - TaskManager.PackageId = machine.PackageId; + BackgroundTask topTask = TaskController.GetTopTask(); + topTask.ItemId = machine.Id; + topTask.ItemName = machine.Name; + topTask.PackageId = machine.PackageId; + + TaskController.UpdateTask(topTask); + TaskManager.WriteParameter("New state", state); // load proxy @@ -1927,12 +1920,7 @@ namespace WebsitePanel.EnterpriseServer #endregion // start task - res = TaskManager.StartResultTask("VPS", "CHANGE_ADMIN_PASSWORD"); - - // log item info - TaskManager.ItemId = vm.Id; - TaskManager.ItemName = vm.Name; - TaskManager.PackageId = vm.PackageId; + res = TaskManager.StartResultTask("VPS", "CHANGE_ADMIN_PASSWORD", vm.Id, vm.Name, vm.PackageId); try { @@ -2029,12 +2017,7 @@ namespace WebsitePanel.EnterpriseServer #endregion // start task - res = TaskManager.StartResultTask("VPS", "UPDATE_CONFIGURATION"); - - // log item info - TaskManager.ItemId = vm.Id; - TaskManager.ItemName = vm.Name; - TaskManager.PackageId = vm.PackageId; + res = TaskManager.StartResultTask("VPS", "UPDATE_CONFIGURATION", vm.Id, vm.Name, vm.PackageId); try { @@ -2222,12 +2205,7 @@ namespace WebsitePanel.EnterpriseServer #endregion // start task - res = TaskManager.StartResultTask("VPS", "INSERT_DVD_DISK"); - - // log item info - TaskManager.ItemId = vm.Id; - TaskManager.ItemName = vm.Name; - TaskManager.PackageId = vm.PackageId; + res = TaskManager.StartResultTask("VPS", "INSERT_DVD_DISK", vm.Id, vm.Name, vm.PackageId); try { @@ -2283,12 +2261,7 @@ namespace WebsitePanel.EnterpriseServer #endregion // start task - res = TaskManager.StartResultTask("VPS", "EJECT_DVD_DISK"); - - // log item info - TaskManager.ItemId = vm.Id; - TaskManager.ItemName = vm.Name; - TaskManager.PackageId = vm.PackageId; + res = TaskManager.StartResultTask("VPS", "EJECT_DVD_DISK", vm.Id, vm.Name, vm.PackageId); try { @@ -2363,12 +2336,7 @@ namespace WebsitePanel.EnterpriseServer #endregion // start task - res = TaskManager.StartResultTask("VPS", "TAKE_SNAPSHOT"); - - // log item info - TaskManager.ItemId = vm.Id; - TaskManager.ItemName = vm.Name; - TaskManager.PackageId = vm.PackageId; + res = TaskManager.StartResultTask("VPS", "TAKE_SNAPSHOT", vm.Id, vm.Name, vm.PackageId); try { @@ -2438,12 +2406,7 @@ namespace WebsitePanel.EnterpriseServer #endregion // start task - res = TaskManager.StartResultTask("VPS", "APPLY_SNAPSHOT"); - - // log item info - TaskManager.ItemId = vm.Id; - TaskManager.ItemName = vm.Name; - TaskManager.PackageId = vm.PackageId; + res = TaskManager.StartResultTask("VPS", "APPLY_SNAPSHOT", vm.Id, vm.Name, vm.PackageId); try { @@ -2514,12 +2477,7 @@ namespace WebsitePanel.EnterpriseServer #endregion // start task - res = TaskManager.StartResultTask("VPS", "RENAME_SNAPSHOT"); - - // log item info - TaskManager.ItemId = vm.Id; - TaskManager.ItemName = vm.Name; - TaskManager.PackageId = vm.PackageId; + res = TaskManager.StartResultTask("VPS", "RENAME_SNAPSHOT", vm.Id, vm.Name, vm.PackageId); try { @@ -2568,12 +2526,7 @@ namespace WebsitePanel.EnterpriseServer #endregion // start task - res = TaskManager.StartResultTask("VPS", "DELETE_SNAPSHOT"); - - // log item info - TaskManager.ItemId = vm.Id; - TaskManager.ItemName = vm.Name; - TaskManager.PackageId = vm.PackageId; + res = TaskManager.StartResultTask("VPS", "DELETE_SNAPSHOT", vm.Id, vm.Name, vm.PackageId); try { @@ -2629,12 +2582,7 @@ namespace WebsitePanel.EnterpriseServer #endregion // start task - res = TaskManager.StartResultTask("VPS", "DELETE_SNAPSHOT_SUBTREE"); - - // log item info - TaskManager.ItemId = vm.Id; - TaskManager.ItemName = vm.Name; - TaskManager.PackageId = vm.PackageId; + res = TaskManager.StartResultTask("VPS", "DELETE_SNAPSHOT_SUBTREE", vm.Id, vm.Name, vm.PackageId); try { @@ -2825,12 +2773,7 @@ namespace WebsitePanel.EnterpriseServer #endregion // start task - res = TaskManager.StartResultTask("VPS", "ADD_EXTERNAL_IP"); - - // log item info - TaskManager.ItemId = vm.Id; - TaskManager.ItemName = vm.Name; - TaskManager.PackageId = vm.PackageId; + res = TaskManager.StartResultTask("VPS", "ADD_EXTERNAL_IP", vm.Id, vm.Name, vm.PackageId); try { @@ -2890,12 +2833,7 @@ namespace WebsitePanel.EnterpriseServer #endregion // start task - res = TaskManager.StartResultTask("VPS", "SET_PRIMARY_EXTERNAL_IP"); - - // log item info - TaskManager.ItemId = vm.Id; - TaskManager.ItemName = vm.Name; - TaskManager.PackageId = vm.PackageId; + res = TaskManager.StartResultTask("VPS", "SET_PRIMARY_EXTERNAL_IP", vm.Id, vm.Name, vm.PackageId); try { @@ -2942,12 +2880,7 @@ namespace WebsitePanel.EnterpriseServer #endregion // start task - res = TaskManager.StartResultTask("VPS", "DELETE_EXTERNAL_IP"); - - // log item info - TaskManager.ItemId = vm.Id; - TaskManager.ItemName = vm.Name; - TaskManager.PackageId = vm.PackageId; + res = TaskManager.StartResultTask("VPS", "DELETE_EXTERNAL_IP", vm.Id, vm.Name, vm.PackageId); try { @@ -3062,12 +2995,7 @@ namespace WebsitePanel.EnterpriseServer #endregion // start task - res = TaskManager.StartResultTask("VPS", "ADD_PRIVATE_IP"); - - // log item info - TaskManager.ItemId = vm.Id; - TaskManager.ItemName = vm.Name; - TaskManager.PackageId = vm.PackageId; + res = TaskManager.StartResultTask("VPS", "ADD_PRIVATE_IP", vm.Id, vm.Name, vm.PackageId); try { @@ -3182,12 +3110,7 @@ namespace WebsitePanel.EnterpriseServer #endregion // start task - res = TaskManager.StartResultTask("VPS", "SET_PRIMARY_PRIVATE_IP"); - - // log item info - TaskManager.ItemId = vm.Id; - TaskManager.ItemName = vm.Name; - TaskManager.PackageId = vm.PackageId; + res = TaskManager.StartResultTask("VPS", "SET_PRIMARY_PRIVATE_IP", vm.Id, vm.Name, vm.PackageId); try { @@ -3234,12 +3157,7 @@ namespace WebsitePanel.EnterpriseServer #endregion // start task - res = TaskManager.StartResultTask("VPS", "DELETE_PRIVATE_IP"); - - // log item info - TaskManager.ItemId = vm.Id; - TaskManager.ItemName = vm.Name; - TaskManager.PackageId = vm.PackageId; + res = TaskManager.StartResultTask("VPS", "DELETE_PRIVATE_IP", vm.Id, vm.Name, vm.PackageId); try { @@ -3384,12 +3302,7 @@ namespace WebsitePanel.EnterpriseServer #endregion // start task - res = TaskManager.StartResultTask("VPSForPC", "DELETE"); - - // log item info - TaskManager.ItemId = vm.Id; - TaskManager.ItemName = vm.Name; - TaskManager.PackageId = vm.PackageId; + res = TaskManager.StartResultTask("VPSForPC", "DELETE", vm.Id, vm.Name, vm.PackageId); try { @@ -3547,11 +3460,7 @@ namespace WebsitePanel.EnterpriseServer #endregion // start task - res = TaskManager.StartResultTask("VPS", "SEND_SUMMARY_LETTER"); - - TaskManager.ItemId = vm.Id; - TaskManager.ItemName = vm.Name; - TaskManager.PackageId = vm.PackageId; + res = TaskManager.StartResultTask("VPS", "SEND_SUMMARY_LETTER", vm.Id, vm.Name, vm.PackageId); try { diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/WebServers/WebServerController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/WebServers/WebServerController.cs index ae8a13bd..458b7f78 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/WebServers/WebServerController.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/WebServers/WebServerController.cs @@ -496,8 +496,7 @@ namespace WebsitePanel.EnterpriseServer return BusinessErrorCodes.ERROR_WEB_SITE_PACKAGE_ITEM_NOT_FOUND; // place log record - TaskManager.StartTask("WEB_SITE", "UPDATE", siteItem.Name); - TaskManager.ItemId = site.Id; + TaskManager.StartTask("WEB_SITE", "UPDATE", siteItem.Name, site.Id); try { @@ -559,8 +558,8 @@ namespace WebsitePanel.EnterpriseServer if (packageCheck < 0) return packageCheck; // place log record - TaskManager.StartTask("WEB_SITE", "CHANGE_STATE", siteItem.Name); - TaskManager.ItemId = siteItemId; + TaskManager.StartTask("WEB_SITE", "CHANGE_STATE", siteItem.Name, siteItemId); + TaskManager.WriteParameter("New state", state); try @@ -595,8 +594,7 @@ namespace WebsitePanel.EnterpriseServer return BusinessErrorCodes.ERROR_WEB_SITE_PACKAGE_ITEM_NOT_FOUND; // place log record - TaskManager.StartTask("WEB_SITE", "DELETE", siteItem.Name); - TaskManager.ItemId = siteItemId; + TaskManager.StartTask("WEB_SITE", "DELETE", siteItem.Name, siteItemId); // delete web site try @@ -710,8 +708,7 @@ namespace WebsitePanel.EnterpriseServer } // place log record - TaskManager.StartTask("WEB_SITE", "SWITCH_TO_DEDICATED_IP", siteItem.Name); - TaskManager.ItemId = siteItemId; + TaskManager.StartTask("WEB_SITE", "SWITCH_TO_DEDICATED_IP", siteItem.Name, siteItemId); try { @@ -886,8 +883,7 @@ namespace WebsitePanel.EnterpriseServer // place log record - TaskManager.StartTask("WEB_SITE", "SWITCH_TO_SHARED_IP", siteItem.Name); - TaskManager.ItemId = siteItemId; + TaskManager.StartTask("WEB_SITE", "SWITCH_TO_SHARED_IP", siteItem.Name, siteItemId); try { @@ -1223,8 +1219,8 @@ namespace WebsitePanel.EnterpriseServer IPAddressInfo ip = ServerController.GetIPAddress(siteItem.SiteIPAddressId); // place log record - TaskManager.StartTask("WEB_SITE", "ADD_POINTER", siteItem.Name); - TaskManager.ItemId = siteItemId; + TaskManager.StartTask("WEB_SITE", "ADD_POINTER", siteItem.Name, siteItemId); + TaskManager.WriteParameter("Domain pointer", domain.DomainName); TaskManager.WriteParameter("Host name", hostName); TaskManager.WriteParameter("updateWebSite", updateWebSite.ToString()); @@ -1425,8 +1421,8 @@ namespace WebsitePanel.EnterpriseServer IPAddressInfo ip = ServerController.GetIPAddress(siteItem.SiteIPAddressId); // place log record - TaskManager.StartTask("WEB_SITE", "DELETE_POINTER", siteItem.Name); - TaskManager.ItemId = siteItemId; + TaskManager.StartTask("WEB_SITE", "DELETE_POINTER", siteItem.Name, siteItemId); + TaskManager.WriteParameter("Domain pointer", domain.DomainName); TaskManager.WriteParameter("updateWebSite", updateWebSite.ToString()); @@ -1587,8 +1583,8 @@ namespace WebsitePanel.EnterpriseServer if (packageCheck < 0) return packageCheck; // place log record - TaskManager.StartTask("WEB_SITE", "ADD_VDIR", vdirName); - TaskManager.ItemId = siteItemId; + TaskManager.StartTask("WEB_SITE", "ADD_VDIR", vdirName, siteItemId); + TaskManager.WriteParameter("Web site", siteItem.Name); try @@ -1641,8 +1637,8 @@ namespace WebsitePanel.EnterpriseServer return BusinessErrorCodes.ERROR_WEB_SITE_PACKAGE_ITEM_NOT_FOUND; // place log record - TaskManager.StartTask("WEB_SITE", "UPDATE_VDIR", vdir.Name); - TaskManager.ItemId = siteItemId; + TaskManager.StartTask("WEB_SITE", "UPDATE_VDIR", vdir.Name, siteItemId); + TaskManager.WriteParameter("Web site", siteItem.Name); try @@ -1680,8 +1676,8 @@ namespace WebsitePanel.EnterpriseServer // place log record // place log record - TaskManager.StartTask("WEB_SITE", "DELETE_VDIR", vdirName); - TaskManager.ItemId = siteItemId; + TaskManager.StartTask("WEB_SITE", "DELETE_VDIR", vdirName, siteItemId); + TaskManager.WriteParameter("Web site", siteItem.Name); try @@ -1721,8 +1717,8 @@ namespace WebsitePanel.EnterpriseServer if (packageCheck < 0) return packageCheck; // place log record - TaskManager.StartTask("WEB_SITE", "INSTALL_FP", siteItem.Name); - TaskManager.ItemId = siteItemId; + TaskManager.StartTask("WEB_SITE", "INSTALL_FP", siteItem.Name, siteItemId); + TaskManager.WriteParameter("FrontPage username", username); try @@ -1774,8 +1770,8 @@ namespace WebsitePanel.EnterpriseServer return BusinessErrorCodes.ERROR_WEB_SITE_PACKAGE_ITEM_NOT_FOUND; // place log record - TaskManager.StartTask("WEB_SITE", "UNINSTALL_FP", siteItem.Name); - TaskManager.ItemId = siteItemId; + TaskManager.StartTask("WEB_SITE", "UNINSTALL_FP", siteItem.Name, siteItemId); + TaskManager.WriteParameter("FrontPage username", siteItem.FrontPageAccount); try @@ -1815,8 +1811,8 @@ namespace WebsitePanel.EnterpriseServer return BusinessErrorCodes.ERROR_WEB_SITE_PACKAGE_ITEM_NOT_FOUND; // place log record - TaskManager.StartTask("WEB_SITE", "CHANGE_FP_PASSWORD", siteItem.Name); - TaskManager.ItemId = siteItemId; + TaskManager.StartTask("WEB_SITE", "CHANGE_FP_PASSWORD", siteItem.Name, siteItemId); + TaskManager.WriteParameter("FrontPage username", siteItem.FrontPageAccount); try @@ -1858,8 +1854,7 @@ namespace WebsitePanel.EnterpriseServer return BusinessErrorCodes.ERROR_WEB_SITE_PACKAGE_ITEM_NOT_FOUND; // place log record - TaskManager.StartTask("WEB_SITE", "INSTALL_SECURED_FOLDERS", siteItem.Name); - TaskManager.ItemId = siteItemId; + TaskManager.StartTask("WEB_SITE", "INSTALL_SECURED_FOLDERS", siteItem.Name, siteItemId); try { @@ -1892,8 +1887,7 @@ namespace WebsitePanel.EnterpriseServer return BusinessErrorCodes.ERROR_WEB_SITE_PACKAGE_ITEM_NOT_FOUND; // place log record - TaskManager.StartTask("WEB_SITE", "UNINSTALL_SECURED_FOLDERS", siteItem.Name); - TaskManager.ItemId = siteItemId; + TaskManager.StartTask("WEB_SITE", "UNINSTALL_SECURED_FOLDERS", siteItem.Name, siteItemId); try { @@ -1947,8 +1941,8 @@ namespace WebsitePanel.EnterpriseServer folder.Path = FilesController.CorrectRelativePath(folder.Path); // place log record - TaskManager.StartTask("WEB_SITE", "UPDATE_SECURED_FOLDER", siteItem.Name); - TaskManager.ItemId = siteItemId; + TaskManager.StartTask("WEB_SITE", "UPDATE_SECURED_FOLDER", siteItem.Name, siteItemId); + TaskManager.WriteParameter("Folder", folder.Path); try @@ -1977,8 +1971,8 @@ namespace WebsitePanel.EnterpriseServer return BusinessErrorCodes.ERROR_WEB_SITE_PACKAGE_ITEM_NOT_FOUND; // place log record - TaskManager.StartTask("WEB_SITE", "DELETE_SECURED_FOLDER", siteItem.Name); - TaskManager.ItemId = siteItemId; + TaskManager.StartTask("WEB_SITE", "DELETE_SECURED_FOLDER", siteItem.Name, siteItemId); + TaskManager.WriteParameter("Folder", folderPath); try @@ -2033,8 +2027,8 @@ namespace WebsitePanel.EnterpriseServer return BusinessErrorCodes.ERROR_WEB_SITE_PACKAGE_ITEM_NOT_FOUND; // place log record - TaskManager.StartTask("WEB_SITE", "UPDATE_SECURED_USER", siteItem.Name); - TaskManager.ItemId = siteItemId; + TaskManager.StartTask("WEB_SITE", "UPDATE_SECURED_USER", siteItem.Name, siteItemId); + TaskManager.WriteParameter("User", user.Name); try @@ -2063,8 +2057,8 @@ namespace WebsitePanel.EnterpriseServer return BusinessErrorCodes.ERROR_WEB_SITE_PACKAGE_ITEM_NOT_FOUND; // place log record - TaskManager.StartTask("WEB_SITE", "DELETE_SECURED_USER", siteItem.Name); - TaskManager.ItemId = siteItemId; + TaskManager.StartTask("WEB_SITE", "DELETE_SECURED_USER", siteItem.Name, siteItemId); + TaskManager.WriteParameter("User", userName); try @@ -2119,8 +2113,8 @@ namespace WebsitePanel.EnterpriseServer return BusinessErrorCodes.ERROR_WEB_SITE_PACKAGE_ITEM_NOT_FOUND; // place log record - TaskManager.StartTask("WEB_SITE", "UPDATE_SECURED_GROUP", siteItem.Name); - TaskManager.ItemId = siteItemId; + TaskManager.StartTask("WEB_SITE", "UPDATE_SECURED_GROUP", siteItem.Name, siteItemId); + TaskManager.WriteParameter("Group", group.Name); try @@ -2149,8 +2143,8 @@ namespace WebsitePanel.EnterpriseServer return BusinessErrorCodes.ERROR_WEB_SITE_PACKAGE_ITEM_NOT_FOUND; // place log record - TaskManager.StartTask("WEB_SITE", "DELETE_SECURED_GROUP", siteItem.Name); - TaskManager.ItemId = siteItemId; + TaskManager.StartTask("WEB_SITE", "DELETE_SECURED_GROUP", siteItem.Name, siteItemId); + TaskManager.WriteParameter("Group", groupName); try @@ -2314,9 +2308,12 @@ namespace WebsitePanel.EnterpriseServer dir.Name = sslDomain + "/" + vdirName; dir.PackageId = packageId; dir.ServiceId = serviceId; - TaskManager.ItemId = PackageController.AddPackageItem(dir); - return TaskManager.ItemId; + int itemId = PackageController.AddPackageItem(dir); + + TaskManager.ItemId = itemId; + + return itemId; } catch (Exception ex) { @@ -2340,8 +2337,7 @@ namespace WebsitePanel.EnterpriseServer return 0; // place log record - TaskManager.StartTask("WEB_SITE", "UPDATE_SSL_FOLDER", origVdir.Name); - TaskManager.ItemId = vdir.Id; + TaskManager.StartTask("WEB_SITE", "UPDATE_SSL_FOLDER", origVdir.Name, vdir.Id); try { @@ -2388,8 +2384,7 @@ namespace WebsitePanel.EnterpriseServer return 0; // place log record - TaskManager.StartTask("WEB_SITE", "DELETE_SSL_FOLDER", origVdir.Name); - TaskManager.ItemId = itemId; + TaskManager.StartTask("WEB_SITE", "DELETE_SSL_FOLDER", origVdir.Name, itemId); try { @@ -2892,8 +2887,7 @@ namespace WebsitePanel.EnterpriseServer return BusinessErrorCodes.ERROR_WEB_SITE_PACKAGE_ITEM_NOT_FOUND; // place log record - TaskManager.StartTask("WEB_SITE", "ENABLE_HELICON_APE", siteItem.Name); - TaskManager.ItemId = siteItemId; + TaskManager.StartTask("WEB_SITE", "ENABLE_HELICON_APE", siteItem.Name, siteItemId); try { @@ -2927,8 +2921,7 @@ namespace WebsitePanel.EnterpriseServer return BusinessErrorCodes.ERROR_WEB_SITE_PACKAGE_ITEM_NOT_FOUND; // place log record - TaskManager.StartTask("WEB_SITE", "DISABLE_HELICON_APE", siteItem.Name); - TaskManager.ItemId = siteItemId; + TaskManager.StartTask("WEB_SITE", "DISABLE_HELICON_APE", siteItem.Name, siteItemId); try { @@ -3070,8 +3063,8 @@ namespace WebsitePanel.EnterpriseServer folder.Path = FilesController.CorrectRelativePath(folder.Path); // place log record - TaskManager.StartTask("WEB_SITE", "UPDATE_HELICON_APE_FOLDER", siteItem.Name); - TaskManager.ItemId = siteItemId; + TaskManager.StartTask("WEB_SITE", "UPDATE_HELICON_APE_FOLDER", siteItem.Name, siteItemId); + TaskManager.WriteParameter("Folder", folder.Path); try @@ -3126,8 +3119,8 @@ namespace WebsitePanel.EnterpriseServer return BusinessErrorCodes.ERROR_WEB_SITE_PACKAGE_ITEM_NOT_FOUND; // place log record - TaskManager.StartTask("WEB_SITE", "DELETE_HELICON_APE_FOLDER", siteItem.Name); - TaskManager.ItemId = siteItemId; + TaskManager.StartTask("WEB_SITE", "DELETE_HELICON_APE_FOLDER", siteItem.Name, siteItemId); + TaskManager.WriteParameter("Folder", folderPath); try @@ -3183,8 +3176,8 @@ namespace WebsitePanel.EnterpriseServer return BusinessErrorCodes.ERROR_WEB_SITE_PACKAGE_ITEM_NOT_FOUND; // place log record - TaskManager.StartTask("WEB_SITE", "UPDATE_HELICON_APE_USER", siteItem.Name); - TaskManager.ItemId = siteItemId; + TaskManager.StartTask("WEB_SITE", "UPDATE_HELICON_APE_USER", siteItem.Name, siteItemId); + TaskManager.WriteParameter("User", user.Name); try @@ -3213,8 +3206,8 @@ namespace WebsitePanel.EnterpriseServer return BusinessErrorCodes.ERROR_WEB_SITE_PACKAGE_ITEM_NOT_FOUND; // place log record - TaskManager.StartTask("WEB_SITE", "DELETE_HELICON_APE_USER", siteItem.Name); - TaskManager.ItemId = siteItemId; + TaskManager.StartTask("WEB_SITE", "DELETE_HELICON_APE_USER", siteItem.Name, siteItemId); + TaskManager.WriteParameter("User", userName); try @@ -3269,8 +3262,8 @@ namespace WebsitePanel.EnterpriseServer return BusinessErrorCodes.ERROR_WEB_SITE_PACKAGE_ITEM_NOT_FOUND; // place log record - TaskManager.StartTask("WEB_SITE", "UPDATE_HELICON_APE_GROUP", siteItem.Name); - TaskManager.ItemId = siteItemId; + TaskManager.StartTask("WEB_SITE", "UPDATE_HELICON_APE_GROUP", siteItem.Name, siteItemId); + TaskManager.WriteParameter("Group", group.Name); try @@ -3299,8 +3292,8 @@ namespace WebsitePanel.EnterpriseServer return BusinessErrorCodes.ERROR_WEB_SITE_PACKAGE_ITEM_NOT_FOUND; // place log record - TaskManager.StartTask("WEB_SITE", "DELETE_HELICON_APE_GROUP", siteItem.Name); - TaskManager.ItemId = siteItemId; + TaskManager.StartTask("WEB_SITE", "DELETE_HELICON_APE_GROUP", siteItem.Name, siteItemId); + TaskManager.WriteParameter("Group", groupName); try diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/WebsitePanel.EnterpriseServer.Code.csproj b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/WebsitePanel.EnterpriseServer.Code.csproj index 49de1bd3..c7dd2261 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/WebsitePanel.EnterpriseServer.Code.csproj +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/WebsitePanel.EnterpriseServer.Code.csproj @@ -160,6 +160,7 @@ + diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Wizards/WebApplicationsInstaller.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Wizards/WebApplicationsInstaller.cs index 8ae1f11b..bea72671 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Wizards/WebApplicationsInstaller.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Wizards/WebApplicationsInstaller.cs @@ -91,17 +91,20 @@ namespace WebsitePanel.EnterpriseServer public int InstallWebApplication(InstallationInfo inst) { // place log record - TaskManager.StartTask("APP_INSTALLER", "INSTALL_APPLICATION"); + TaskManager.StartTask("APP_INSTALLER", "INSTALL_APPLICATION", inst.PackageId); + TaskManager.WriteParameter("Virtual directory", inst.VirtualDir); TaskManager.WriteParameter("Database group", inst.DatabaseGroup); - TaskManager.ItemId = inst.PackageId; - + try { // get application info app = GetApplication(inst.PackageId, inst.ApplicationId); - TaskManager.ItemName = app.Name; + BackgroundTask topTask = TaskController.GetTopTask(); + topTask.ItemName = app.Name; + + TaskController.UpdateTask(topTask); // check web site for existance WebSite webSite = WebServerController.GetWebSite(inst.WebSiteId);