replace saving background tasks in DB

This commit is contained in:
vfedosevich 2013-05-23 09:42:55 +03:00
parent 3353de1e5d
commit e7d5bf0c7e
52 changed files with 1423 additions and 1306 deletions

View file

@ -36,162 +36,156 @@ using System.Xml.Serialization;
namespace WebsitePanel.EnterpriseServer namespace WebsitePanel.EnterpriseServer
{ {
public class BackgroundTask public class BackgroundTask
{ {
private string taskId; #region Properties
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<BackgroundTaskLogRecord> logRecords = new List<BackgroundTaskLogRecord>();
private List<BackgroundTaskLogRecord> lastLogRecords = new List<BackgroundTaskLogRecord>();
private BackgroundTaskLogRecord lastLogRecord;
private Hashtable parameters = new Hashtable();
private int indicatorMaximum;
private int indicatorCurrent;
private bool completed;
private bool notifyOnComplete;
private Thread taskThread;
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<BackgroundTaskLogRecord> Logs { get; set; }
public IList<BackgroundTaskParameter> Params { get; set; }
#endregion
#region Constructors
public BackgroundTask()
{ {
get { return this.startDate; } StartDate = DateTime.Now;
set { this.startDate = value; } Severity = 0;
IndicatorCurrent = 0;
IndicatorMaximum = 0;
Status = BackgroundTaskStatus.Run;
Logs = new List<BackgroundTaskLogRecord>();
} }
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<BackgroundTaskParameter> parameters)
: this()
{ {
get { return this.finishDate; } TaskId = TaskId;
set { this.finishDate = value; } 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; } foreach(BackgroundTaskParameter param in Params)
set { this.source = value; } {
if (param.Name == name)
return param.Value;
} }
public string TaskName return null;
{
get { return this.taskName; }
set { this.taskName = value; }
} }
public int ItemId public void UpdateParamValue(String name, object value)
{ {
get { return this.itemId; } foreach (BackgroundTaskParameter param in Params)
set { this.itemId = value; } {
if (param.Name == name)
{
param.Value = value;
return;
}
} }
public int PackageId Params.Add(new BackgroundTaskParameter(name, value));
{
get { return this.packageId; }
set { this.packageId = value; }
} }
public int Severity public bool ContainsParam(String name)
{ {
get { return this.severity; } foreach (BackgroundTaskParameter param in Params)
set { this.severity = value; } {
if (param.Name == name)
return true;
} }
[XmlIgnore] return false;
public List<BackgroundTaskLogRecord> LogRecords
{
get { return this.logRecords; }
set { this.logRecords = value; }
} }
public List<BackgroundTaskLogRecord> LastLogRecords #endregion
{
get { return this.lastLogRecords; }
} }
public string ItemName public class BackgroundTaskParameter
{ {
get { return this.itemName; } #region Properties
set { this.itemName = value; }
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)
{
Name = name;
Value = value;
} }
public BackgroundTaskLogRecord LastLogRecord #endregion
{
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; }
}
} }
} }

View file

@ -34,54 +34,54 @@ namespace WebsitePanel.EnterpriseServer
{ {
public class BackgroundTaskLogRecord public class BackgroundTaskLogRecord
{ {
private DateTime date = DateTime.Now; #region Properties
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;
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; } Date = DateTime.Now;
set { this.date = value; }
} }
public string Text public BackgroundTaskLogRecord(int taskId, int textIdent, bool innerTaskStart, String text, string[] textParameters)
: this()
{ {
get { return this.text; } TaskId = taskId;
set { this.text = value; } 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; } ExceptionStackTrace = exceptionStackTrace;
set { this.severity = value; }
} }
public string[] TextParameters #endregion
{
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; }
}
} }
} }

View file

@ -0,0 +1,8 @@
namespace WebsitePanel.EnterpriseServer
{
public enum BackgroundTaskStatus
{
Run = 1,
Abort = 2
}
}

View file

@ -156,6 +156,7 @@
<Compile Include="System\SystemSettings.cs" /> <Compile Include="System\SystemSettings.cs" />
<Compile Include="Tasks\BackgroundTask.cs" /> <Compile Include="Tasks\BackgroundTask.cs" />
<Compile Include="Tasks\BackgroundTaskLogRecord.cs" /> <Compile Include="Tasks\BackgroundTaskLogRecord.cs" />
<Compile Include="Tasks\BackgroundTaskStatus.cs" />
<Compile Include="Users\UserInfo.cs" /> <Compile Include="Users\UserInfo.cs" />
<Compile Include="Users\UserLoginStatus.cs" /> <Compile Include="Users\UserLoginStatus.cs" />
<Compile Include="Users\UsernamePolicy.cs" /> <Compile Include="Users\UsernamePolicy.cs" />

View file

@ -1836,6 +1836,149 @@ namespace WebsitePanel.EnterpriseServer
#endregion #endregion
#region Scheduler #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) public static IDataReader GetScheduleTasks(int actorId)
{ {
return SqlHelper.ExecuteReader(ConnectionString, CommandType.StoredProcedure, return SqlHelper.ExecuteReader(ConnectionString, CommandType.StoredProcedure,

View file

@ -200,8 +200,8 @@ namespace WebsitePanel.EnterpriseServer
if (packageCheck < 0) return packageCheck; if (packageCheck < 0) return packageCheck;
// place log record // place log record
TaskManager.StartTask("SQL_DATABASE", "UPDATE", origItem.Name); TaskManager.StartTask("SQL_DATABASE", "UPDATE", origItem.Name, item.Id);
TaskManager.ItemId = item.Id;
TaskManager.WriteParameter("Provider", origItem.GroupName); TaskManager.WriteParameter("Provider", origItem.GroupName);
try try
@ -237,9 +237,7 @@ namespace WebsitePanel.EnterpriseServer
return BusinessErrorCodes.ERROR_MSSQL_DATABASES_PACKAGE_ITEM_NOT_FOUND; return BusinessErrorCodes.ERROR_MSSQL_DATABASES_PACKAGE_ITEM_NOT_FOUND;
// place log record // place log record
TaskManager.StartTask("SQL_DATABASE", "DELETE", origItem.Name); TaskManager.StartTask("SQL_DATABASE", "DELETE", origItem.Name, itemId, new BackgroundTaskParameter("Provider", origItem.GroupName));
TaskManager.ItemId = itemId;
TaskManager.WriteParameter("Provider", origItem.GroupName);
try try
{ {
@ -305,8 +303,7 @@ namespace WebsitePanel.EnterpriseServer
return null; return null;
// place log record // place log record
TaskManager.StartTask("SQL_DATABASE", "BACKUP", item.Name); TaskManager.StartTask("SQL_DATABASE", "BACKUP", item.Name, itemId);
TaskManager.ItemId = itemId;
try try
{ {
@ -398,8 +395,7 @@ namespace WebsitePanel.EnterpriseServer
if (packageCheck < 0) return packageCheck; if (packageCheck < 0) return packageCheck;
// place log record // place log record
TaskManager.StartTask("SQL_DATABASE", "RESTORE", item.Name); TaskManager.StartTask("SQL_DATABASE", "RESTORE", item.Name, itemId);
TaskManager.ItemId = itemId;
try try
{ {
@ -468,8 +464,7 @@ namespace WebsitePanel.EnterpriseServer
return BusinessErrorCodes.ERROR_MSSQL_DATABASES_PACKAGE_ITEM_NOT_FOUND; return BusinessErrorCodes.ERROR_MSSQL_DATABASES_PACKAGE_ITEM_NOT_FOUND;
// place log record // place log record
TaskManager.StartTask("SQL_DATABASE", "TRUNCATE", origItem.Name); TaskManager.StartTask("SQL_DATABASE", "TRUNCATE", origItem.Name, itemId);
TaskManager.ItemId = itemId;
try try
{ {
@ -701,8 +696,7 @@ namespace WebsitePanel.EnterpriseServer
if (packageCheck < 0) return packageCheck; if (packageCheck < 0) return packageCheck;
// place log record // place log record
TaskManager.StartTask("SQL_USER", "UPDATE", origItem.Name); TaskManager.StartTask("SQL_USER", "UPDATE", origItem.Name, item.Id);
TaskManager.ItemId = item.Id;
try try
{ {
@ -746,8 +740,7 @@ namespace WebsitePanel.EnterpriseServer
return BusinessErrorCodes.ERROR_MSSQL_USERS_PACKAGE_ITEM_NOT_FOUND; return BusinessErrorCodes.ERROR_MSSQL_USERS_PACKAGE_ITEM_NOT_FOUND;
// place log record // place log record
TaskManager.StartTask("SQL_USER", "DELETE", origItem.Name); TaskManager.StartTask("SQL_USER", "DELETE", origItem.Name, itemId);
TaskManager.ItemId = itemId;
try try
{ {

View file

@ -214,12 +214,10 @@ namespace WebsitePanel.EnterpriseServer
// //
if (zoneItem != null) if (zoneItem != null)
{ {
TaskManager.StartTask("DNS_ZONE", "DELETE", zoneItem.Name); TaskManager.StartTask("DNS_ZONE", "DELETE", zoneItem.Name, zoneItemId);
// //
try try
{ {
//
TaskManager.ItemId = zoneItemId;
// delete DNS zone // delete DNS zone
DNSServer dns = new DNSServer(); DNSServer dns = new DNSServer();
ServiceProviderProxy.Init(dns, zoneItem.ServiceId); ServiceProviderProxy.Init(dns, zoneItem.ServiceId);

View file

@ -84,8 +84,10 @@ namespace WebsitePanel.Ecommerce.EnterpriseServer.ContractSystem
// //
result.Succeed = true; result.Succeed = true;
result.SetProperty("ContractId", contractId); result.SetProperty("ContractId", contractId);
// Add contract object // Add contract object
ES.TaskManager.TaskParameters[SystemTaskParams.PARAM_CONTRACT] = GetContract(contractId); ES.TaskManager.UpdateParam(SystemTaskParams.PARAM_CONTRACT, GetContract(contractId));
// //
return result; return result;
} }

View file

@ -224,10 +224,15 @@ namespace WebsitePanel.Ecommerce.EnterpriseServer
InvoiceController.UpdateInvoice(invoice.InvoiceId, invoice.InvoiceNumber, invoice.DueDate, InvoiceController.UpdateInvoice(invoice.InvoiceId, invoice.InvoiceNumber, invoice.DueDate,
invoice.Total, invoice.SubTotal, invoice.TaxationId, invoice.TaxAmount, invoice.Currency); invoice.Total, invoice.SubTotal, invoice.TaxationId, invoice.TaxAmount, invoice.Currency);
// //
ES.TaskManager.TaskParameters[SystemTaskParams.PARAM_CONTRACT] = contract;
ES.TaskManager.TaskParameters[SystemTaskParams.PARAM_INVOICE] = invoice; Hashtable parameters = new Hashtable();
ES.TaskManager.TaskParameters[SystemTaskParams.PARAM_INVOICE_LINES] = invoiceLines;
ES.TaskManager.TaskParameters[SystemTaskParams.PARAM_EXTRA_ARGS] = extraArgs; 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; return result;
} }

View file

@ -162,7 +162,8 @@ namespace WebsitePanel.Ecommerce.EnterpriseServer
TaskManager.WriteParameter(USERNAME_PARAM, context.ConsumerInfo[ContractAccount.USERNAME]); TaskManager.WriteParameter(USERNAME_PARAM, context.ConsumerInfo[ContractAccount.USERNAME]);
TaskManager.WriteParameter(SVC_PARAM, context.ServiceInfo.ServiceName); TaskManager.WriteParameter(SVC_PARAM, context.ServiceInfo.ServiceName);
TaskManager.WriteParameter(SVC_ID_PARAM, context.ServiceInfo.ServiceId); 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 // 0. Do security checks
if (!CheckOperationClientPermissions(result)) if (!CheckOperationClientPermissions(result))

View file

@ -235,10 +235,13 @@ namespace WebsitePanel.Ecommerce.EnterpriseServer
protected void SetOutboundParameters(ProvisioningContext context) protected void SetOutboundParameters(ProvisioningContext context)
{ {
// set task outbound parameters // set task outbound parameters
TaskManager.TaskParameters[SystemTaskParams.PARAM_SERVICE] = context.ServiceInfo; Hashtable parameters = new Hashtable();
TaskManager.TaskParameters[SystemTaskParams.PARAM_CONTRACT] = context.ContractInfo; parameters.Add(SystemTaskParams.PARAM_SERVICE, context.ServiceInfo);
TaskManager.TaskParameters[SystemTaskParams.PARAM_CONTRACT_ACCOUNT] = context.ConsumerInfo; parameters.Add(SystemTaskParams.PARAM_CONTRACT, context.ContractInfo);
TaskManager.TaskParameters[SystemTaskParams.PARAM_SEND_EMAIL] = context.SendEmail; parameters.Add(SystemTaskParams.PARAM_CONTRACT_ACCOUNT, context.ConsumerInfo);
parameters.Add(SystemTaskParams.PARAM_SEND_EMAIL, context.SendEmail);
TaskManager.UpdateParams(parameters);
} }
} }

View file

@ -1145,10 +1145,15 @@ namespace WebsitePanel.Ecommerce.EnterpriseServer
// //
int resultCode = EcommerceProvider.UpdateCustomerPayment(SecurityContext.User.UserId, paymentId, invoiceId, int resultCode = EcommerceProvider.UpdateCustomerPayment(SecurityContext.User.UserId, paymentId, invoiceId,
transactionId, total, currency, methodName, pluginId, (int)status); transactionId, total, currency, methodName, pluginId, (int)status);
// //
TaskManager.TaskParameters[SystemTaskParams.PARAM_CONTRACT] = ContractSystem.ContractController.GetContract(contractId); Hashtable parameters = new Hashtable();
TaskManager.TaskParameters[SystemTaskParams.PARAM_INVOICE] = InvoiceController.GetCustomerInvoiceInternally(invoiceId); parameters[SystemTaskParams.PARAM_CONTRACT] = ContractSystem.ContractController.GetContract(contractId);
TaskManager.TaskParameters[SystemTaskParams.PARAM_PAYMENT] = GetCustomerPayment(paymentId); parameters[SystemTaskParams.PARAM_INVOICE] = InvoiceController.GetCustomerInvoiceInternally(invoiceId);
parameters[SystemTaskParams.PARAM_PAYMENT] = GetCustomerPayment(paymentId);
TaskManager.UpdateParams(parameters);
// //
return resultCode; return resultCode;
} }
@ -1209,9 +1214,12 @@ namespace WebsitePanel.Ecommerce.EnterpriseServer
// TRACE // TRACE
TaskManager.WriteParameter("PaymentID", resultCode); TaskManager.WriteParameter("PaymentID", resultCode);
// //
TaskManager.TaskParameters[SystemTaskParams.PARAM_CONTRACT] = contract; Hashtable parameters = new Hashtable();
TaskManager.TaskParameters[SystemTaskParams.PARAM_INVOICE] = invoice; parameters[SystemTaskParams.PARAM_CONTRACT] = contract;
TaskManager.TaskParameters[SystemTaskParams.PARAM_PAYMENT] = GetCustomerPayment(resultCode); parameters[SystemTaskParams.PARAM_INVOICE] = invoice;
parameters[SystemTaskParams.PARAM_PAYMENT] = GetCustomerPayment(resultCode);
TaskManager.UpdateParams(parameters);
// //
return resultCode; return resultCode;
} }

View file

@ -45,9 +45,11 @@ namespace WebsitePanel.Ecommerce.EnterpriseServer.TaskEventHandlers
/// </summary> /// </summary>
public override void OnComplete() 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_SUSPEND:
case SystemTasks.SVC_CANCEL: case SystemTasks.SVC_CANCEL:
@ -72,7 +74,10 @@ namespace WebsitePanel.Ecommerce.EnterpriseServer.TaskEventHandlers
// send an e-mail notification // send an e-mail notification
try 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 // Ensure notification is required
if (!sendNotification) if (!sendNotification)
{ {
@ -80,7 +85,7 @@ namespace WebsitePanel.Ecommerce.EnterpriseServer.TaskEventHandlers
return; return;
} }
Service service = (Service)TaskManager.TaskParameters[SystemTaskParams.PARAM_SERVICE]; Service service = (Service)topTask.GetParamValue(SystemTaskParams.PARAM_SERVICE);
int smtpResult = 0; int smtpResult = 0;
switch (service.Status) switch (service.Status)
{ {
@ -112,9 +117,11 @@ namespace WebsitePanel.Ecommerce.EnterpriseServer.TaskEventHandlers
// //
try try
{ {
BackgroundTask topTask = TaskController.GetTopTask();
// Read task parameters // Read task parameters
Invoice invoice = (Invoice)TaskManager.TaskParameters[SystemTaskParams.PARAM_INVOICE]; Invoice invoice = (Invoice)topTask.GetParamValue(SystemTaskParams.PARAM_INVOICE);
CustomerPayment payment = (CustomerPayment)TaskManager.TaskParameters[SystemTaskParams.PARAM_PAYMENT]; CustomerPayment payment = (CustomerPayment)topTask.GetParamValue(SystemTaskParams.PARAM_PAYMENT);
// //
if (payment.Status == TransactionStatus.Approved) if (payment.Status == TransactionStatus.Approved)
{ {
@ -139,11 +146,13 @@ namespace WebsitePanel.Ecommerce.EnterpriseServer.TaskEventHandlers
// //
try try
{ {
BackgroundTask topTask = TaskController.GetTopTask();
// Read task parameters // Read task parameters
Contract contract = (Contract)TaskManager.TaskParameters[SystemTaskParams.PARAM_CONTRACT]; Contract contract = (Contract)topTask.GetParamValue(SystemTaskParams.PARAM_CONTRACT);
Invoice invoice = (Invoice)TaskManager.TaskParameters[SystemTaskParams.PARAM_INVOICE]; Invoice invoice = (Invoice)topTask.GetParamValue(SystemTaskParams.PARAM_INVOICE);
List<InvoiceItem> invoiceLines = (List<InvoiceItem>)TaskManager.TaskParameters[SystemTaskParams.PARAM_INVOICE_LINES]; List<InvoiceItem> invoiceLines = (List<InvoiceItem>)topTask.GetParamValue(SystemTaskParams.PARAM_INVOICE_LINES);
KeyValueBunch extraArgs = (KeyValueBunch)TaskManager.TaskParameters[SystemTaskParams.PARAM_EXTRA_ARGS]; KeyValueBunch extraArgs = (KeyValueBunch)topTask.GetParamValue(SystemTaskParams.PARAM_EXTRA_ARGS);
// modify invoice direct url // modify invoice direct url
if (extraArgs != null && !String.IsNullOrEmpty(extraArgs["InvoiceDirectURL"])) if (extraArgs != null && !String.IsNullOrEmpty(extraArgs["InvoiceDirectURL"]))
extraArgs["InvoiceDirectURL"] += "&InvoiceId=" + invoice.InvoiceId; extraArgs["InvoiceDirectURL"] += "&InvoiceId=" + invoice.InvoiceId;

View file

@ -44,9 +44,11 @@ namespace WebsitePanel.Ecommerce.EnterpriseServer.TaskEventHandlers
public override void OnComplete() 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: case SystemTasks.TASK_ADD_INVOICE:
RegisterInvoiceActivationTrigger(); RegisterInvoiceActivationTrigger();
@ -64,8 +66,10 @@ namespace WebsitePanel.Ecommerce.EnterpriseServer.TaskEventHandlers
private void RegisterInvoiceActivationTrigger() private void RegisterInvoiceActivationTrigger()
{ {
BackgroundTask topTask = TaskController.GetTopTask();
// Read contract invoice // 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(), TriggerSystem.TriggerController.AddSystemTrigger(invoice.InvoiceId.ToString(),
ActivateInvoiceTrigger.STATUS_AWAITING_PAYMENT, typeof(ActivateInvoiceTrigger)); ActivateInvoiceTrigger.STATUS_AWAITING_PAYMENT, typeof(ActivateInvoiceTrigger));
@ -73,10 +77,12 @@ namespace WebsitePanel.Ecommerce.EnterpriseServer.TaskEventHandlers
private void RegisterContractActivationTrigger() private void RegisterContractActivationTrigger()
{ {
BackgroundTask topTask = TaskController.GetTopTask();
// Ensure the contract has been registered successfully // 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) if (contract.Status == ContractStatus.Pending)
{ {
@ -88,8 +94,10 @@ namespace WebsitePanel.Ecommerce.EnterpriseServer.TaskEventHandlers
private void ActivatePaymentSystemTriggers() private void ActivatePaymentSystemTriggers()
{ {
CustomerPayment payment = (CustomerPayment)TaskManager.TaskParameters[SystemTaskParams.PARAM_PAYMENT]; BackgroundTask topTask = TaskController.GetTopTask();
Contract contract = (Contract)TaskManager.TaskParameters[SystemTaskParams.PARAM_CONTRACT];
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 // Run activate contract trigger if the transaction was approved
if (payment.Status == TransactionStatus.Approved) if (payment.Status == TransactionStatus.Approved)

View file

@ -171,8 +171,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion #endregion
// place log record // place log record
TaskManager.StartTask("EXCHANGE", "GET_ORG_STATS"); TaskManager.StartTask("EXCHANGE", "GET_ORG_STATS", itemId);
TaskManager.ItemId = itemId;
try try
{ {
@ -260,8 +259,7 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck; if (accountCheck < 0) return accountCheck;
// place log record // place log record
TaskManager.StartTask("EXCHANGE", "CALCULATE_DISKSPACE"); TaskManager.StartTask("EXCHANGE", "CALCULATE_DISKSPACE", itemId);
TaskManager.ItemId = itemId;
try try
{ {
@ -348,8 +346,7 @@ namespace WebsitePanel.EnterpriseServer
private static int ExtendToExchangeOrganization(ref Organization org) private static int ExtendToExchangeOrganization(ref Organization org)
{ {
// place log record // place log record
TaskManager.StartTask("EXCHANGE", "CREATE_ORG", org.Name); TaskManager.StartTask("EXCHANGE", "CREATE_ORG", org.Name, new BackgroundTaskParameter("Organization ID", org.OrganizationId));
TaskManager.TaskParameters["Organization ID"] = org.OrganizationId;
try try
{ {
@ -575,8 +572,7 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck; if (accountCheck < 0) return accountCheck;
// place log record // place log record
TaskManager.StartTask("EXCHANGE", "DELETE_ORG"); TaskManager.StartTask("EXCHANGE", "DELETE_ORG", itemId);
TaskManager.ItemId = itemId;
try try
{ {
@ -613,8 +609,7 @@ namespace WebsitePanel.EnterpriseServer
public static Organization GetOrganizationStorageLimits(int itemId) public static Organization GetOrganizationStorageLimits(int itemId)
{ {
// place log record // place log record
TaskManager.StartTask("EXCHANGE", "GET_ORG_LIMITS"); TaskManager.StartTask("EXCHANGE", "GET_ORG_LIMITS", itemId);
TaskManager.ItemId = itemId;
try try
{ {
@ -638,8 +633,7 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck; if (accountCheck < 0) return accountCheck;
// place log record // place log record
TaskManager.StartTask("EXCHANGE", "SET_ORG_LIMITS"); TaskManager.StartTask("EXCHANGE", "SET_ORG_LIMITS", itemId);
TaskManager.ItemId = itemId;
try try
{ {
@ -724,8 +718,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion #endregion
// place log record // place log record
TaskManager.StartTask("EXCHANGE", "GET_MAILBOXES_STATS"); TaskManager.StartTask("EXCHANGE", "GET_MAILBOXES_STATS", itemId);
TaskManager.ItemId = itemId;
try try
{ {
@ -753,8 +746,7 @@ namespace WebsitePanel.EnterpriseServer
public static ExchangeMailboxStatistics GetMailboxStatistics(int itemId, int accountId) public static ExchangeMailboxStatistics GetMailboxStatistics(int itemId, int accountId)
{ {
// place log record // place log record
TaskManager.StartTask("EXCHANGE", "GET_MAILBOX_STATS"); TaskManager.StartTask("EXCHANGE", "GET_MAILBOX_STATS", itemId);
TaskManager.ItemId = itemId;
try try
{ {
@ -818,8 +810,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion #endregion
// place log record // place log record
TaskManager.StartTask("EXCHANGE", "GET_FOLDERS_STATS"); TaskManager.StartTask("EXCHANGE", "GET_FOLDERS_STATS", itemId);
TaskManager.ItemId = itemId;
try try
{ {
@ -865,8 +856,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion #endregion
// place log record // place log record
TaskManager.StartTask("EXCHANGE", "GET_ACTIVESYNC_POLICY"); TaskManager.StartTask("EXCHANGE", "GET_ACTIVESYNC_POLICY", itemId);
TaskManager.ItemId = itemId;
try try
{ {
@ -917,8 +907,7 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck; if (accountCheck < 0) return accountCheck;
// place log record // place log record
TaskManager.StartTask("EXCHANGE", "SET_ACTIVESYNC_POLICY"); TaskManager.StartTask("EXCHANGE", "SET_ACTIVESYNC_POLICY", itemId);
TaskManager.ItemId = itemId;
try try
{ {
@ -1171,8 +1160,7 @@ namespace WebsitePanel.EnterpriseServer
public static bool CheckAccountCredentials(int itemId, string email, string password) public static bool CheckAccountCredentials(int itemId, string email, string password)
{ {
// place log record // place log record
TaskManager.StartTask("EXCHANGE", "AUTHENTICATE", email); TaskManager.StartTask("EXCHANGE", "AUTHENTICATE", email, itemId);
TaskManager.ItemId = itemId;
try try
{ {
@ -1396,9 +1384,7 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck; if (accountCheck < 0) return accountCheck;
// place log record // place log record
TaskManager.StartTask("EXCHANGE", "ADD_DOMAIN"); TaskManager.StartTask("EXCHANGE", "ADD_DOMAIN", itemId, new BackgroundTaskParameter("Domain ID", domainId));
TaskManager.TaskParameters["Domain ID"] = domainId;
TaskManager.ItemId = itemId;
try try
{ {
@ -1469,10 +1455,12 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck; if (accountCheck < 0) return accountCheck;
// place log record // place log record
TaskManager.StartTask("EXCHANGE", "CHANGE_DOMAIN_TYPE");
TaskManager.TaskParameters["Domain ID"] = domainId; IList<BackgroundTaskParameter> parameters = new List<BackgroundTaskParameter>();
TaskManager.TaskParameters["Domain Type"] = domainType.ToString(); parameters.Add(new BackgroundTaskParameter("Domain ID", domainId));
TaskManager.ItemId = itemId; parameters.Add(new BackgroundTaskParameter("Domain Type", domainType.ToString()));
TaskManager.StartTask("EXCHANGE", "CHANGE_DOMAIN_TYPE", itemId, parameters);
try try
{ {
@ -1527,9 +1515,7 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck; if (accountCheck < 0) return accountCheck;
// place log record // place log record
TaskManager.StartTask("EXCHANGE", "DELETE_DOMAIN"); TaskManager.StartTask("EXCHANGE", "DELETE_DOMAIN", itemId, new BackgroundTaskParameter("Domain ID", domainId));
TaskManager.TaskParameters["Domain ID"] = domainId;
TaskManager.ItemId = itemId;
try try
{ {
@ -1632,8 +1618,8 @@ namespace WebsitePanel.EnterpriseServer
// place log record // place log record
TaskManager.StartTask("EXCHANGE", "CREATE_MAILBOX"); TaskManager.StartTask("EXCHANGE", "CREATE_MAILBOX", itemId);
TaskManager.ItemId = itemId;
bool userCreated = false; bool userCreated = false;
Organization org = null; Organization org = null;
try try
@ -1824,8 +1810,7 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck; if (accountCheck < 0) return accountCheck;
// place log record // place log record
TaskManager.StartTask("EXCHANGE", "DISABLE_MAILBOX"); TaskManager.StartTask("EXCHANGE", "DISABLE_MAILBOX", itemId);
TaskManager.ItemId = itemId;
try try
{ {
@ -1873,8 +1858,7 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck; if (accountCheck < 0) return accountCheck;
// place log record // place log record
TaskManager.StartTask("EXCHANGE", "DELETE_MAILBOX"); TaskManager.StartTask("EXCHANGE", "DELETE_MAILBOX", itemId);
TaskManager.ItemId = itemId;
try try
{ {
@ -1953,8 +1937,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion #endregion
// place log record // place log record
TaskManager.StartTask("EXCHANGE", "GET_MAILBOX_GENERAL"); TaskManager.StartTask("EXCHANGE", "GET_MAILBOX_GENERAL", itemId);
TaskManager.ItemId = itemId;
try try
{ {
@ -1989,8 +1972,7 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck; if (accountCheck < 0) return accountCheck;
// place log record // place log record
TaskManager.StartTask("EXCHANGE", "UPDATE_MAILBOX_GENERAL"); TaskManager.StartTask("EXCHANGE", "UPDATE_MAILBOX_GENERAL", itemId);
TaskManager.ItemId = itemId;
try try
{ {
@ -2036,8 +2018,7 @@ namespace WebsitePanel.EnterpriseServer
public static ExchangeEmailAddress[] GetMailboxEmailAddresses(int itemId, int accountId) public static ExchangeEmailAddress[] GetMailboxEmailAddresses(int itemId, int accountId)
{ {
// place log record // place log record
TaskManager.StartTask("EXCHANGE", "GET_MAILBOX_ADDRESSES"); TaskManager.StartTask("EXCHANGE", "GET_MAILBOX_ADDRESSES", itemId);
TaskManager.ItemId = itemId;
try try
{ {
@ -2060,8 +2041,7 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck; if (accountCheck < 0) return accountCheck;
// place log record // place log record
TaskManager.StartTask("EXCHANGE", "ADD_MAILBOX_ADDRESS"); TaskManager.StartTask("EXCHANGE", "ADD_MAILBOX_ADDRESS", itemId);
TaskManager.ItemId = itemId;
try try
{ {
@ -2123,8 +2103,7 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck; if (accountCheck < 0) return accountCheck;
// place log record // place log record
TaskManager.StartTask("EXCHANGE", "SET_PRIMARY_MAILBOX_ADDRESS"); TaskManager.StartTask("EXCHANGE", "SET_PRIMARY_MAILBOX_ADDRESS", itemId);
TaskManager.ItemId = itemId;
try try
{ {
@ -2183,8 +2162,7 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck; if (accountCheck < 0) return accountCheck;
// place log record // place log record
TaskManager.StartTask("EXCHANGE", "DELETE_MAILBOX_ADDRESSES"); TaskManager.StartTask("EXCHANGE", "DELETE_MAILBOX_ADDRESSES", itemId);
TaskManager.ItemId = itemId;
try try
{ {
@ -2238,8 +2216,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion #endregion
// place log record // place log record
TaskManager.StartTask("EXCHANGE", "GET_MAILBOX_MAILFLOW"); TaskManager.StartTask("EXCHANGE", "GET_MAILBOX_MAILFLOW", itemId);
TaskManager.ItemId = itemId;
try try
{ {
@ -2278,8 +2255,7 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck; if (accountCheck < 0) return accountCheck;
// place log record // place log record
TaskManager.StartTask("EXCHANGE", "UPDATE_MAILBOX_MAILFLOW"); TaskManager.StartTask("EXCHANGE", "UPDATE_MAILBOX_MAILFLOW", itemId);
TaskManager.ItemId = itemId;
try try
{ {
@ -2331,8 +2307,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion #endregion
// place log record // place log record
TaskManager.StartTask("EXCHANGE", "GET_MAILBOX_ADVANCED"); TaskManager.StartTask("EXCHANGE", "GET_MAILBOX_ADVANCED", itemId);
TaskManager.ItemId = itemId;
try try
{ {
@ -2368,8 +2343,7 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck; if (accountCheck < 0) return accountCheck;
// place log record // place log record
TaskManager.StartTask("EXCHANGE", "UPDATE_MAILBOX_GENERAL"); TaskManager.StartTask("EXCHANGE", "UPDATE_MAILBOX_GENERAL", itemId);
TaskManager.ItemId = itemId;
try try
{ {
@ -2539,8 +2513,7 @@ namespace WebsitePanel.EnterpriseServer
public static ExchangeMailbox GetMailboxPermissions(int itemId, int accountId) public static ExchangeMailbox GetMailboxPermissions(int itemId, int accountId)
{ {
// place log record // place log record
TaskManager.StartTask("EXCHANGE", "GET_MAILBOX_PERMISSIONS"); TaskManager.StartTask("EXCHANGE", "GET_MAILBOX_PERMISSIONS", itemId);
TaskManager.ItemId = itemId;
try try
{ {
@ -2576,8 +2549,7 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck; if (accountCheck < 0) return accountCheck;
// place log record // place log record
TaskManager.StartTask("EXCHANGE", "SET_MAILBOX_PERMISSIONS"); TaskManager.StartTask("EXCHANGE", "SET_MAILBOX_PERMISSIONS", itemId);
TaskManager.ItemId = itemId;
try try
{ {
@ -2625,8 +2597,7 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck; if (accountCheck < 0) return accountCheck;
// place log record // place log record
TaskManager.StartTask("EXCHANGE", "SET_MAILBOXPLAN"); TaskManager.StartTask("EXCHANGE", "SET_MAILBOXPLAN", itemId);
TaskManager.ItemId = itemId;
try try
{ {
@ -2736,8 +2707,7 @@ namespace WebsitePanel.EnterpriseServer
public static List<ExchangeMailboxPlan> GetExchangeMailboxPlans(int itemId) public static List<ExchangeMailboxPlan> GetExchangeMailboxPlans(int itemId)
{ {
// place log record // place log record
TaskManager.StartTask("EXCHANGE", "GET_EXCHANGE_MAILBOXPLANS"); TaskManager.StartTask("EXCHANGE", "GET_EXCHANGE_MAILBOXPLANS", itemId);
TaskManager.ItemId = itemId;
try try
{ {
@ -2819,8 +2789,7 @@ namespace WebsitePanel.EnterpriseServer
{ {
// place log record // place log record
TaskManager.StartTask("EXCHANGE", "GET_EXCHANGE_MAILBOXPLAN"); TaskManager.StartTask("EXCHANGE", "GET_EXCHANGE_MAILBOXPLAN", mailboxPlanId);
TaskManager.ItemId = mailboxPlanId;
try try
{ {
@ -2840,8 +2809,7 @@ namespace WebsitePanel.EnterpriseServer
public static int AddExchangeMailboxPlan(int itemID, ExchangeMailboxPlan mailboxPlan) public static int AddExchangeMailboxPlan(int itemID, ExchangeMailboxPlan mailboxPlan)
{ {
// place log record // place log record
TaskManager.StartTask("EXCHANGE", "ADD_EXCHANGE_MAILBOXPLAN"); TaskManager.StartTask("EXCHANGE", "ADD_EXCHANGE_MAILBOXPLAN", itemID);
TaskManager.ItemId = itemID;
try try
{ {
@ -2910,8 +2878,7 @@ namespace WebsitePanel.EnterpriseServer
public static int UpdateExchangeMailboxPlan(int itemID, ExchangeMailboxPlan mailboxPlan) public static int UpdateExchangeMailboxPlan(int itemID, ExchangeMailboxPlan mailboxPlan)
{ {
// place log record // place log record
TaskManager.StartTask("EXCHANGE", "UPDATE_EXCHANGE_MAILBOXPLAN"); TaskManager.StartTask("EXCHANGE", "UPDATE_EXCHANGE_MAILBOXPLAN", itemID);
TaskManager.ItemId = itemID;
try try
{ {
@ -2983,8 +2950,7 @@ namespace WebsitePanel.EnterpriseServer
public static int DeleteExchangeMailboxPlan(int itemID, int mailboxPlanId) public static int DeleteExchangeMailboxPlan(int itemID, int mailboxPlanId)
{ {
TaskManager.StartTask("EXCHANGE", "DELETE_EXCHANGE_MAILBOXPLAN"); TaskManager.StartTask("EXCHANGE", "DELETE_EXCHANGE_MAILBOXPLAN", itemID);
TaskManager.ItemId = itemID;
try try
{ {
@ -3005,8 +2971,7 @@ namespace WebsitePanel.EnterpriseServer
public static void SetOrganizationDefaultExchangeMailboxPlan(int itemId, int mailboxPlanId) public static void SetOrganizationDefaultExchangeMailboxPlan(int itemId, int mailboxPlanId)
{ {
TaskManager.StartTask("EXCHANGE", "SET_EXCHANGE_MAILBOXPLAN"); TaskManager.StartTask("EXCHANGE", "SET_EXCHANGE_MAILBOXPLAN", itemId);
TaskManager.ItemId = itemId;
try try
{ {
@ -3046,8 +3011,7 @@ namespace WebsitePanel.EnterpriseServer
return BusinessErrorCodes.ERROR_EXCHANGE_CONTACTS_QUOTA_LIMIT; return BusinessErrorCodes.ERROR_EXCHANGE_CONTACTS_QUOTA_LIMIT;
// place log record // place log record
TaskManager.StartTask("EXCHANGE", "CREATE_CONTACT"); TaskManager.StartTask("EXCHANGE", "CREATE_CONTACT", itemId);
TaskManager.ItemId = itemId;
try try
{ {
@ -3114,8 +3078,7 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck; if (accountCheck < 0) return accountCheck;
// place log record // place log record
TaskManager.StartTask("EXCHANGE", "DELETE_CONTACT"); TaskManager.StartTask("EXCHANGE", "DELETE_CONTACT", itemId);
TaskManager.ItemId = itemId;
try try
{ {
@ -3170,8 +3133,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion #endregion
// place log record // place log record
TaskManager.StartTask("EXCHANGE", "GET_CONTACT_GENERAL"); TaskManager.StartTask("EXCHANGE", "GET_CONTACT_GENERAL", itemId);
TaskManager.ItemId = itemId;
try try
{ {
@ -3211,8 +3173,7 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck; if (accountCheck < 0) return accountCheck;
// place log record // place log record
TaskManager.StartTask("EXCHANGE", "UPDATE_CONTACT_GENERAL"); TaskManager.StartTask("EXCHANGE", "UPDATE_CONTACT_GENERAL", itemId);
TaskManager.ItemId = itemId;
try try
{ {
@ -3292,8 +3253,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion #endregion
// place log record // place log record
TaskManager.StartTask("EXCHANGE", "GET_CONTACT_MAILFLOW"); TaskManager.StartTask("EXCHANGE", "GET_CONTACT_MAILFLOW", itemId);
TaskManager.ItemId = itemId;
try try
{ {
@ -3331,8 +3291,7 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck; if (accountCheck < 0) return accountCheck;
// place log record // place log record
TaskManager.StartTask("EXCHANGE", "UPDATE_CONTACT_MAILFLOW"); TaskManager.StartTask("EXCHANGE", "UPDATE_CONTACT_MAILFLOW", itemId);
TaskManager.ItemId = itemId;
try try
{ {
@ -3384,8 +3343,7 @@ namespace WebsitePanel.EnterpriseServer
return BusinessErrorCodes.ERROR_EXCHANGE_DLISTS_QUOTA_LIMIT; return BusinessErrorCodes.ERROR_EXCHANGE_DLISTS_QUOTA_LIMIT;
// place log record // place log record
TaskManager.StartTask("EXCHANGE", "CREATE_DISTR_LIST"); TaskManager.StartTask("EXCHANGE", "CREATE_DISTR_LIST", itemId);
TaskManager.ItemId = itemId;
try try
{ {
@ -3465,8 +3423,7 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck; if (accountCheck < 0) return accountCheck;
// place log record // place log record
TaskManager.StartTask("EXCHANGE", "DELETE_DISTR_LIST"); TaskManager.StartTask("EXCHANGE", "DELETE_DISTR_LIST", itemId);
TaskManager.ItemId = itemId;
try try
{ {
@ -3520,8 +3477,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion #endregion
// place log record // place log record
TaskManager.StartTask("EXCHANGE", "GET_DISTR_LIST_GENERAL"); TaskManager.StartTask("EXCHANGE", "GET_DISTR_LIST_GENERAL", itemId);
TaskManager.ItemId = itemId;
try try
{ {
@ -3558,8 +3514,7 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck; if (accountCheck < 0) return accountCheck;
// place log record // place log record
TaskManager.StartTask("EXCHANGE", "UPDATE_DISTR_LIST_GENERAL"); TaskManager.StartTask("EXCHANGE", "UPDATE_DISTR_LIST_GENERAL", itemId);
TaskManager.ItemId = itemId;
try try
{ {
@ -3621,8 +3576,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion #endregion
// place log record // place log record
TaskManager.StartTask("EXCHANGE", "GET_DISTR_LIST_MAILFLOW"); TaskManager.StartTask("EXCHANGE", "GET_DISTR_LIST_MAILFLOW", itemId);
TaskManager.ItemId = itemId;
try try
{ {
@ -3660,8 +3614,7 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck; if (accountCheck < 0) return accountCheck;
// place log record // place log record
TaskManager.StartTask("EXCHANGE", "UPDATE_DISTR_LIST_MAILFLOW"); TaskManager.StartTask("EXCHANGE", "UPDATE_DISTR_LIST_MAILFLOW", itemId);
TaskManager.ItemId = itemId;
try try
{ {
@ -3707,8 +3660,7 @@ namespace WebsitePanel.EnterpriseServer
public static ExchangeEmailAddress[] GetDistributionListEmailAddresses(int itemId, int accountId) public static ExchangeEmailAddress[] GetDistributionListEmailAddresses(int itemId, int accountId)
{ {
// place log record // place log record
TaskManager.StartTask("EXCHANGE", "GET_DISTR_LIST_ADDRESSES"); TaskManager.StartTask("EXCHANGE", "GET_DISTR_LIST_ADDRESSES", itemId);
TaskManager.ItemId = itemId;
try try
{ {
@ -3731,8 +3683,7 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck; if (accountCheck < 0) return accountCheck;
// place log record // place log record
TaskManager.StartTask("EXCHANGE", "ADD_DISTR_LIST_ADDRESS"); TaskManager.StartTask("EXCHANGE", "ADD_DISTR_LIST_ADDRESS", itemId);
TaskManager.ItemId = itemId;
try try
{ {
@ -3786,8 +3737,7 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck; if (accountCheck < 0) return accountCheck;
// place log record // place log record
TaskManager.StartTask("EXCHANGE", "SET_PRIMARY_DISTR_LIST_ADDRESS"); TaskManager.StartTask("EXCHANGE", "SET_PRIMARY_DISTR_LIST_ADDRESS", itemId);
TaskManager.ItemId = itemId;
try try
{ {
@ -3839,8 +3789,7 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck; if (accountCheck < 0) return accountCheck;
// place log record // place log record
TaskManager.StartTask("EXCHANGE", "DELETE_DISTR_LIST_ADDRESSES"); TaskManager.StartTask("EXCHANGE", "DELETE_DISTR_LIST_ADDRESSES", itemId);
TaskManager.ItemId = itemId;
try try
{ {
@ -4020,8 +3969,7 @@ namespace WebsitePanel.EnterpriseServer
return BusinessErrorCodes.ERROR_EXCHANGE_PFOLDERS_QUOTA_LIMIT; return BusinessErrorCodes.ERROR_EXCHANGE_PFOLDERS_QUOTA_LIMIT;
// place log record // place log record
TaskManager.StartTask("EXCHANGE", "CREATE_PUBLIC_FOLDER"); TaskManager.StartTask("EXCHANGE", "CREATE_PUBLIC_FOLDER", itemId);
TaskManager.ItemId = itemId;
try try
{ {
@ -4128,8 +4076,7 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck; if (accountCheck < 0) return accountCheck;
// place log record // place log record
TaskManager.StartTask("EXCHANGE", "DELETE_PUBLIC_FOLDER"); TaskManager.StartTask("EXCHANGE", "DELETE_PUBLIC_FOLDER", itemId);
TaskManager.ItemId = itemId;
try try
{ {
@ -4178,8 +4125,7 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck; if (accountCheck < 0) return accountCheck;
// place log record // place log record
TaskManager.StartTask("EXCHANGE", "ENABLE_MAIL_PUBLIC_FOLDER"); TaskManager.StartTask("EXCHANGE", "ENABLE_MAIL_PUBLIC_FOLDER", itemId);
TaskManager.ItemId = itemId;
try try
{ {
@ -4245,8 +4191,7 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck; if (accountCheck < 0) return accountCheck;
// place log record // place log record
TaskManager.StartTask("EXCHANGE", "DISABLE_MAIL_PUBLIC_FOLDER"); TaskManager.StartTask("EXCHANGE", "DISABLE_MAIL_PUBLIC_FOLDER", itemId);
TaskManager.ItemId = itemId;
try try
{ {
@ -4318,8 +4263,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion #endregion
// place log record // place log record
TaskManager.StartTask("EXCHANGE", "GET_PUBLIC_FOLDER_GENERAL"); TaskManager.StartTask("EXCHANGE", "GET_PUBLIC_FOLDER_GENERAL", itemId);
TaskManager.ItemId = itemId;
try try
{ {
@ -4357,8 +4301,7 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck; if (accountCheck < 0) return accountCheck;
// place log record // place log record
TaskManager.StartTask("EXCHANGE", "UPDATE_PUBLIC_FOLDER_GENERAL"); TaskManager.StartTask("EXCHANGE", "UPDATE_PUBLIC_FOLDER_GENERAL", itemId);
TaskManager.ItemId = itemId;
try try
{ {
@ -4431,8 +4374,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion #endregion
// place log record // place log record
TaskManager.StartTask("EXCHANGE", "GET_PUBLIC_FOLDER_MAILFLOW"); TaskManager.StartTask("EXCHANGE", "GET_PUBLIC_FOLDER_MAILFLOW", itemId);
TaskManager.ItemId = itemId;
try try
{ {
@ -4470,8 +4412,7 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck; if (accountCheck < 0) return accountCheck;
// place log record // place log record
TaskManager.StartTask("EXCHANGE", "UPDATE_PUBLIC_FOLDER_MAILFLOW"); TaskManager.StartTask("EXCHANGE", "UPDATE_PUBLIC_FOLDER_MAILFLOW", itemId);
TaskManager.ItemId = itemId;
try try
{ {
@ -4511,8 +4452,7 @@ namespace WebsitePanel.EnterpriseServer
public static ExchangeEmailAddress[] GetPublicFolderEmailAddresses(int itemId, int accountId) public static ExchangeEmailAddress[] GetPublicFolderEmailAddresses(int itemId, int accountId)
{ {
// place log record // place log record
TaskManager.StartTask("EXCHANGE", "GET_PUBLIC_FOLDER_ADDRESSES"); TaskManager.StartTask("EXCHANGE", "GET_PUBLIC_FOLDER_ADDRESSES", itemId);
TaskManager.ItemId = itemId;
try try
{ {
@ -4535,8 +4475,7 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck; if (accountCheck < 0) return accountCheck;
// place log record // place log record
TaskManager.StartTask("EXCHANGE", "ADD_PUBLIC_FOLDER_ADDRESS"); TaskManager.StartTask("EXCHANGE", "ADD_PUBLIC_FOLDER_ADDRESS", itemId);
TaskManager.ItemId = itemId;
try try
{ {
@ -4587,8 +4526,7 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck; if (accountCheck < 0) return accountCheck;
// place log record // place log record
TaskManager.StartTask("EXCHANGE", "SET_PRIMARY_PUBLIC_FOLDER_ADDRESS"); TaskManager.StartTask("EXCHANGE", "SET_PRIMARY_PUBLIC_FOLDER_ADDRESS", itemId);
TaskManager.ItemId = itemId;
try try
{ {
@ -4636,8 +4574,7 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck; if (accountCheck < 0) return accountCheck;
// place log record // place log record
TaskManager.StartTask("EXCHANGE", "DELETE_PUBLIC_FOLDER_ADDRESSES"); TaskManager.StartTask("EXCHANGE", "DELETE_PUBLIC_FOLDER_ADDRESSES", itemId);
TaskManager.ItemId = itemId;
try try
{ {
@ -4817,8 +4754,7 @@ namespace WebsitePanel.EnterpriseServer
public static ExchangeMobileDevice[] GetMobileDevices(int itemId, int accountId) public static ExchangeMobileDevice[] GetMobileDevices(int itemId, int accountId)
{ {
// place log record // place log record
TaskManager.StartTask("EXCHANGE", "GET_MOBILE_DEVICES"); TaskManager.StartTask("EXCHANGE", "GET_MOBILE_DEVICES", itemId);
TaskManager.ItemId = itemId;
try try
{ {
@ -4848,8 +4784,7 @@ namespace WebsitePanel.EnterpriseServer
public static ExchangeMobileDevice GetMobileDevice(int itemId, string deviceId) public static ExchangeMobileDevice GetMobileDevice(int itemId, string deviceId)
{ {
// place log record // place log record
TaskManager.StartTask("EXCHANGE", "GET_MOBILE_DEVICE"); TaskManager.StartTask("EXCHANGE", "GET_MOBILE_DEVICE", itemId);
TaskManager.ItemId = itemId;
try try
{ {
@ -4876,8 +4811,7 @@ namespace WebsitePanel.EnterpriseServer
public static void WipeDataFromDevice(int itemId, string deviceId) public static void WipeDataFromDevice(int itemId, string deviceId)
{ {
// place log record // place log record
TaskManager.StartTask("EXCHANGE", "WIPE_DATA_FROM_DEVICE"); TaskManager.StartTask("EXCHANGE", "WIPE_DATA_FROM_DEVICE", itemId);
TaskManager.ItemId = itemId;
try try
{ {
@ -4904,8 +4838,7 @@ namespace WebsitePanel.EnterpriseServer
public static void CancelRemoteWipeRequest(int itemId, string deviceId) public static void CancelRemoteWipeRequest(int itemId, string deviceId)
{ {
// place log record // place log record
TaskManager.StartTask("EXCHANGE", "CANCEL_REMOTE_WIPE_REQUEST"); TaskManager.StartTask("EXCHANGE", "CANCEL_REMOTE_WIPE_REQUEST", itemId);
TaskManager.ItemId = itemId;
try try
{ {
@ -4932,8 +4865,7 @@ namespace WebsitePanel.EnterpriseServer
public static void RemoveDevice(int itemId, string deviceId) public static void RemoveDevice(int itemId, string deviceId)
{ {
// place log record // place log record
TaskManager.StartTask("EXCHANGE", "REMOVE_DEVICE"); TaskManager.StartTask("EXCHANGE", "REMOVE_DEVICE", itemId);
TaskManager.ItemId = itemId;
try try
{ {

View file

@ -169,8 +169,7 @@ namespace WebsitePanel.EnterpriseServer
if (packageCheck < 0) return packageCheck; if (packageCheck < 0) return packageCheck;
// place log record // place log record
TaskManager.StartTask("FILES", "UPDATE_BINARY_CONTENT", path); TaskManager.StartTask("FILES", "UPDATE_BINARY_CONTENT", path, packageId);
TaskManager.ItemId = packageId;
try try
{ {
@ -204,8 +203,7 @@ namespace WebsitePanel.EnterpriseServer
if (packageCheck < 0) return packageCheck; if (packageCheck < 0) return packageCheck;
// place log record // place log record
TaskManager.StartTask("FILES", "UPDATE_BINARY_CONTENT", path); TaskManager.StartTask("FILES", "UPDATE_BINARY_CONTENT", path, packageId);
TaskManager.ItemId = packageId;
try try
{ {
@ -260,8 +258,8 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck; if (accountCheck < 0) return accountCheck;
// place log record // place log record
TaskManager.StartTask("FILES", "DELETE_FILES"); TaskManager.StartTask("FILES", "DELETE_FILES", packageId);
TaskManager.ItemId = packageId;
if (files != null) if (files != null)
{ {
foreach (string file in files) foreach (string file in files)
@ -302,8 +300,7 @@ namespace WebsitePanel.EnterpriseServer
if (packageCheck < 0) return packageCheck; if (packageCheck < 0) return packageCheck;
// place log record // place log record
TaskManager.StartTask("FILES", "CREATE_FILE", path); TaskManager.StartTask("FILES", "CREATE_FILE", path, packageId);
TaskManager.ItemId = packageId;
try try
{ {
@ -356,8 +353,7 @@ namespace WebsitePanel.EnterpriseServer
if (packageCheck < 0) return packageCheck; if (packageCheck < 0) return packageCheck;
// place log record // place log record
TaskManager.StartTask("FILES", "CREATE_FOLDER", path); TaskManager.StartTask("FILES", "CREATE_FOLDER", path, packageId);
TaskManager.ItemId = packageId;
try try
{ {
@ -396,8 +392,7 @@ namespace WebsitePanel.EnterpriseServer
if (!DirectoryExists(packageId, destFolder)) return BusinessErrorCodes.ERROR_FILE_DEST_FOLDER_NONEXISTENT; if (!DirectoryExists(packageId, destFolder)) return BusinessErrorCodes.ERROR_FILE_DEST_FOLDER_NONEXISTENT;
// place log record // place log record
TaskManager.StartTask("FILES", "COPY_FILES"); TaskManager.StartTask("FILES", "COPY_FILES", packageId);
TaskManager.ItemId = packageId;
TaskManager.WriteParameter("Destination folder", destFolder); TaskManager.WriteParameter("Destination folder", destFolder);
if (files != null) if (files != null)
{ {
@ -455,8 +450,8 @@ namespace WebsitePanel.EnterpriseServer
if (!DirectoryExists(packageId, destFolder)) return BusinessErrorCodes.ERROR_FILE_DEST_FOLDER_NONEXISTENT; if (!DirectoryExists(packageId, destFolder)) return BusinessErrorCodes.ERROR_FILE_DEST_FOLDER_NONEXISTENT;
// place log record // place log record
TaskManager.StartTask("FILES", "MOVE_FILES"); TaskManager.StartTask("FILES", "MOVE_FILES", packageId);
TaskManager.ItemId = packageId;
TaskManager.WriteParameter("Destination folder", destFolder); TaskManager.WriteParameter("Destination folder", destFolder);
if (files != null) if (files != null)
{ {
@ -514,8 +509,8 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck; if (accountCheck < 0) return accountCheck;
// place log record // place log record
TaskManager.StartTask("FILES", "RENAME_FILE", oldPath); TaskManager.StartTask("FILES", "RENAME_FILE", oldPath, packageId);
TaskManager.ItemId = packageId;
TaskManager.WriteParameter("New name", newPath); TaskManager.WriteParameter("New name", newPath);
try try
@ -551,8 +546,8 @@ namespace WebsitePanel.EnterpriseServer
if (packageCheck < 0) return null; if (packageCheck < 0) return null;
// place log record // place log record
TaskManager.StartTask("FILES", "UNZIP_FILES"); TaskManager.StartTask("FILES", "UNZIP_FILES", packageId);
TaskManager.ItemId = packageId;
if (files != null) if (files != null)
{ {
foreach (string file in files) foreach (string file in files)
@ -596,8 +591,8 @@ namespace WebsitePanel.EnterpriseServer
if (packageCheck < 0) return packageCheck; if (packageCheck < 0) return packageCheck;
// place log record // place log record
TaskManager.StartTask("FILES", "ZIP_FILES", archivePath); TaskManager.StartTask("FILES", "ZIP_FILES", archivePath, packageId);
TaskManager.ItemId = packageId;
if (files != null) if (files != null)
{ {
foreach (string file in files) foreach (string file in files)
@ -647,8 +642,8 @@ namespace WebsitePanel.EnterpriseServer
if (packageCheck < 0) return packageCheck; if (packageCheck < 0) return packageCheck;
// place log record // place log record
TaskManager.StartTask("FILES", "ZIP_FILES", archivePath); TaskManager.StartTask("FILES", "ZIP_FILES", archivePath, packageId);
TaskManager.ItemId = packageId;
if (files != null) if (files != null)
{ {
foreach (string file in files) foreach (string file in files)
@ -706,8 +701,7 @@ namespace WebsitePanel.EnterpriseServer
if (packageCheck < 0) return packageCheck; if (packageCheck < 0) return packageCheck;
// place log record // place log record
TaskManager.StartTask("FILES", "CREATE_ACCESS_DATABASE", dbPath); TaskManager.StartTask("FILES", "CREATE_ACCESS_DATABASE", dbPath, packageId);
TaskManager.ItemId = packageId;
try try
{ {
@ -737,8 +731,7 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck; if (accountCheck < 0) return accountCheck;
// place log record // place log record
TaskManager.StartTask("SPACE", "CALCULATE_DISKSPACE"); TaskManager.StartTask("SPACE", "CALCULATE_DISKSPACE", packageId);
TaskManager.ItemId = packageId;
try try
{ {
@ -813,8 +806,7 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck; if (accountCheck < 0) return accountCheck;
// place log record // place log record
TaskManager.StartTask("FILES", "SET_PERMISSIONS", path); TaskManager.StartTask("FILES", "SET_PERMISSIONS", path, packageId);
TaskManager.ItemId = packageId;
try try
{ {
@ -925,8 +917,7 @@ namespace WebsitePanel.EnterpriseServer
if (packageCheck < 0) return packageCheck; if (packageCheck < 0) return packageCheck;
// place log record // place log record
TaskManager.StartTask("FILES", "SET_QUOTA_ON_FOLDER", path); TaskManager.StartTask("FILES", "SET_QUOTA_ON_FOLDER", path, packageId);
TaskManager.ItemId = packageId;
try try
{ {
@ -1046,8 +1037,7 @@ namespace WebsitePanel.EnterpriseServer
if (packageCheck < 0) return packageCheck; if (packageCheck < 0) return packageCheck;
// place log record // place log record
TaskManager.StartTask("FILES", "DELETE_DIRECTORY_RECURSIVE", rootPath); TaskManager.StartTask("FILES", "DELETE_DIRECTORY_RECURSIVE", rootPath, packageId);
TaskManager.ItemId = packageId;
try try
{ {

View file

@ -215,8 +215,8 @@ namespace WebsitePanel.EnterpriseServer
if (packageCheck < 0) return packageCheck; if (packageCheck < 0) return packageCheck;
// place log record // place log record
TaskManager.StartTask("FTP_ACCOUNT", "UPDATE", origItem.Name); TaskManager.StartTask("FTP_ACCOUNT", "UPDATE", origItem.Name, item.Id);
TaskManager.ItemId = item.Id;
TaskManager.WriteParameter("Folder", item.Folder); TaskManager.WriteParameter("Folder", item.Folder);
TaskManager.WriteParameter("CanRead", item.CanRead); TaskManager.WriteParameter("CanRead", item.CanRead);
TaskManager.WriteParameter("CanWrite", item.CanWrite); TaskManager.WriteParameter("CanWrite", item.CanWrite);
@ -279,8 +279,7 @@ namespace WebsitePanel.EnterpriseServer
return BusinessErrorCodes.ERROR_FTP_PACKAGE_ITEM_NOT_FOUND; return BusinessErrorCodes.ERROR_FTP_PACKAGE_ITEM_NOT_FOUND;
// place log record // place log record
TaskManager.StartTask("FTP_ACCOUNT", "DELETE", origItem.Name); TaskManager.StartTask("FTP_ACCOUNT", "DELETE", origItem.Name, itemId);
TaskManager.ItemId = itemId;
try try
{ {

View file

@ -419,8 +419,7 @@ namespace WebsitePanel.EnterpriseServer.Code.HostedSolution
if (accountCheck < 0) return accountCheck; if (accountCheck < 0) return accountCheck;
// place log record // place log record
TaskManager.StartTask("LYNC", "DELETE_ORG"); TaskManager.StartTask("LYNC", "DELETE_ORG", itemId);
TaskManager.ItemId = itemId;
try try
{ {
@ -622,8 +621,7 @@ namespace WebsitePanel.EnterpriseServer.Code.HostedSolution
public static List<LyncUserPlan> GetLyncUserPlans(int itemId) public static List<LyncUserPlan> GetLyncUserPlans(int itemId)
{ {
// place log record // place log record
TaskManager.StartTask("LYNC", "GET_LYNC_LYNCUSERPLANS"); TaskManager.StartTask("LYNC", "GET_LYNC_LYNCUSERPLANS", itemId);
TaskManager.ItemId = itemId;
try try
{ {
@ -705,8 +703,7 @@ namespace WebsitePanel.EnterpriseServer.Code.HostedSolution
{ {
// place log record // place log record
TaskManager.StartTask("LYNC", "GET_LYNC_LYNCUSERPLAN"); TaskManager.StartTask("LYNC", "GET_LYNC_LYNCUSERPLAN", lyncUserPlanId);
TaskManager.ItemId = lyncUserPlanId;
try try
{ {
@ -729,8 +726,7 @@ namespace WebsitePanel.EnterpriseServer.Code.HostedSolution
if (accountCheck < 0) return accountCheck; if (accountCheck < 0) return accountCheck;
// place log record // place log record
TaskManager.StartTask("LYNC", "ADD_LYNC_LYNCUSERPLAN"); TaskManager.StartTask("LYNC", "ADD_LYNC_LYNCUSERPLAN", itemID);
TaskManager.ItemId = itemID;
try try
{ {
@ -770,8 +766,7 @@ namespace WebsitePanel.EnterpriseServer.Code.HostedSolution
if (accountCheck < 0) return accountCheck; if (accountCheck < 0) return accountCheck;
// place log record // place log record
TaskManager.StartTask("LYNC", "ADD_LYNC_LYNCUSERPLAN"); TaskManager.StartTask("LYNC", "ADD_LYNC_LYNCUSERPLAN", itemID);
TaskManager.ItemId = itemID;
try try
{ {
@ -809,8 +804,7 @@ namespace WebsitePanel.EnterpriseServer.Code.HostedSolution
int accountCheck = SecurityContext.CheckAccount(DemandAccount.NotDemo | DemandAccount.IsActive); int accountCheck = SecurityContext.CheckAccount(DemandAccount.NotDemo | DemandAccount.IsActive);
if (accountCheck < 0) return accountCheck; if (accountCheck < 0) return accountCheck;
TaskManager.StartTask("LYNC", "DELETE_LYNC_LYNCPLAN"); TaskManager.StartTask("LYNC", "DELETE_LYNC_LYNCPLAN", itemID);
TaskManager.ItemId = itemID;
try try
{ {
@ -834,8 +828,7 @@ namespace WebsitePanel.EnterpriseServer.Code.HostedSolution
int accountCheck = SecurityContext.CheckAccount(DemandAccount.NotDemo | DemandAccount.IsActive); int accountCheck = SecurityContext.CheckAccount(DemandAccount.NotDemo | DemandAccount.IsActive);
if (accountCheck < 0) return accountCheck; if (accountCheck < 0) return accountCheck;
TaskManager.StartTask("LYNC", "SET_LYNC_LYNCUSERPLAN"); TaskManager.StartTask("LYNC", "SET_LYNC_LYNCUSERPLAN", itemId);
TaskManager.ItemId = itemId;
try try
{ {
@ -861,8 +854,7 @@ namespace WebsitePanel.EnterpriseServer.Code.HostedSolution
public static LyncFederationDomain[] GetFederationDomains(int itemId) public static LyncFederationDomain[] GetFederationDomains(int itemId)
{ {
// place log record // place log record
TaskManager.StartTask("LYNC", "GET_LYNC_FEDERATIONDOMAINS"); TaskManager.StartTask("LYNC", "GET_LYNC_FEDERATIONDOMAINS", itemId);
TaskManager.ItemId = itemId;
LyncFederationDomain[] lyncFederationDomains = null; LyncFederationDomain[] lyncFederationDomains = null;
@ -889,10 +881,11 @@ namespace WebsitePanel.EnterpriseServer.Code.HostedSolution
public static LyncUserResult AddFederationDomain(int itemId, string domainName, string proxyFqdn) public static LyncUserResult AddFederationDomain(int itemId, string domainName, string proxyFqdn)
{ {
LyncUserResult res = TaskManager.StartResultTask<LyncUserResult>("LYNC", "ADD_LYNC_FEDERATIONDOMAIN"); IList<BackgroundTaskParameter> parameters = new List<BackgroundTaskParameter>();
TaskManager.ItemId = itemId; parameters.Add(new BackgroundTaskParameter("domainName", domainName));
TaskManager.TaskParameters["domainName"] = domainName; parameters.Add(new BackgroundTaskParameter("proxyFqdn", proxyFqdn));
TaskManager.TaskParameters["proxyFqdn"] = proxyFqdn;
LyncUserResult res = TaskManager.StartResultTask<LyncUserResult>("LYNC", "ADD_LYNC_FEDERATIONDOMAIN", itemId, parameters);
int accountCheck = SecurityContext.CheckAccount(DemandAccount.NotDemo | DemandAccount.IsActive); 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) public static LyncUserResult RemoveFederationDomain(int itemId, string domainName)
{ {
LyncUserResult res = TaskManager.StartResultTask<LyncUserResult>("LYNC", "REMOVE_LYNC_FEDERATIONDOMAIN"); LyncUserResult res = TaskManager.StartResultTask<LyncUserResult>("LYNC", "REMOVE_LYNC_FEDERATIONDOMAIN", itemId, new BackgroundTaskParameter("domainName", domainName));
TaskManager.ItemId = itemId;
TaskManager.TaskParameters["domainName"] = domainName;
int accountCheck = SecurityContext.CheckAccount(DemandAccount.NotDemo | DemandAccount.IsActive); int accountCheck = SecurityContext.CheckAccount(DemandAccount.NotDemo | DemandAccount.IsActive);

View file

@ -291,9 +291,11 @@ namespace WebsitePanel.EnterpriseServer
return errorCode; return errorCode;
// place log record // place log record
TaskManager.StartTask("ORGANIZATION", "CREATE_ORG", organizationName); IList<BackgroundTaskParameter> parameters = new List<BackgroundTaskParameter>();
TaskManager.TaskParameters["Organization ID"] = organizationId; parameters.Add(new BackgroundTaskParameter("Organization ID", organizationId));
TaskManager.TaskParameters["DomainName"] = domainName; parameters.Add(new BackgroundTaskParameter("DomainName", domainName));
TaskManager.StartTask("ORGANIZATION", "CREATE_ORG", organizationName, parameters);
try try
{ {
@ -411,9 +413,7 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck; if (accountCheck < 0) return accountCheck;
// place log record // place log record
TaskManager.StartTask("ORGANIZATION", "DELETE_DOMAIN"); TaskManager.StartTask("ORGANIZATION", "DELETE_DOMAIN", itemId, new BackgroundTaskParameter("Domain ID", domainId));
TaskManager.TaskParameters["Domain ID"] = domainId;
TaskManager.ItemId = itemId;
try try
{ {
@ -586,8 +586,7 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck; if (accountCheck < 0) return accountCheck;
// place log record // place log record
TaskManager.StartTask("ORGANIZATION", "DELETE_ORG"); TaskManager.StartTask("ORGANIZATION", "DELETE_ORG", itemId);
TaskManager.ItemId = itemId;
try try
{ {
@ -869,8 +868,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion #endregion
// place log record // place log record
TaskManager.StartTask("ORGANIZATION", "GET_ORG_STATS"); TaskManager.StartTask("ORGANIZATION", "GET_ORG_STATS", itemId);
TaskManager.ItemId = itemId;
try try
{ {
@ -1022,8 +1020,7 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck; if (accountCheck < 0) return accountCheck;
// place log record // place log record
TaskManager.StartTask("ORGANIZATION", "CHANGE_DOMAIN_TYPE", domainId); TaskManager.StartTask("ORGANIZATION", "CHANGE_DOMAIN_TYPE", domainId, itemId);
TaskManager.ItemId = itemId;
try try
{ {
@ -1060,8 +1057,7 @@ namespace WebsitePanel.EnterpriseServer
return BusinessErrorCodes.ERROR_EXCHANGE_DOMAINS_QUOTA_LIMIT; return BusinessErrorCodes.ERROR_EXCHANGE_DOMAINS_QUOTA_LIMIT;
// place log record // place log record
TaskManager.StartTask("ORGANIZATION", "ADD_DOMAIN", domainName); TaskManager.StartTask("ORGANIZATION", "ADD_DOMAIN", domainName, itemId);
TaskManager.ItemId = itemId;
try try
{ {
@ -1291,8 +1287,8 @@ namespace WebsitePanel.EnterpriseServer
// place log record // place log record
TaskManager.StartTask("ORGANIZATION", "CREATE_USER"); TaskManager.StartTask("ORGANIZATION", "CREATE_USER", itemId);
TaskManager.ItemId = itemId;
TaskManager.Write("Organization ID :" + itemId); TaskManager.Write("Organization ID :" + itemId);
TaskManager.Write("name :" + name); TaskManager.Write("name :" + name);
TaskManager.Write("domain :" + domain); TaskManager.Write("domain :" + domain);
@ -1414,8 +1410,8 @@ namespace WebsitePanel.EnterpriseServer
// place log record // place log record
TaskManager.StartTask("ORGANIZATION", "IMPORT_USER"); TaskManager.StartTask("ORGANIZATION", "IMPORT_USER", itemId);
TaskManager.ItemId = itemId;
TaskManager.Write("Organization ID :" + itemId); TaskManager.Write("Organization ID :" + itemId);
TaskManager.Write("account :" + accountName); TaskManager.Write("account :" + accountName);
TaskManager.Write("name :" + name); TaskManager.Write("name :" + name);
@ -1572,8 +1568,7 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck; if (accountCheck < 0) return accountCheck;
// place log record // place log record
TaskManager.StartTask("ORGANIZATION", "DELETE_USER"); TaskManager.StartTask("ORGANIZATION", "DELETE_USER", itemId);
TaskManager.ItemId = itemId;
try try
{ {
@ -1676,8 +1671,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion #endregion
// place log record // place log record
TaskManager.StartTask("ORGANIZATION", "GET_USER_GENERAL"); TaskManager.StartTask("ORGANIZATION", "GET_USER_GENERAL", itemId);
TaskManager.ItemId = itemId;
OrganizationUser account = null; OrganizationUser account = null;
Organization org = null; Organization org = null;
@ -1740,8 +1734,7 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck; if (accountCheck < 0) return accountCheck;
// place log record // place log record
TaskManager.StartTask("ORGANIZATION", "UPDATE_USER_GENERAL"); TaskManager.StartTask("ORGANIZATION", "UPDATE_USER_GENERAL", itemId);
TaskManager.ItemId = itemId;
try try
{ {
@ -1832,8 +1825,7 @@ namespace WebsitePanel.EnterpriseServer
// place log record // place log record
TaskManager.StartTask("ORGANIZATION", "SET_USER_USERPRINCIPALNAME"); TaskManager.StartTask("ORGANIZATION", "SET_USER_USERPRINCIPALNAME", itemId);
TaskManager.ItemId = itemId;
try try
{ {
@ -1931,8 +1923,7 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck; if (accountCheck < 0) return accountCheck;
// place log record // place log record
TaskManager.StartTask("ORGANIZATION", "SET_USER_PASSWORD"); TaskManager.StartTask("ORGANIZATION", "SET_USER_PASSWORD", itemId);
TaskManager.ItemId = itemId;
try try
{ {
@ -2048,8 +2039,7 @@ namespace WebsitePanel.EnterpriseServer
public static int GetAccountIdByUserPrincipalName(int itemId, string userPrincipalName) public static int GetAccountIdByUserPrincipalName(int itemId, string userPrincipalName)
{ {
// place log record // place log record
TaskManager.StartTask("ORGANIZATION", "GET_ACCOUNT_BYUPN"); TaskManager.StartTask("ORGANIZATION", "GET_ACCOUNT_BYUPN", itemId);
TaskManager.ItemId = itemId;
int accounId = -1; int accounId = -1;

View file

@ -191,8 +191,7 @@ namespace WebsitePanel.EnterpriseServer
return BusinessErrorCodes.ERROR_MAIL_ACCOUNT_MAX_MAILBOX_SIZE_LIMIT; return BusinessErrorCodes.ERROR_MAIL_ACCOUNT_MAX_MAILBOX_SIZE_LIMIT;
// place log record // place log record
TaskManager.StartTask("MAIL_ACCOUNT", "UPDATE", origItem.Name); TaskManager.StartTask("MAIL_ACCOUNT", "UPDATE", origItem.Name, item.Id);
TaskManager.ItemId = item.Id;
try try
{ {
@ -245,8 +244,7 @@ namespace WebsitePanel.EnterpriseServer
return BusinessErrorCodes.ERROR_MAIL_ACCOUNTS_PACKAGE_ITEM_NOT_FOUND; return BusinessErrorCodes.ERROR_MAIL_ACCOUNTS_PACKAGE_ITEM_NOT_FOUND;
// place log record // place log record
TaskManager.StartTask("MAIL_ACCOUNT", "DELETE", origItem.Name); TaskManager.StartTask("MAIL_ACCOUNT", "DELETE", origItem.Name, itemId);
TaskManager.ItemId = itemId;
try try
{ {
@ -432,8 +430,7 @@ namespace WebsitePanel.EnterpriseServer
if (packageCheck < 0) return packageCheck; if (packageCheck < 0) return packageCheck;
// place log record // place log record
TaskManager.StartTask("MAIL_FORWARDING", "UPDATE", origItem.Name); TaskManager.StartTask("MAIL_FORWARDING", "UPDATE", origItem.Name, item.Id);
TaskManager.ItemId = item.Id;
try try
{ {
@ -477,8 +474,7 @@ namespace WebsitePanel.EnterpriseServer
return BusinessErrorCodes.ERROR_MAIL_FORWARDINGS_PACKAGE_ITEM_NOT_FOUND; return BusinessErrorCodes.ERROR_MAIL_FORWARDINGS_PACKAGE_ITEM_NOT_FOUND;
// place log record // place log record
TaskManager.StartTask("MAIL_FORWARDING", "DELETE", origItem.Name); TaskManager.StartTask("MAIL_FORWARDING", "DELETE", origItem.Name, itemId);
TaskManager.ItemId = itemId;
try try
{ {
@ -638,8 +634,7 @@ namespace WebsitePanel.EnterpriseServer
return BusinessErrorCodes.ERROR_MAIL_GROUPS_RECIPIENTS_LIMIT; return BusinessErrorCodes.ERROR_MAIL_GROUPS_RECIPIENTS_LIMIT;
// place log record // place log record
TaskManager.StartTask("MAIL_GROUP", "UPDATE", origItem.Name); TaskManager.StartTask("MAIL_GROUP", "UPDATE", origItem.Name, item.Id);
TaskManager.ItemId = item.Id;
try try
{ {
@ -679,8 +674,7 @@ namespace WebsitePanel.EnterpriseServer
return BusinessErrorCodes.ERROR_MAIL_GROUPS_PACKAGE_ITEM_NOT_FOUND; return BusinessErrorCodes.ERROR_MAIL_GROUPS_PACKAGE_ITEM_NOT_FOUND;
// place log record // place log record
TaskManager.StartTask("MAIL_GROUP", "DELETE", origItem.Name); TaskManager.StartTask("MAIL_GROUP", "DELETE", origItem.Name, itemId);
TaskManager.ItemId = itemId;
try try
{ {
@ -889,8 +883,7 @@ namespace WebsitePanel.EnterpriseServer
return BusinessErrorCodes.ERROR_MAIL_LISTS_RECIPIENTS_LIMIT; return BusinessErrorCodes.ERROR_MAIL_LISTS_RECIPIENTS_LIMIT;
// place log record // place log record
TaskManager.StartTask("MAIL_LIST", "UPDATE", origItem.Name); TaskManager.StartTask("MAIL_LIST", "UPDATE", origItem.Name, item.Id);
TaskManager.ItemId = item.Id;
try try
{ {
@ -938,8 +931,7 @@ namespace WebsitePanel.EnterpriseServer
return BusinessErrorCodes.ERROR_MAIL_LISTS_PACKAGE_ITEM_NOT_FOUND; return BusinessErrorCodes.ERROR_MAIL_LISTS_PACKAGE_ITEM_NOT_FOUND;
// place log record // place log record
TaskManager.StartTask("MAIL_LIST", "DELETE", origItem.Name); TaskManager.StartTask("MAIL_LIST", "DELETE", origItem.Name, itemId);
TaskManager.ItemId = itemId;
try try
{ {
@ -1073,6 +1065,7 @@ namespace WebsitePanel.EnterpriseServer
} }
TaskManager.ItemId = itemId; TaskManager.ItemId = itemId;
return itemId; return itemId;
} }
catch (Exception ex) catch (Exception ex)
@ -1101,8 +1094,7 @@ namespace WebsitePanel.EnterpriseServer
if (packageCheck < 0) return packageCheck; if (packageCheck < 0) return packageCheck;
// place log record // place log record
TaskManager.StartTask("MAIL_DOMAIN", "UPDATE", origItem.Name); TaskManager.StartTask("MAIL_DOMAIN", "UPDATE", origItem.Name, item.Id);
TaskManager.ItemId = item.Id;
// get service // get service
MailServer mail = new MailServer(); MailServer mail = new MailServer();
@ -1148,8 +1140,7 @@ namespace WebsitePanel.EnterpriseServer
return BusinessErrorCodes.ERROR_MAIL_DOMAIN_IS_NOT_EMPTY; // mail domain is not empty return BusinessErrorCodes.ERROR_MAIL_DOMAIN_IS_NOT_EMPTY; // mail domain is not empty
// place log record // place log record
TaskManager.StartTask("MAIL_DOMAIN", "DELETE", origItem.Name); TaskManager.StartTask("MAIL_DOMAIN", "DELETE", origItem.Name, itemId);
TaskManager.ItemId = itemId;
try try
{ {
@ -1222,9 +1213,8 @@ namespace WebsitePanel.EnterpriseServer
return BusinessErrorCodes.ERROR_DOMAIN_PACKAGE_ITEM_NOT_FOUND; return BusinessErrorCodes.ERROR_DOMAIN_PACKAGE_ITEM_NOT_FOUND;
// place log record // place log record
TaskManager.StartTask("MAIL_DOMAIN", "ADD_POINTER", mailDomain.Name); TaskManager.StartTask("MAIL_DOMAIN", "ADD_POINTER", mailDomain.Name, itemId, new BackgroundTaskParameter("Domain ID", domain.DomainId));
TaskManager.ItemId = itemId;
TaskManager.TaskParameters["Domain ID"] = domain.DomainId;
TaskManager.WriteParameter("Domain pointer", domain.DomainName); TaskManager.WriteParameter("Domain pointer", domain.DomainName);
try try
@ -1277,10 +1267,12 @@ namespace WebsitePanel.EnterpriseServer
return BusinessErrorCodes.ERROR_DOMAIN_PACKAGE_ITEM_NOT_FOUND; return BusinessErrorCodes.ERROR_DOMAIN_PACKAGE_ITEM_NOT_FOUND;
// place log record // place log record
TaskManager.StartTask("MAIL_DOMAIN", "DELETE_POINTER", mailDomain.Name);
TaskManager.ItemId = itemId; IList<BackgroundTaskParameter> parameters = new List<BackgroundTaskParameter>();
TaskManager.TaskParameters["Domain ID"] = domain.DomainId; parameters.Add(new BackgroundTaskParameter("Domain ID", domain.DomainId));
TaskManager.WriteParameter("Domain pointer", domain.DomainName); parameters.Add(new BackgroundTaskParameter("Domain pointer", domain.DomainName));
TaskManager.StartTask("MAIL_DOMAIN", "DELETE_POINTER", mailDomain.Name, itemId, parameters);
try try
{ {

View file

@ -191,8 +191,7 @@ namespace WebsitePanel.EnterpriseServer
if (packageCheck < 0) return packageCheck; if (packageCheck < 0) return packageCheck;
// place log record // place log record
TaskManager.StartTask("ODBC_DSN", "UPDATE", origItem.Name); TaskManager.StartTask("ODBC_DSN", "UPDATE", origItem.Name, item.Id);
TaskManager.ItemId = item.Id;
try try
{ {
@ -265,8 +264,7 @@ namespace WebsitePanel.EnterpriseServer
return BusinessErrorCodes.ERROR_OS_DSN_PACKAGE_ITEM_NOT_FOUND; return BusinessErrorCodes.ERROR_OS_DSN_PACKAGE_ITEM_NOT_FOUND;
// place log record // place log record
TaskManager.StartTask("ODBC_DSN", "DELETE", origItem.Name); TaskManager.StartTask("ODBC_DSN", "DELETE", origItem.Name, itemId);
TaskManager.ItemId = itemId;
try try
{ {
@ -316,8 +314,7 @@ namespace WebsitePanel.EnterpriseServer
ServerInfo server = ServerController.GetServerById(serverId); ServerInfo server = ServerController.GetServerById(serverId);
// place log record // place log record
TaskManager.StartTask("SERVER", "RESET_TERMINAL_SESSION", sessionId); TaskManager.StartTask("SERVER", "RESET_TERMINAL_SESSION", sessionId, serverId);
TaskManager.ItemId = serverId;
try try
{ {
@ -352,8 +349,7 @@ namespace WebsitePanel.EnterpriseServer
ServerInfo server = ServerController.GetServerById(serverId); ServerInfo server = ServerController.GetServerById(serverId);
// place log record // place log record
TaskManager.StartTask("SERVER", "TERMINATE_SYSTEM_PROCESS", pid); TaskManager.StartTask("SERVER", "TERMINATE_SYSTEM_PROCESS", pid, serverId);
TaskManager.ItemId = serverId;
try try
{ {
@ -388,8 +384,7 @@ namespace WebsitePanel.EnterpriseServer
ServerInfo server = ServerController.GetServerById(serverId); ServerInfo server = ServerController.GetServerById(serverId);
// place log record // place log record
TaskManager.StartTask("SERVER", "CHANGE_WINDOWS_SERVICE_STATUS", id); TaskManager.StartTask("SERVER", "CHANGE_WINDOWS_SERVICE_STATUS", id, serverId);
TaskManager.ItemId = serverId;
TaskManager.WriteParameter("New Status", status); TaskManager.WriteParameter("New Status", status);
try try
@ -555,8 +550,7 @@ namespace WebsitePanel.EnterpriseServer
| DemandAccount.IsActive); | DemandAccount.IsActive);
if (accountCheck < 0) return accountCheck; if (accountCheck < 0) return accountCheck;
TaskManager.StartTask("SERVER", "CLEAR_EVENT_LOG", logName); TaskManager.StartTask("SERVER", "CLEAR_EVENT_LOG", logName, serverId);
TaskManager.ItemId = serverId;
try try
{ {
@ -587,8 +581,7 @@ namespace WebsitePanel.EnterpriseServer
ServerInfo server = ServerController.GetServerById(serverId); ServerInfo server = ServerController.GetServerById(serverId);
// place log record // place log record
TaskManager.StartTask("SERVER", "REBOOT"); TaskManager.StartTask("SERVER", "REBOOT", serverId);
TaskManager.ItemId = serverId;
try try
{ {

View file

@ -617,8 +617,12 @@ namespace WebsitePanel.EnterpriseServer
} }
} }
TaskManager.ItemId = result.Result; BackgroundTask topTask = TaskController.GetTopTask();
TaskManager.TaskParameters["SendLetter"] = sendLetter;
topTask.ItemId = userId;
topTask.UpdateParamValue("SendLetter", sendLetter);
TaskController.UpdateTask(topTask);
return result; return result;
} }
@ -718,10 +722,14 @@ namespace WebsitePanel.EnterpriseServer
if (homeId < 0) if (homeId < 0)
result.Result = homeId; result.Result = homeId;
TaskManager.ItemId = result.Result; BackgroundTask topTask = TaskController.GetTopTask();
TaskManager.TaskParameters["Signup"] = signup;
TaskManager.TaskParameters["UserId"] = userId; topTask.ItemId = userId;
TaskManager.TaskParameters["SendLetter"] = sendLetter; topTask.UpdateParamValue("Signup", signup);
topTask.UpdateParamValue("UserId", userId);
topTask.UpdateParamValue("SendLetter", sendLetter);
TaskController.UpdateTask(topTask);
} }
finally finally
{ {

View file

@ -116,8 +116,7 @@ namespace WebsitePanel.EnterpriseServer
{ {
try try
{ {
TaskManager.StartTask(taskId, "BACKUP", "BACKUP", backupFileName); TaskManager.StartTask(taskId, "BACKUP", "BACKUP", backupFileName, SecurityContext.User.UserId);
TaskManager.ItemId = SecurityContext.User.UserId;
// get the list of items to backup // get the list of items to backup
TaskManager.Write("Calculate 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) catch (Exception ex)
{ {
@ -490,8 +492,7 @@ namespace WebsitePanel.EnterpriseServer
string backupFileName = (storePackageId > 0) string backupFileName = (storePackageId > 0)
? Path.GetFileName(storePackageBackupPath) : Path.GetFileName(storeServerBackupPath); ? Path.GetFileName(storePackageBackupPath) : Path.GetFileName(storeServerBackupPath);
TaskManager.StartTask(taskId, "BACKUP", "RESTORE", backupFileName); TaskManager.StartTask(taskId, "BACKUP", "RESTORE", backupFileName, SecurityContext.User.UserId);
TaskManager.ItemId = SecurityContext.User.UserId;
// create temp folder // create temp folder
string tempFolder = GetTempBackupFolder(); string tempFolder = GetTempBackupFolder();

View file

@ -171,8 +171,7 @@ namespace WebsitePanel.EnterpriseServer
{ {
PackageInfo package = PackageController.GetPackage(packageId); PackageInfo package = PackageController.GetPackage(packageId);
TaskManager.StartTask(taskId, "IMPORT", "IMPORT", package.PackageName); TaskManager.StartTask(taskId, "IMPORT", "IMPORT", package.PackageName, packageId);
TaskManager.ItemId = packageId;
TaskManager.IndicatorMaximum = items.Length; TaskManager.IndicatorMaximum = items.Length;
TaskManager.IndicatorCurrent = 0; TaskManager.IndicatorCurrent = 0;

View file

@ -46,11 +46,13 @@ namespace WebsitePanel.EnterpriseServer
// - BACKUP_NAME // - BACKUP_NAME
// - ZIP_BACKUP // - ZIP_BACKUP
string databaseGroup = (string)TaskManager.TaskParameters["DATABASE_GROUP"]; BackgroundTask topTask = TaskController.GetTopTask();
string databaseName = (string)TaskManager.TaskParameters["DATABASE_NAME"];
string backupFolder = (string)TaskManager.TaskParameters["BACKUP_FOLDER"]; string databaseGroup = (string)topTask.GetParamValue("DATABASE_GROUP");
string backupName = (string)TaskManager.TaskParameters["BACKUP_NAME"]; string databaseName = (string)topTask.GetParamValue("DATABASE_NAME");
string strZipBackup = (string)TaskManager.TaskParameters["ZIP_BACKUP"]; string backupFolder = (string)topTask.GetParamValue("BACKUP_FOLDER");
string backupName = (string)topTask.GetParamValue("BACKUP_NAME");
string strZipBackup = (string)topTask.GetParamValue("ZIP_BACKUP");
// check input parameters // check input parameters
if (String.IsNullOrEmpty(databaseName)) if (String.IsNullOrEmpty(databaseName))
@ -77,7 +79,7 @@ namespace WebsitePanel.EnterpriseServer
} }
// try to find database // try to find database
SqlDatabase item = (SqlDatabase)PackageController.GetPackageItemByName(TaskManager.PackageId, databaseGroup, SqlDatabase item = (SqlDatabase)PackageController.GetPackageItemByName(topTask.PackageId, databaseGroup,
databaseName, typeof(SqlDatabase)); databaseName, typeof(SqlDatabase));
if (item == null) if (item == null)

View file

@ -53,13 +53,16 @@ namespace WebsitePanel.EnterpriseServer
string storePackageFolder; string storePackageFolder;
string storeServerFolder; string storeServerFolder;
bool deleteTempBackup; bool deleteTempBackup;
BackgroundTask topTask = TaskController.GetTopTask();
try try
{ {
backupFileName = (string)TaskManager.TaskParameters["BACKUP_FILE_NAME"]; backupFileName = (string)topTask.GetParamValue("BACKUP_FILE_NAME");
storePackageId = Convert.ToInt32(TaskManager.TaskParameters["STORE_PACKAGE_ID"]); storePackageId = Convert.ToInt32(topTask.GetParamValue("STORE_PACKAGE_ID"));
storePackageFolder = (string)TaskManager.TaskParameters["STORE_PACKAGE_FOLDER"]; storePackageFolder = (string)topTask.GetParamValue("STORE_PACKAGE_FOLDER");
storeServerFolder = (string)TaskManager.TaskParameters["STORE_SERVER_FOLDER"]; storeServerFolder = (string)topTask.GetParamValue("STORE_SERVER_FOLDER");
deleteTempBackup = Convert.ToBoolean(TaskManager.TaskParameters["DELETE_TEMP_BACKUP"]); deleteTempBackup = Convert.ToBoolean(topTask.GetParamValue("DELETE_TEMP_BACKUP"));
} }
catch(Exception ex) catch(Exception ex)
{ {
@ -69,7 +72,7 @@ namespace WebsitePanel.EnterpriseServer
try 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. // 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, BackupController.Backup(false, "BackupTask", package.UserId, package.PackageId, 0, 0,
backupFileName, storePackageId, storePackageFolder, storeServerFolder, deleteTempBackup); backupFileName, storePackageId, storePackageFolder, storeServerFolder, deleteTempBackup);

View file

@ -45,8 +45,10 @@ namespace WebsitePanel.EnterpriseServer
public void CalculateDiskspace() public void CalculateDiskspace()
{ {
BackgroundTask topTask = TaskController.GetTopTask();
// get all space organizations recursively // get all space organizations recursively
List<Organization> items = ExchangeServerController.GetExchangeOrganizations(TaskManager.PackageId, true); List<Organization> items = ExchangeServerController.GetExchangeOrganizations(topTask.PackageId, true);
foreach (Organization item in items) foreach (Organization item in items)
{ {

View file

@ -50,8 +50,10 @@ namespace WebsitePanel.EnterpriseServer
public void CalculateBandwidth() public void CalculateBandwidth()
{ {
BackgroundTask topTask = TaskController.GetTopTask();
// get all owned packages // get all owned packages
List<PackageInfo> packages = PackageController.GetPackagePackages(TaskManager.PackageId, true); List<PackageInfo> packages = PackageController.GetPackagePackages(topTask.PackageId, true);
TaskManager.Write("Packages to calculate: " + packages.Count.ToString()); TaskManager.Write("Packages to calculate: " + packages.Count.ToString());
foreach (PackageInfo package in packages) foreach (PackageInfo package in packages)

View file

@ -51,8 +51,10 @@ namespace WebsitePanel.EnterpriseServer
public void CalculateDiskspace() public void CalculateDiskspace()
{ {
BackgroundTask topTask = TaskController.GetTopTask();
// get all owned packages // get all owned packages
List<PackageInfo> packages = PackageController.GetPackagePackages(TaskManager.PackageId, true); List<PackageInfo> packages = PackageController.GetPackagePackages(topTask.PackageId, true);
TaskManager.Write("Packages to calculate: " + packages.Count.ToString()); TaskManager.Write("Packages to calculate: " + packages.Count.ToString());
foreach (PackageInfo package in packages) foreach (PackageInfo package in packages)

View file

@ -57,17 +57,19 @@ namespace WebsitePanel.EnterpriseServer
// - MAIL_SUBJECT // - MAIL_SUBJECT
// - MAIL_BODY // - MAIL_BODY
// get input parameters BackgroundTask topTask = TaskController.GetTopTask();
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"];
bool useResponseStatus = Convert.ToBoolean(TaskManager.TaskParameters["USE_RESPONSE_STATUS"]); // get input parameters
bool useResponseContains = Convert.ToBoolean(TaskManager.TaskParameters["USE_RESPONSE_CONTAIN"]); string url = (string)topTask.GetParamValue("URL");
bool useResponseDoesntContain = Convert.ToBoolean(TaskManager.TaskParameters["USE_RESPONSE_DOESNT_CONTAIN"]); 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 // check input parameters
if (String.IsNullOrEmpty(url)) if (String.IsNullOrEmpty(url))
@ -126,11 +128,13 @@ namespace WebsitePanel.EnterpriseServer
private void SendMailMessage(string url, string message, string content) private void SendMailMessage(string url, string message, string content)
{ {
BackgroundTask topTask = TaskController.GetTopTask();
// input parameters // input parameters
string mailFrom = (string)TaskManager.TaskParameters["MAIL_FROM"]; string mailFrom = (string)topTask.GetParamValue("MAIL_FROM");
string mailTo = (string)TaskManager.TaskParameters["MAIL_TO"]; string mailTo = (string)topTask.GetParamValue("MAIL_TO");
string mailSubject = (string)TaskManager.TaskParameters["MAIL_SUBJECT"]; string mailSubject = (string)topTask.GetParamValue("MAIL_SUBJECT");
string mailBody = (string)TaskManager.TaskParameters["MAIL_BODY"]; string mailBody = (string)topTask.GetParamValue("MAIL_BODY");
if (String.IsNullOrEmpty(mailTo)) if (String.IsNullOrEmpty(mailTo))
{ {

View file

@ -46,12 +46,14 @@ namespace WebsitePanel.EnterpriseServer
// - FTP_PASSWORD // - FTP_PASSWORD
// - FTP_FOLDER // - FTP_FOLDER
BackgroundTask topTask = TaskController.GetTopTask();
// get input parameters // get input parameters
string filePath = (string)TaskManager.TaskParameters["FILE_PATH"]; string filePath = (string)topTask.GetParamValue("FILE_PATH");
string ftpServer = (string)TaskManager.TaskParameters["FTP_SERVER"]; string ftpServer = (string)topTask.GetParamValue("FTP_SERVER");
string ftpUsername = (string)TaskManager.TaskParameters["FTP_USERNAME"]; string ftpUsername = (string)topTask.GetParamValue("FTP_USERNAME");
string ftpPassword = (string)TaskManager.TaskParameters["FTP_PASSWORD"]; string ftpPassword = (string)topTask.GetParamValue("FTP_PASSWORD");
string ftpFolder = (string)TaskManager.TaskParameters["FTP_FOLDER"]; string ftpFolder = (string)topTask.GetParamValue("FTP_FOLDER");
// check input parameters // check input parameters
if (String.IsNullOrEmpty(filePath)) if (String.IsNullOrEmpty(filePath))
@ -100,7 +102,7 @@ namespace WebsitePanel.EnterpriseServer
// file to send // file to send
writer.WriteLine("binary"); writer.WriteLine("binary");
writer.WriteLine("put " + FilesController.GetFullPackagePath(TaskManager.PackageId, filePath)); writer.WriteLine("put " + FilesController.GetFullPackagePath(topTask.PackageId, filePath));
// bye // bye
writer.WriteLine("bye"); writer.WriteLine("bye");
@ -109,14 +111,14 @@ namespace WebsitePanel.EnterpriseServer
// create temp file in user space // create temp file in user space
string cmdPath = Utils.GetRandomString(10) + ".txt"; string cmdPath = Utils.GetRandomString(10) + ".txt";
string fullCmdPath = FilesController.GetFullPackagePath(TaskManager.PackageId, cmdPath); string fullCmdPath = FilesController.GetFullPackagePath(topTask.PackageId, cmdPath);
// upload batch // upload batch
FilesController.UpdateFileBinaryContent(TaskManager.PackageId, cmdPath, Encoding.UTF8.GetBytes(cmdBatch)); FilesController.UpdateFileBinaryContent(topTask.PackageId, cmdPath, Encoding.UTF8.GetBytes(cmdBatch));
// execute system command // execute system command
// load OS service // load OS service
int serviceId = PackageController.GetPackageServiceId(TaskManager.PackageId, ResourceGroups.Os); int serviceId = PackageController.GetPackageServiceId(topTask.PackageId, ResourceGroups.Os);
// load service // load service
ServiceInfo service = ServerController.GetServiceInfo(serviceId); ServiceInfo service = ServerController.GetServiceInfo(serviceId);
@ -128,7 +130,7 @@ namespace WebsitePanel.EnterpriseServer
TaskManager.Write(winServer.ExecuteSystemCommand("ftp.exe", "-s:" + fullCmdPath)); TaskManager.Write(winServer.ExecuteSystemCommand("ftp.exe", "-s:" + fullCmdPath));
// delete batch file // delete batch file
FilesController.DeleteFiles(TaskManager.PackageId, new string[] { cmdPath }); FilesController.DeleteFiles(topTask.PackageId, new string[] { cmdPath });
} }
} }
} }

View file

@ -51,16 +51,18 @@ namespace WebsitePanel.EnterpriseServer
{ {
try try
{ {
bool isExchange = Utils.ParseBool(TaskManager.TaskParameters[EXCHANGE_REPORT], false); BackgroundTask topTask = TaskController.GetTopTask();
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);
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 = EnterpriseSolutionStatisticsReport report =
ReportController.GetEnterpriseSolutionStatisticsReport(user.UserId, isExchange, isSharePoint, isCRM, ReportController.GetEnterpriseSolutionStatisticsReport(user.UserId, isExchange, isSharePoint, isCRM,
isOrganization, isLync); isOrganization, isLync);

View file

@ -44,25 +44,27 @@ namespace WebsitePanel.EnterpriseServer
// - DISKSPACE_OVERUSED // - DISKSPACE_OVERUSED
// - BANDWIDTH_OVERUSED // - BANDWIDTH_OVERUSED
BackgroundTask topTask = TaskController.GetTopTask();
// get the list of all packages // get the list of all packages
List<PackageInfo> packages = PackageController.GetPackagePackages(TaskManager.PackageId, false); List<PackageInfo> packages = PackageController.GetPackagePackages(topTask.PackageId, false);
TaskManager.Write("Packages to verify: " + packages.Count.ToString()); TaskManager.Write("Packages to verify: " + packages.Count.ToString());
bool checkMSSQL = (String.Compare((string)TaskManager.TaskParameters["MSSQL_OVERUSED"], "true", true) == 0); bool checkMSSQL = (String.Compare((string)topTask.GetParamValue("MSSQL_OVERUSED"), "true", true) == 0);
bool checkMySQL = (String.Compare((string)TaskManager.TaskParameters["MYSQL_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 sendWarningEmail = Convert.ToBoolean(topTask.GetParamValue("SEND_WARNING_EMAIL"));
bool sendOverusedEmail = Convert.ToBoolean(TaskManager.TaskParameters["SEND_OVERUSED_EMAIL"]); bool sendOverusedEmail = Convert.ToBoolean(topTask.GetParamValue("SEND_OVERUSED_EMAIL"));
int warningUsageThreshold = Convert.ToInt32(TaskManager.TaskParameters["WARNING_USAGE_THRESHOLD"]); int warningUsageThreshold = Convert.ToInt32(topTask.GetParamValue("WARNING_USAGE_THRESHOLD"));
int overusedUsageThreshold = Convert.ToInt32(TaskManager.TaskParameters["OVERUSED_USAGE_THRESHOLD"]); int overusedUsageThreshold = Convert.ToInt32(topTask.GetParamValue("OVERUSED_USAGE_THRESHOLD"));
string warningMailFrom = Convert.ToString(TaskManager.TaskParameters["WARNING_MAIL_FROM"]); string warningMailFrom = Convert.ToString(topTask.GetParamValue("WARNING_MAIL_FROM"));
string warningMailBcc = Convert.ToString(TaskManager.TaskParameters["WARNING_MAIL_BCC"]); string warningMailBcc = Convert.ToString(topTask.GetParamValue("WARNING_MAIL_BCC"));
string warningMailSubject = Convert.ToString(TaskManager.TaskParameters["WARNING_MAIL_SUBJECT"]); string warningMailSubject = Convert.ToString(topTask.GetParamValue("WARNING_MAIL_SUBJECT"));
string warningMailBody = Convert.ToString(TaskManager.TaskParameters["WARNING_MAIL_BODY"]); string warningMailBody = Convert.ToString(topTask.GetParamValue("WARNING_MAIL_BODY"));
string overusedMailFrom = Convert.ToString(TaskManager.TaskParameters["OVERUSED_MAIL_FROM"]); string overusedMailFrom = Convert.ToString(topTask.GetParamValue("OVERUSED_MAIL_FROM"));
string overusedMailBcc = Convert.ToString(TaskManager.TaskParameters["OVERUSED_MAIL_BCC"]); string overusedMailBcc = Convert.ToString(topTask.GetParamValue("OVERUSED_MAIL_BCC"));
string overusedMailSubject = Convert.ToString(TaskManager.TaskParameters["OVERUSED_MAIL_SUBJECT"]); string overusedMailSubject = Convert.ToString(topTask.GetParamValue("OVERUSED_MAIL_SUBJECT"));
string overusedMailBody = Convert.ToString(TaskManager.TaskParameters["OVERUSED_MAIL_BODY"]); string overusedMailBody = Convert.ToString(topTask.GetParamValue("OVERUSED_MAIL_BODY"));
int overusedPackages = 0; int overusedPackages = 0;

View file

@ -42,10 +42,12 @@ namespace WebsitePanel.EnterpriseServer
// - SERVER_NAME // - SERVER_NAME
// - EXECUTABLE_PATH // - EXECUTABLE_PATH
BackgroundTask topTask = TaskController.GetTopTask();
// get input parameters // get input parameters
string serverName = (string)TaskManager.TaskParameters["SERVER_NAME"]; string serverName = (string)topTask.GetParamValue("SERVER_NAME");
string execPath = (string)TaskManager.TaskParameters["EXECUTABLE_PATH"]; string execPath = (string)topTask.GetParamValue("EXECUTABLE_PATH");
string execParams = (string)TaskManager.TaskParameters["EXECUTABLE_PARAMS"]; string execParams = (string)topTask.GetParamValue("EXECUTABLE_PARAMS");
if (execParams == null) if (execParams == null)
execParams = ""; execParams = "";

View file

@ -42,11 +42,13 @@ namespace WebsitePanel.EnterpriseServer
// - MAIL_SUBJECT // - MAIL_SUBJECT
// - MAIL_BODY // - MAIL_BODY
BackgroundTask topTask = TaskController.GetTopTask();
// get input parameters // get input parameters
string mailFrom = (string)TaskManager.TaskParameters["MAIL_FROM"]; string mailFrom = (string)topTask.GetParamValue("MAIL_FROM");
string mailTo = (string)TaskManager.TaskParameters["MAIL_TO"]; string mailTo = (string)topTask.GetParamValue("MAIL_TO");
string mailSubject = (string)TaskManager.TaskParameters["MAIL_SUBJECT"]; string mailSubject = (string)topTask.GetParamValue("MAIL_SUBJECT");
string mailBody = (string)TaskManager.TaskParameters["MAIL_BODY"]; string mailBody = (string)topTask.GetParamValue("MAIL_BODY");
// check input parameters // check input parameters
if (String.IsNullOrEmpty(mailFrom)) if (String.IsNullOrEmpty(mailFrom))

View file

@ -43,27 +43,29 @@ namespace WebsitePanel.EnterpriseServer
// - DISKSPACE_OVERUSED // - DISKSPACE_OVERUSED
// - BANDWIDTH_OVERUSED // - BANDWIDTH_OVERUSED
BackgroundTask topTask = TaskController.GetTopTask();
// get the list of all packages // get the list of all packages
List<PackageInfo> packages = PackageController.GetPackagePackages(TaskManager.PackageId, false); List<PackageInfo> packages = PackageController.GetPackagePackages(topTask.PackageId, false);
TaskManager.Write("Packages to verify: " + packages.Count.ToString()); TaskManager.Write("Packages to verify: " + packages.Count.ToString());
bool checkDiskspace = (String.Compare((string)TaskManager.TaskParameters["DISKSPACE_OVERUSED"], "true", true) == 0); bool checkDiskspace = (String.Compare((string)topTask.GetParamValue("DISKSPACE_OVERUSED"), "true", true) == 0);
bool checkBandwidth = (String.Compare((string)TaskManager.TaskParameters["BANDWIDTH_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 sendWarningEmail = Convert.ToBoolean(topTask.GetParamValue("SEND_WARNING_EMAIL"));
bool sendSuspensionEmail = Convert.ToBoolean(TaskManager.TaskParameters["SEND_SUSPENSION_EMAIL"]); bool sendSuspensionEmail = Convert.ToBoolean(topTask.GetParamValue("SEND_SUSPENSION_EMAIL"));
int warningUsageThreshold = Convert.ToInt32(TaskManager.TaskParameters["WARNING_USAGE_THRESHOLD"]); int warningUsageThreshold = Convert.ToInt32(topTask.GetParamValue("WARNING_USAGE_THRESHOLD"));
int suspensionUsageThreshold = Convert.ToInt32(TaskManager.TaskParameters["SUSPENSION_USAGE_THRESHOLD"]); int suspensionUsageThreshold = Convert.ToInt32(topTask.GetParamValue("SUSPENSION_USAGE_THRESHOLD"));
string warningMailFrom = Convert.ToString(TaskManager.TaskParameters["WARNING_MAIL_FROM"]); string warningMailFrom = Convert.ToString(topTask.GetParamValue("WARNING_MAIL_FROM"));
string warningMailBcc = Convert.ToString(TaskManager.TaskParameters["WARNING_MAIL_BCC"]); string warningMailBcc = Convert.ToString(topTask.GetParamValue("WARNING_MAIL_BCC"));
string warningMailSubject = Convert.ToString(TaskManager.TaskParameters["WARNING_MAIL_SUBJECT"]); string warningMailSubject = Convert.ToString(topTask.GetParamValue("WARNING_MAIL_SUBJECT"));
string warningMailBody = Convert.ToString(TaskManager.TaskParameters["WARNING_MAIL_BODY"]); string warningMailBody = Convert.ToString(topTask.GetParamValue("WARNING_MAIL_BODY"));
string suspensionMailFrom = Convert.ToString(TaskManager.TaskParameters["SUSPENSION_MAIL_FROM"]); string suspensionMailFrom = Convert.ToString(topTask.GetParamValue("SUSPENSION_MAIL_FROM"));
string suspensionMailBcc = Convert.ToString(TaskManager.TaskParameters["SUSPENSION_MAIL_BCC"]); string suspensionMailBcc = Convert.ToString(topTask.GetParamValue("SUSPENSION_MAIL_BCC"));
string suspensionMailSubject = Convert.ToString(TaskManager.TaskParameters["SUSPENSION_MAIL_SUBJECT"]); string suspensionMailSubject = Convert.ToString(topTask.GetParamValue("SUSPENSION_MAIL_SUBJECT"));
string suspensionMailBody = Convert.ToString(TaskManager.TaskParameters["SUSPENSION_MAIL_BODY"]); string suspensionMailBody = Convert.ToString(topTask.GetParamValue("SUSPENSION_MAIL_BODY"));
int suspendedPackages = 0; int suspendedPackages = 0;

View file

@ -40,9 +40,11 @@ namespace WebsitePanel.EnterpriseServer
// - FOLDER // - FOLDER
// - ZIP_FILE // - ZIP_FILE
BackgroundTask topTask = TaskController.GetTopTask();
// get input parameters // get input parameters
string filesList = (string)TaskManager.TaskParameters["FOLDER"]; string filesList = (string)topTask.GetParamValue("FOLDER");
string zipFile = (string)TaskManager.TaskParameters["ZIP_FILE"]; string zipFile = (string)topTask.GetParamValue("ZIP_FILE");
// check input parameters // check input parameters
if (String.IsNullOrEmpty(filesList)) if (String.IsNullOrEmpty(filesList))
@ -68,7 +70,7 @@ namespace WebsitePanel.EnterpriseServer
zipFile = Utils.ReplaceStringVariable(zipFile, "time", time); zipFile = Utils.ReplaceStringVariable(zipFile, "time", time);
// zip files and folders // zip files and folders
FilesController.ZipFiles(TaskManager.PackageId, new string[] { filesList }, zipFile); FilesController.ZipFiles(topTask.PackageId, new string[] { filesList }, zipFile);
} }
} }
} }

View file

@ -89,15 +89,15 @@ namespace WebsitePanel.EnterpriseServer
UserInfo user = PackageController.GetPackageOwner(scheduleInfo.PackageId); UserInfo user = PackageController.GetPackageOwner(scheduleInfo.PackageId);
SecurityContext.SetThreadPrincipal(user.UserId); SecurityContext.SetThreadPrincipal(user.UserId);
TaskManager.StartTask("SCHEDULER", "RUN_SCHEDULE", scheduleInfo.ScheduleName); IList<BackgroundTaskParameter> parameters = new List<BackgroundTaskParameter>();
TaskManager.PackageId = scheduleInfo.PackageId;
TaskManager.ItemId = scheduleInfo.ScheduleId;
TaskManager.ScheduleId = scheduleInfo.ScheduleId;
TaskManager.MaximumExecutionTime = scheduleInfo.MaxExecutionTime;
// set task parameters
foreach (ScheduleTaskParameterInfo prm in scheduleInfo.Parameters) 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 // run task
try try

View file

@ -265,6 +265,7 @@ namespace WebsitePanel.EnterpriseServer
} }
TaskManager.ItemId = serverId; TaskManager.ItemId = serverId;
TaskManager.CompleteTask(); TaskManager.CompleteTask();
return serverId; return serverId;
@ -277,12 +278,10 @@ namespace WebsitePanel.EnterpriseServer
| DemandAccount.IsAdmin); | DemandAccount.IsAdmin);
if (accountCheck < 0) return accountCheck; if (accountCheck < 0) return accountCheck;
TaskManager.StartTask("SERVER", "UPDATE");
TaskManager.ItemId = server.ServerId;
// get original server // get original server
ServerInfo origServer = GetServerByIdInternal(server.ServerId); ServerInfo origServer = GetServerByIdInternal(server.ServerId);
TaskManager.ItemName = origServer.ServerName;
TaskManager.StartTask("SERVER", "UPDATE", origServer.ServerName, server.ServerId);
// preserve passwords // preserve passwords
server.Password = origServer.Password; server.Password = origServer.Password;
@ -313,12 +312,10 @@ namespace WebsitePanel.EnterpriseServer
| DemandAccount.IsAdmin); | DemandAccount.IsAdmin);
if (accountCheck < 0) return accountCheck; if (accountCheck < 0) return accountCheck;
TaskManager.StartTask("SERVER", "UPDATE_PASSWORD");
TaskManager.ItemId = serverId;
// get original server // get original server
ServerInfo server = GetServerByIdInternal(serverId); ServerInfo server = GetServerByIdInternal(serverId);
TaskManager.ItemName = server.ServerName;
TaskManager.StartTask("SERVER", "UPDATE_PASSWORD", server.ServerName, serverId);
// set password // set password
server.Password = password; server.Password = password;
@ -341,12 +338,10 @@ namespace WebsitePanel.EnterpriseServer
| DemandAccount.IsAdmin); | DemandAccount.IsAdmin);
if (accountCheck < 0) return accountCheck; if (accountCheck < 0) return accountCheck;
TaskManager.StartTask("SERVER", "UPDATE_AD_PASSWORD");
TaskManager.ItemId = serverId;
// get original server // get original server
ServerInfo server = GetServerByIdInternal(serverId); ServerInfo server = GetServerByIdInternal(serverId);
TaskManager.ItemName = server.ServerName;
TaskManager.StartTask("SERVER", "UPDATE_AD_PASSWORD", server.ServerName, serverId);
// set password // set password
server.ADPassword = adPassword; server.ADPassword = adPassword;
@ -369,12 +364,10 @@ namespace WebsitePanel.EnterpriseServer
| DemandAccount.IsAdmin); | DemandAccount.IsAdmin);
if (accountCheck < 0) return accountCheck; if (accountCheck < 0) return accountCheck;
TaskManager.StartTask("SERVER", "DELETE");
TaskManager.ItemId = serverId;
// get original server // get original server
ServerInfo server = GetServerByIdInternal(serverId); ServerInfo server = GetServerByIdInternal(serverId);
TaskManager.ItemName = server.ServerName;
TaskManager.StartTask("SERVER", "DELETE", server.ServerName, serverId);
try try
{ {
@ -427,10 +420,9 @@ namespace WebsitePanel.EnterpriseServer
| DemandAccount.IsActive); | DemandAccount.IsActive);
if (accountCheck < 0) return accountCheck; if (accountCheck < 0) return accountCheck;
TaskManager.StartTask("VIRTUAL_SERVER", "ADD_SERVICES");
ServerInfo server = GetServerByIdInternal(serverId); ServerInfo server = GetServerByIdInternal(serverId);
TaskManager.ItemId = serverId;
TaskManager.ItemName = server.ServerName; TaskManager.StartTask("VIRTUAL_SERVER", "ADD_SERVICES", server.ServerName, serverId);
// build XML // build XML
string xml = BuildXmlFromArray(ids, "services", "service"); string xml = BuildXmlFromArray(ids, "services", "service");
@ -450,10 +442,9 @@ namespace WebsitePanel.EnterpriseServer
| DemandAccount.IsActive); | DemandAccount.IsActive);
if (accountCheck < 0) return accountCheck; if (accountCheck < 0) return accountCheck;
TaskManager.StartTask("VIRTUAL_SERVER", "DELETE_SERVICES");
ServerInfo server = GetServerByIdInternal(serverId); ServerInfo server = GetServerByIdInternal(serverId);
TaskManager.ItemId = serverId;
TaskManager.ItemName = server.ServerName; TaskManager.StartTask("VIRTUAL_SERVER", "DELETE_SERVICES", server.ServerName, serverId);
// build XML // build XML
string xml = BuildXmlFromArray(ids, "services", "service"); string xml = BuildXmlFromArray(ids, "services", "service");
@ -585,9 +576,8 @@ namespace WebsitePanel.EnterpriseServer
| DemandAccount.IsActive); | DemandAccount.IsActive);
if (accountCheck < 0) return accountCheck; if (accountCheck < 0) return accountCheck;
TaskManager.StartTask("SERVER", "ADD_SERVICE"); TaskManager.StartTask("SERVER", "ADD_SERVICE", GetServerByIdInternal(service.ServerId).ServerName, service.ServerId);
TaskManager.ItemId = service.ServerId;
TaskManager.ItemName = GetServerByIdInternal(service.ServerId).ServerName;
TaskManager.WriteParameter("Service name", service.ServiceName); TaskManager.WriteParameter("Service name", service.ServiceName);
TaskManager.WriteParameter("Provider", service.ProviderId); TaskManager.WriteParameter("Provider", service.ProviderId);
@ -641,9 +631,8 @@ namespace WebsitePanel.EnterpriseServer
// load original service // load original service
ServiceInfo origService = GetServiceInfo(service.ServiceId); ServiceInfo origService = GetServiceInfo(service.ServiceId);
TaskManager.StartTask("SERVER", "UPDATE_SERVICE"); TaskManager.StartTask("SERVER", "UPDATE_SERVICE", GetServerByIdInternal(origService.ServerId).ServerName, origService.ServerId);
TaskManager.ItemId = origService.ServerId;
TaskManager.ItemName = GetServerByIdInternal(origService.ServerId).ServerName;
TaskManager.WriteParameter("New service name", service.ServiceName); TaskManager.WriteParameter("New service name", service.ServiceName);
DataProvider.UpdateService(service.ServiceId, service.ServiceName, DataProvider.UpdateService(service.ServiceId, service.ServiceName,
@ -663,9 +652,8 @@ namespace WebsitePanel.EnterpriseServer
ServiceInfo service = GetServiceInfoAdmin(serviceId); ServiceInfo service = GetServiceInfoAdmin(serviceId);
TaskManager.StartTask("SERVER", "DELETE_SERVICE"); TaskManager.StartTask("SERVER", "DELETE_SERVICE", GetServerByIdInternal(service.ServerId).ServerName, service.ServerId);
TaskManager.ItemId = service.ServerId;
TaskManager.ItemName = GetServerByIdInternal(service.ServerId).ServerName;
TaskManager.WriteParameter("Service name", service.ServiceName); TaskManager.WriteParameter("Service name", service.ServiceName);
try try
@ -926,8 +914,8 @@ namespace WebsitePanel.EnterpriseServer
#endregion #endregion
// start task // start task
res = TaskManager.StartResultTask<IntResult>("IP_ADDRESS", "ADD"); res = TaskManager.StartResultTask<IntResult>("IP_ADDRESS", "ADD", externalIP);
TaskManager.ItemName = externalIP;
TaskManager.WriteParameter("IP Address", externalIP); TaskManager.WriteParameter("IP Address", externalIP);
TaskManager.WriteParameter("NAT Address", internalIP); TaskManager.WriteParameter("NAT Address", internalIP);
@ -961,8 +949,8 @@ namespace WebsitePanel.EnterpriseServer
#endregion #endregion
// start task // start task
res = TaskManager.StartResultTask<ResultObject>("IP_ADDRESS", "ADD_RANGE"); res = TaskManager.StartResultTask<ResultObject>("IP_ADDRESS", "ADD_RANGE", externalIP);
TaskManager.ItemName = externalIP;
TaskManager.WriteParameter("IP Address", externalIP); TaskManager.WriteParameter("IP Address", externalIP);
TaskManager.WriteParameter("End IP Address", endIP); TaskManager.WriteParameter("End IP Address", endIP);
TaskManager.WriteParameter("NAT Address", internalIP); TaskManager.WriteParameter("NAT Address", internalIP);
@ -1251,8 +1239,7 @@ namespace WebsitePanel.EnterpriseServer
if (addressesNumber > maxAvailableIPs) if (addressesNumber > maxAvailableIPs)
addressesNumber = maxAvailableIPs; addressesNumber = maxAvailableIPs;
res = TaskManager.StartResultTask<ResultObject>("IP_ADDRESS", "ALLOCATE_PACKAGE_IP"); res = TaskManager.StartResultTask<ResultObject>("IP_ADDRESS", "ALLOCATE_PACKAGE_IP", packageId);
TaskManager.PackageId = packageId;
try try
{ {
@ -1337,8 +1324,8 @@ namespace WebsitePanel.EnterpriseServer
return res; return res;
#endregion #endregion
res = TaskManager.StartResultTask<ResultObject>("IP_ADDRESS", "DEALLOCATE_PACKAGE_IP"); res = TaskManager.StartResultTask<ResultObject>("IP_ADDRESS", "DEALLOCATE_PACKAGE_IP", packageId);
TaskManager.PackageId = packageId;
try try
{ {
foreach (int id in addressId) foreach (int id in addressId)
@ -1876,11 +1863,7 @@ namespace WebsitePanel.EnterpriseServer
*/ */
// place log record // place log record
TaskManager.StartTask("DOMAIN", "ADD", domainName); TaskManager.StartTask("DOMAIN", "ADD", domainName, 0, packageId, new BackgroundTaskParameter("CreateZone", createDnsZone));
TaskManager.PackageId = packageId;
TaskManager.TaskParameters["CreateZone"] = createDnsZone;
// create DNS zone // create DNS zone
int zoneItemId = 0; int zoneItemId = 0;
@ -1911,6 +1894,7 @@ namespace WebsitePanel.EnterpriseServer
packageId, zoneItemId, domainName, allowSubDomains, 0, 0, isSubDomain, isInstantAlias, isDomainPointer); packageId, zoneItemId, domainName, allowSubDomains, 0, 0, isSubDomain, isInstantAlias, isDomainPointer);
TaskManager.ItemId = itemId; TaskManager.ItemId = itemId;
TaskManager.CompleteTask(); TaskManager.CompleteTask();
return itemId; return itemId;
@ -2041,8 +2025,7 @@ namespace WebsitePanel.EnterpriseServer
// place log record // place log record
DomainInfo origDomain = GetDomain(domain.DomainId); DomainInfo origDomain = GetDomain(domain.DomainId);
TaskManager.StartTask("DOMAIN", "UPDATE", origDomain.DomainName); TaskManager.StartTask("DOMAIN", "UPDATE", origDomain.DomainName, domain.DomainId);
TaskManager.ItemId = domain.DomainId;
try try
{ {
@ -2074,8 +2057,7 @@ namespace WebsitePanel.EnterpriseServer
return 0; return 0;
// place log record // place log record
TaskManager.StartTask("DOMAIN", "DETACH", domain.DomainName); TaskManager.StartTask("DOMAIN", "DETACH", domain.DomainName, domain.DomainId);
TaskManager.ItemId = domain.DomainId;
try try
{ {
@ -2143,8 +2125,7 @@ namespace WebsitePanel.EnterpriseServer
return 0; return 0;
// place log record // place log record
TaskManager.StartTask("DOMAIN", "DELETE", domain.DomainName); TaskManager.StartTask("DOMAIN", "DELETE", domain.DomainName, domain.DomainId);
TaskManager.ItemId = domain.DomainId;
try try
{ {
@ -2223,8 +2204,7 @@ namespace WebsitePanel.EnterpriseServer
return 0; return 0;
// place log record // place log record
TaskManager.StartTask("DOMAIN", "DISABLE_DNS", domain.DomainName); TaskManager.StartTask("DOMAIN", "DISABLE_DNS", domain.DomainName, domain.DomainId);
TaskManager.ItemId = domain.DomainId;
try try
{ {
@ -2270,8 +2250,7 @@ namespace WebsitePanel.EnterpriseServer
return 0; return 0;
// place log record // place log record
TaskManager.StartTask("DOMAIN", "ENABLE_DNS", domain.DomainName); TaskManager.StartTask("DOMAIN", "ENABLE_DNS", domain.DomainName, domain.DomainId);
TaskManager.ItemId = domain.DomainId;
try try
{ {
@ -2475,8 +2454,7 @@ namespace WebsitePanel.EnterpriseServer
return BusinessErrorCodes.ERROR_INSTANT_ALIAS_IS_NOT_CONFIGURED; return BusinessErrorCodes.ERROR_INSTANT_ALIAS_IS_NOT_CONFIGURED;
// place log record // place log record
TaskManager.StartTask("DOMAIN", "CREATE_INSTANT_ALIAS", domain.DomainName); TaskManager.StartTask("DOMAIN", "CREATE_INSTANT_ALIAS", domain.DomainName, domain.DomainId);
TaskManager.ItemId = domain.DomainId;
try try
{ {
@ -2560,8 +2538,7 @@ namespace WebsitePanel.EnterpriseServer
return 0; return 0;
// place log record // place log record
TaskManager.StartTask("DOMAIN", "DELETE_INSTANT_ALIAS", domain.DomainName); TaskManager.StartTask("DOMAIN", "DELETE_INSTANT_ALIAS", domain.DomainName, domain.DomainId);
TaskManager.ItemId = domain.DomainId;
try try
{ {
@ -2695,8 +2672,7 @@ namespace WebsitePanel.EnterpriseServer
return 0; return 0;
// place log record // place log record
TaskManager.StartTask("DNS_ZONE", "ADD_RECORD", domain.DomainName); TaskManager.StartTask("DNS_ZONE", "ADD_RECORD", domain.DomainName, domain.ZoneItemId);
TaskManager.ItemId = domain.ZoneItemId;
try try
{ {
@ -2736,8 +2712,7 @@ namespace WebsitePanel.EnterpriseServer
{ {
// place log record // place log record
DomainInfo domain = GetDomain(domainId); DomainInfo domain = GetDomain(domainId);
TaskManager.StartTask("DNS_ZONE", "UPDATE_RECORD", domain.DomainName); TaskManager.StartTask("DNS_ZONE", "UPDATE_RECORD", domain.DomainName, domain.ZoneItemId);
TaskManager.ItemId = domain.ZoneItemId;
try try
{ {
@ -2783,8 +2758,7 @@ namespace WebsitePanel.EnterpriseServer
try try
{ {
// place log record // place log record
TaskManager.StartTask("DNS_ZONE", "DELETE_RECORD", domain.DomainName); TaskManager.StartTask("DNS_ZONE", "DELETE_RECORD", domain.DomainName, domain.ZoneItemId);
TaskManager.ItemId = domain.ZoneItemId;
DNSServer dns = new DNSServer(); DNSServer dns = new DNSServer();
ServiceProviderProxy.Init(dns, zoneItem.ServiceId); ServiceProviderProxy.Init(dns, zoneItem.ServiceId);

View file

@ -341,6 +341,7 @@ namespace WebsitePanel.EnterpriseServer.Code.SharePoint
} }
TaskManager.ItemId = itemId; TaskManager.ItemId = itemId;
return itemId; return itemId;
} }
catch (Exception ex) catch (Exception ex)
@ -380,8 +381,7 @@ namespace WebsitePanel.EnterpriseServer.Code.SharePoint
string siteName = origItem.Name.Replace(String.Format("{0}://", rootWebApplicationUri.Scheme), String.Empty); string siteName = origItem.Name.Replace(String.Format("{0}://", rootWebApplicationUri.Scheme), String.Empty);
// Log operation. // Log operation.
TaskManager.StartTask("HOSTEDSHAREPOINT", "DELETE_SITE", origItem.Name); TaskManager.StartTask("HOSTEDSHAREPOINT", "DELETE_SITE", origItem.Name, itemId);
TaskManager.ItemId = itemId;
try try
{ {
@ -459,8 +459,7 @@ namespace WebsitePanel.EnterpriseServer.Code.SharePoint
} }
// Log operation. // Log operation.
TaskManager.StartTask("HOSTEDSHAREPOINT", "BACKUP_SITE_COLLECTION", origItem.Name); TaskManager.StartTask("HOSTEDSHAREPOINT", "BACKUP_SITE_COLLECTION", origItem.Name, itemId);
TaskManager.ItemId = itemId;
try try
{ {
@ -550,8 +549,7 @@ namespace WebsitePanel.EnterpriseServer.Code.SharePoint
} }
// Log operation. // Log operation.
TaskManager.StartTask("HOSTEDSHAREPOINT", "BACKUP_SITE_COLLECTION", origItem.Name); TaskManager.StartTask("HOSTEDSHAREPOINT", "BACKUP_SITE_COLLECTION", origItem.Name, itemId);
TaskManager.ItemId = itemId;
try try
{ {
@ -850,8 +848,7 @@ namespace WebsitePanel.EnterpriseServer.Code.SharePoint
if (accountCheck < 0) return accountCheck; if (accountCheck < 0) return accountCheck;
// place log record // place log record
TaskManager.StartTask("HOSTED_SHAREPOINT", "SET_ORG_LIMITS"); TaskManager.StartTask("HOSTED_SHAREPOINT", "SET_ORG_LIMITS", itemId);
TaskManager.ItemId = itemId;
try try
{ {
@ -923,8 +920,8 @@ namespace WebsitePanel.EnterpriseServer.Code.SharePoint
} }
// place log record // place log record
TaskManager.StartTask("HOSTED_SHAREPOINT", "CALCULATE_DISK_SPACE"); TaskManager.StartTask("HOSTED_SHAREPOINT", "CALCULATE_DISK_SPACE", itemId);
TaskManager.ItemId = itemId;
try try
{ {
Organization org = (Organization)PackageController.GetPackageItem(itemId); Organization org = (Organization)PackageController.GetPackageItem(itemId);

View file

@ -268,8 +268,7 @@ namespace WebsitePanel.EnterpriseServer
return BusinessErrorCodes.ERROR_SHAREPOINT_PACKAGE_ITEM_NOT_FOUND; return BusinessErrorCodes.ERROR_SHAREPOINT_PACKAGE_ITEM_NOT_FOUND;
// place log record // place log record
TaskManager.StartTask("SHAREPOINT", "DELETE_SITE", origItem.Name); TaskManager.StartTask("SHAREPOINT", "DELETE_SITE", origItem.Name, itemId);
TaskManager.ItemId = itemId;
try try
{ {
@ -340,8 +339,7 @@ namespace WebsitePanel.EnterpriseServer
return null; return null;
// place log record // place log record
TaskManager.StartTask("SHAREPOINT", "BACKUP_SITE", item.Name); TaskManager.StartTask("SHAREPOINT", "BACKUP_SITE", item.Name, itemId);
TaskManager.ItemId = itemId;
try try
{ {
@ -432,8 +430,7 @@ namespace WebsitePanel.EnterpriseServer
if (packageCheck < 0) return packageCheck; if (packageCheck < 0) return packageCheck;
// place log record // place log record
TaskManager.StartTask("SHAREPOINT", "RESTORE_SITE", item.Name); TaskManager.StartTask("SHAREPOINT", "RESTORE_SITE", item.Name, itemId);
TaskManager.ItemId = itemId;
try try
{ {
@ -520,8 +517,8 @@ namespace WebsitePanel.EnterpriseServer
if (packageCheck < 0) return packageCheck; if (packageCheck < 0) return packageCheck;
// place log record // place log record
TaskManager.StartTask("SHAREPOINT", "INSTALL_WEBPARTS", item.Name); TaskManager.StartTask("SHAREPOINT", "INSTALL_WEBPARTS", item.Name, itemId);
TaskManager.ItemId = itemId;
TaskManager.WriteParameter("Package file", packageFile); TaskManager.WriteParameter("Package file", packageFile);
try try
@ -592,8 +589,8 @@ namespace WebsitePanel.EnterpriseServer
if (packageCheck < 0) return packageCheck; if (packageCheck < 0) return packageCheck;
// place log record // place log record
TaskManager.StartTask("SHAREPOINT", "UNINSTALL_WEBPARTS", item.Name); TaskManager.StartTask("SHAREPOINT", "UNINSTALL_WEBPARTS", item.Name, itemId);
TaskManager.ItemId = itemId;
TaskManager.WriteParameter("Package name", packageName); TaskManager.WriteParameter("Package name", packageName);
try try
@ -736,8 +733,7 @@ namespace WebsitePanel.EnterpriseServer
if (packageCheck < 0) return packageCheck; if (packageCheck < 0) return packageCheck;
// place log record // place log record
TaskManager.StartTask("SHAREPOINT", "UPDATE_USER", origItem.Name); TaskManager.StartTask("SHAREPOINT", "UPDATE_USER", origItem.Name, item.Id);
TaskManager.ItemId = item.Id;
try try
{ {
@ -785,8 +781,7 @@ namespace WebsitePanel.EnterpriseServer
return BusinessErrorCodes.ERROR_SHAREPOINT_USERS_PACKAGE_ITEM_NOT_FOUND; return BusinessErrorCodes.ERROR_SHAREPOINT_USERS_PACKAGE_ITEM_NOT_FOUND;
// place log record // place log record
TaskManager.StartTask("SHAREPOINT", "DELETE_USER", origItem.Name); TaskManager.StartTask("SHAREPOINT", "DELETE_USER", origItem.Name, itemId);
TaskManager.ItemId = itemId;
try try
{ {
@ -925,8 +920,7 @@ namespace WebsitePanel.EnterpriseServer
if (packageCheck < 0) return packageCheck; if (packageCheck < 0) return packageCheck;
// place log record // place log record
TaskManager.StartTask("SHAREPOINT", "UPDATE_GROUP", origItem.Name); TaskManager.StartTask("SHAREPOINT", "UPDATE_GROUP", origItem.Name, item.Id);
TaskManager.ItemId = item.Id;
try try
{ {
@ -962,8 +956,7 @@ namespace WebsitePanel.EnterpriseServer
return BusinessErrorCodes.ERROR_SHAREPOINT_GROUPS_PACKAGE_ITEM_NOT_FOUND; return BusinessErrorCodes.ERROR_SHAREPOINT_GROUPS_PACKAGE_ITEM_NOT_FOUND;
// place log record // place log record
TaskManager.StartTask("SHAREPOINT", "DELETE_GROUP", origItem.Name); TaskManager.StartTask("SHAREPOINT", "DELETE_GROUP", origItem.Name, itemId);
TaskManager.ItemId = itemId;
try try
{ {

View file

@ -226,8 +226,7 @@ namespace WebsitePanel.EnterpriseServer
item.SiteId = origItem.SiteId; item.SiteId = origItem.SiteId;
// place log record // place log record
TaskManager.StartTask("STATS_SITE", "UPDATE", origItem.Name); TaskManager.StartTask("STATS_SITE", "UPDATE", origItem.Name, origItem.Id);
TaskManager.ItemId = origItem.Id;
try try
{ {
@ -263,8 +262,7 @@ namespace WebsitePanel.EnterpriseServer
return BusinessErrorCodes.ERROR_STATS_PACKAGE_ITEM_NOT_FOUND; return BusinessErrorCodes.ERROR_STATS_PACKAGE_ITEM_NOT_FOUND;
// place log record // place log record
TaskManager.StartTask("STATS_SITE", "DELETE", origItem.Name); TaskManager.StartTask("STATS_SITE", "DELETE", origItem.Name, itemId);
TaskManager.ItemId = origItem.Id;
try try
{ {

View file

@ -40,23 +40,25 @@ namespace WebsitePanel.EnterpriseServer.Tasks
public override void OnComplete() public override void OnComplete()
{ {
if (!TaskManager.HasErrors) BackgroundTask topTask = TaskController.GetTopTask();
if (!TaskManager.HasErrors(topTask))
{ {
// Send user add notification // Send user add notification
if (TaskManager.TaskSource == "USER" && if (topTask.Source == "USER" &&
TaskManager.TaskName == "ADD" && TaskManager.ItemId > 0) topTask.TaskName == "ADD" && topTask.ItemId > 0)
{ {
SendAddUserNotification(); SendAddUserNotification();
} }
// Send hosting package add notification // Send hosting package add notification
if (TaskManager.TaskSource == "HOSTING_SPACE" if (topTask.Source == "HOSTING_SPACE"
&& TaskManager.TaskName == "ADD" && TaskManager.ItemId > 0) && topTask.TaskName == "ADD" && topTask.ItemId > 0)
{ {
SendAddPackageNotification(); SendAddPackageNotification();
} }
// Send hosting package add notification // Send hosting package add notification
if (TaskManager.TaskSource == "HOSTING_SPACE_WR" if (topTask.Source == "HOSTING_SPACE_WR"
&& TaskManager.TaskName == "ADD" && TaskManager.ItemId > 0) && topTask.TaskName == "ADD" && topTask.ItemId > 0)
{ {
SendAddPackageWithResourcesNotification(); SendAddPackageWithResourcesNotification();
} }
@ -76,10 +78,13 @@ namespace WebsitePanel.EnterpriseServer.Tasks
{ {
try try
{ {
bool sendLetter = (bool)TaskManager.TaskParameters["SendLetter"]; BackgroundTask topTask = TaskController.GetTopTask();
bool sendLetter = Utils.ParseBool(topTask.GetParamValue("SendLetter"), false);
if (sendLetter) if (sendLetter)
{ {
int sendResult = PackageController.SendPackageSummaryLetter(TaskManager.ItemId, null, null, true); int sendResult = PackageController.SendPackageSummaryLetter(topTask.ItemId, null, null, true);
CheckSmtpResult(sendResult); CheckSmtpResult(sendResult);
} }
} }
@ -93,9 +98,12 @@ namespace WebsitePanel.EnterpriseServer.Tasks
{ {
try try
{ {
int userId = (int)TaskManager.TaskParameters["UserId"]; BackgroundTask topTask = TaskController.GetTopTask();
bool sendLetter = (bool)TaskManager.TaskParameters["SendLetter"];
bool signup = (bool)TaskManager.TaskParameters["Signup"]; 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 // send space letter if enabled
UserSettings settings = UserController.GetUserSettings(userId, UserSettings.PACKAGE_SUMMARY_LETTER); UserSettings settings = UserController.GetUserSettings(userId, UserSettings.PACKAGE_SUMMARY_LETTER);
if (sendLetter if (sendLetter
@ -103,7 +111,7 @@ namespace WebsitePanel.EnterpriseServer.Tasks
&& Utils.ParseBool(settings["EnableLetter"], false)) && Utils.ParseBool(settings["EnableLetter"], false))
{ {
// send letter // send letter
int smtpResult = PackageController.SendPackageSummaryLetter(TaskManager.ItemId, null, null, signup); int smtpResult = PackageController.SendPackageSummaryLetter(topTask.ItemId, null, null, signup);
CheckSmtpResult(smtpResult); CheckSmtpResult(smtpResult);
} }
} }
@ -117,8 +125,11 @@ namespace WebsitePanel.EnterpriseServer.Tasks
{ {
try try
{ {
bool sendLetter = (bool)TaskManager.TaskParameters["SendLetter"]; BackgroundTask topTask = TaskController.GetTopTask();
int userId = TaskManager.ItemId;
bool sendLetter = Utils.ParseBool(topTask.GetParamValue("SendLetter"), false);
int userId = topTask.ItemId;
// send account letter if enabled // send account letter if enabled
UserSettings settings = UserController.GetUserSettings(userId, UserSettings.ACCOUNT_SUMMARY_LETTER); UserSettings settings = UserController.GetUserSettings(userId, UserSettings.ACCOUNT_SUMMARY_LETTER);
if (sendLetter if (sendLetter

View file

@ -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<BackgroundTask>(
DataProvider.GetBackgroundTask(SecurityContext.User.UserId, taskId));
task.Params = GetTaskParams(task.Id);
return task;
}
public static List<BackgroundTask> GetTasks()
{
return ObjectUtils.CreateListFromDataReader<BackgroundTask>(
DataProvider.GetBackgroundTasks(SecurityContext.User.UserId));
}
public static BackgroundTask GetTopTask()
{
BackgroundTask task = ObjectUtils.FillObjectFromDataReader<BackgroundTask>(
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<BackgroundTaskParameter> parameters)
{
foreach (BackgroundTaskParameter param in SerializeParams(parameters))
{
DataProvider.AddBackgroundTaskParam(taskId, param.Name, param.SerializerValue);
}
}
public static IList<BackgroundTaskParameter> GetTaskParams(int taskId)
{
List<BackgroundTaskParameter> parameters = ObjectUtils.CreateListFromDataReader<BackgroundTaskParameter>(
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<BackgroundTaskLogRecord> GetLogs(int taskId, DateTime startLogTime)
{
List<BackgroundTaskLogRecord> logs = ObjectUtils.CreateListFromDataReader<BackgroundTaskLogRecord>(
DataProvider.GetBackgroundTaskLogs(taskId, startLogTime));
foreach (BackgroundTaskLogRecord log in logs)
{
log.TextParameters = ReBuildParametersXml(log.XmlParameters);
}
return logs;
}
private static IList<BackgroundTaskParameter> SerializeParams(IList<BackgroundTaskParameter> 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<BackgroundTaskParameter> DeserializeParams(IList<BackgroundTaskParameter> 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;
}
}
}

View file

@ -42,7 +42,6 @@ namespace WebsitePanel.EnterpriseServer
{ {
public class TaskManager public class TaskManager
{ {
private static Hashtable tasks = Hashtable.Synchronized(new Hashtable());
private static Hashtable eventHandlers = null; private static Hashtable eventHandlers = null;
// purge timer, used for killing old tasks from the hash // purge timer, used for killing old tasks from the hash
@ -51,81 +50,120 @@ namespace WebsitePanel.EnterpriseServer
60000, // start from 1 minute 60000, // start from 1 minute
60000); // invoke each 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<BackgroundTask> TasksStack
{
get
{
List<BackgroundTask> stack = (List<BackgroundTask>)Thread.GetData(Thread.GetNamedDataSlot("BackgroundTasksStack"));
if (stack == null)
{
stack = new List<BackgroundTask>();
Thread.SetData(Thread.GetNamedDataSlot("BackgroundTasksStack"), stack);
}
return stack;
}
}
public static void StartTask(string source, string taskName) 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<BackgroundTaskParameter>());
}
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<BackgroundTaskParameter> parameters)
{
StartTask(source, taskName, null, itemId, parameters);
} }
public static void StartTask(string source, string taskName, object itemName) 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 StartTask(source, taskName, itemName, itemId, new List<BackgroundTaskParameter>());
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;
// new "parent" task?
if (TasksStack.Count == 0)
{
// register task globally
tasks[task.TaskId] = task;
} }
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 public static void StartTask(string source, string taskName, object itemName, BackgroundTaskParameter parameter)
// for nested task {
task.LogRecords = RootTask.LogRecords; StartTask(source, taskName, itemName, 0, parameter);
}
public static void StartTask(string source, string taskName, object itemName, IList<BackgroundTaskParameter> 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<BackgroundTaskParameter> 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<BackgroundTaskParameter> parameters = new List<BackgroundTaskParameter>();
if (parameter != null)
{
parameters.Add(parameter);
}
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<BackgroundTaskParameter>());
}
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<BackgroundTaskParameter>());
}
public static void StartTask(string source, string taskName, object itemName, int itemId,
int scheduleId, int packageId, int maximumExecutionTime, IList<BackgroundTaskParameter> parameters)
{
StartTask(null, source, taskName, itemName, itemId, scheduleId, packageId, maximumExecutionTime, new List<BackgroundTaskParameter>());
}
public static void StartTask(string taskId, string source, string taskName, object itemName, int itemId,
int scheduleId, int packageId, int maximumExecutionTime, IList<BackgroundTaskParameter> 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<BackgroundTask> 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 // call event handler
CallTaskEventHandler(task, false); CallTaskEventHandler(task, false);
// push task on the stack TaskController.AddTask(task);
TasksStack.Add(task);
} }
public static void WriteParameter(string parameterName, object parameterValue) public static void WriteParameter(string parameterName, object parameterValue)
@ -150,8 +188,11 @@ namespace WebsitePanel.EnterpriseServer
{ {
// ERROR // ERROR
WriteLogRecord(2, ex.Message, ex.StackTrace); 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) 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) private static void WriteLogRecord(int severity, string text, string stackTrace, params string[] textParameters)
{ {
BackgroundTaskLogRecord logRecord = new BackgroundTaskLogRecord(); List<BackgroundTask> tasks = TaskController.GetTasks();
logRecord.Severity = severity;
logRecord.Text = text;
logRecord.TextParameters = textParameters;
logRecord.TextIdent = TasksStack.Count - 1;
logRecord.ExceptionStackTrace = stackTrace;
if (RootTask != null)
{
RootTask.LogRecords.Add(logRecord);
RootTask.LastLogRecord = logRecord;
// change entire task severity if (tasks.Count > 0)
if (severity > RootTask.Severity) {
RootTask.Severity = severity; BackgroundTask rootTask = tasks[0];
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() public static void CompleteTask()
{ {
if (TasksStack.Count == 0) List<BackgroundTask> tasks = TaskController.GetTasks();
if (tasks.Count == 0)
return; return;
BackgroundTask topTask = TaskController.GetTopTask();
// call event handler // call event handler
CallTaskEventHandler(TopTask, true); CallTaskEventHandler(topTask, true);
// finish task // finish task
TopTask.FinishDate = DateTime.Now; topTask.FinishDate = DateTime.Now;
TopTask.Completed = true; topTask.Completed = true;
// write task execution result to database // write task execution result to database
if (TasksStack.Count == 1) // single task if (tasks.Count == 1) // single task
{ {
// unregister task globally // unregister task globally
// tasks.Remove(TopTask.TaskId); // tasks.Remove(TopTask.TaskId);
// write to database // write to database
string itemName = TopTask.ItemName != null ? TopTask.ItemName.ToString() : null; topTask.Logs = TaskController.GetLogs(topTask.Id, topTask.StartDate);
string executionLog = FormatExecutionLog(TopTask);
UserInfo user = UserController.GetUserInternally(TopTask.UserId); string executionLog = FormatExecutionLog(topTask);
UserInfo user = UserController.GetUserInternally(topTask.UserId);
string username = user != null ? user.Username : null; string username = user != null ? user.Username : null;
AuditLog.AddAuditLogRecord(TopTask.TaskId, TopTask.Severity, TopTask.UserId, AuditLog.AddAuditLogRecord(topTask.TaskId, topTask.Severity, topTask.UserId,
username, TopTask.PackageId, TopTask.ItemId, username, topTask.PackageId, topTask.ItemId,
itemName, TopTask.StartDate, TopTask.FinishDate, TopTask.Source, topTask.ItemName, topTask.StartDate, topTask.FinishDate, topTask.Source,
TopTask.TaskName, executionLog); topTask.TaskName, executionLog);
} }
// update last finish time TaskController.UpdateTask(topTask);
SchedulerJob schedule = SchedulerController.GetScheduleComplete(TopTask.ItemId); }
if (schedule != null)
public static void UpdateParam(String name, Object value)
{ {
schedule.ScheduleInfo.LastFinish = DateTime.Now; BackgroundTask topTask = TaskController.GetTopTask();
SchedulerController.UpdateSchedule(schedule.ScheduleInfo);
if (topTask == null)
return;
topTask.UpdateParamValue(name, value);
TaskController.UpdateTask(topTask);
} }
// remove task from the stack public static int ItemId
TasksStack.RemoveAt(TasksStack.Count - 1); {
set
{
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]);
}
TaskController.UpdateTask(topTask);
} }
static string FormatExecutionLog(BackgroundTask task) static string FormatExecutionLog(BackgroundTask task)
@ -244,19 +346,19 @@ namespace WebsitePanel.EnterpriseServer
// parameters // parameters
writer.WriteStartElement("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.WriteStartElement("parameter");
writer.WriteAttributeString("name", name); writer.WriteAttributeString("name", param.Name);
writer.WriteString(val); writer.WriteString(param.Value.ToString());
writer.WriteEndElement(); writer.WriteEndElement();
} }
writer.WriteEndElement(); // parameters writer.WriteEndElement(); // parameters
// records // records
writer.WriteStartElement("records"); writer.WriteStartElement("records");
foreach (BackgroundTaskLogRecord record in task.LogRecords) foreach (BackgroundTaskLogRecord record in task.Logs)
{ {
writer.WriteStartElement("record"); writer.WriteStartElement("record");
writer.WriteAttributeString("severity", record.Severity.ToString()); writer.WriteAttributeString("severity", record.Severity.ToString());
@ -289,133 +391,84 @@ namespace WebsitePanel.EnterpriseServer
static void PurgeCompletedTasks(object obj) static void PurgeCompletedTasks(object obj)
{ {
// remove completed tasks List<BackgroundTask> tasks = TaskController.GetTasks();
List<string> completedTasks = new List<string>();
foreach (BackgroundTask task in tasks.Values) foreach (BackgroundTask task in tasks)
{ {
if (task.MaximumExecutionTime != -1 if (task.MaximumExecutionTime != -1
&& ((TimeSpan) (DateTime.Now - task.StartDate)).TotalSeconds > task.MaximumExecutionTime) && ((TimeSpan) (DateTime.Now - task.StartDate)).TotalSeconds > task.MaximumExecutionTime)
{ {
// terminate task task.Status = BackgroundTaskStatus.Abort;
try
{
task.TaskThread.Abort();
}
catch
{
// nope
}
// add to the list TaskController.UpdateTask(task);
completedTasks.Add(task.TaskId);
}
if ((task.FinishDate != DateTime.MinValue
&& ((TimeSpan)(DateTime.Now - task.FinishDate)).TotalMinutes > 2))
{
// add to the list
completedTasks.Add(task.TaskId);
} }
} }
// 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 public static int IndicatorMaximum
{ {
get { return TopTask.IndicatorMaximum; } set
set { TopTask.IndicatorMaximum = value; } {
BackgroundTask topTask = TaskController.GetTopTask();
topTask.IndicatorMaximum = value;
TaskController.UpdateTask(topTask);
}
} }
public static int IndicatorCurrent public static int IndicatorCurrent
{ {
get { return TopTask.IndicatorCurrent; } get
set { TopTask.IndicatorCurrent = value; } {
return TaskController.GetTopTask().IndicatorCurrent;
}
set
{
BackgroundTask topTask = TaskController.GetTopTask();
topTask.IndicatorCurrent = value;
TaskController.UpdateTask(topTask);
}
} }
public static int MaximumExecutionTime public static int MaximumExecutionTime
{ {
get { return TopTask.MaximumExecutionTime; } get
set { TopTask.MaximumExecutionTime = value; } {
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; } return task.Severity == 2;
set { TopTask.ScheduleId = value; }
}
public static bool HasErrors
{
get { return (TopTask.Severity == 2); }
} }
public static BackgroundTask GetTask(string taskId) public static BackgroundTask GetTask(string taskId)
{ {
BackgroundTask task = (BackgroundTask)tasks[taskId]; BackgroundTask task = TaskController.GetTask(taskId);
if (task == null) if (task == null)
return null; return null;
task.LastLogRecords.Clear();
return task; return task;
} }
public static BackgroundTask GetTaskWithLogRecords(string taskId, DateTime startLogTime) public static BackgroundTask GetTaskWithLogRecords(string taskId, DateTime startLogTime)
{ {
BackgroundTask task = GetTask(taskId); BackgroundTask task = GetTask(taskId);
if (task == null) if (task == null)
return null; return null;
// fill log records task.Logs = TaskController.GetLogs(task.Id, startLogTime);
foreach (BackgroundTaskLogRecord record in task.LogRecords)
{
if (record.Date >= startLogTime)
task.LastLogRecords.Add(record);
}
return task; return task;
} }
@ -425,7 +478,7 @@ namespace WebsitePanel.EnterpriseServer
Dictionary<int, BackgroundTask> scheduledTasks = new Dictionary<int, BackgroundTask>(); Dictionary<int, BackgroundTask> scheduledTasks = new Dictionary<int, BackgroundTask>();
try try
{ {
foreach (BackgroundTask task in tasks.Values) foreach (BackgroundTask task in TaskController.GetTasks())
{ {
if (task.ScheduleId > 0 if (task.ScheduleId > 0
&& !task.Completed && !task.Completed
@ -441,7 +494,8 @@ namespace WebsitePanel.EnterpriseServer
public static void SetTaskNotifyOnComplete(string taskId) public static void SetTaskNotifyOnComplete(string taskId)
{ {
BackgroundTask task = (BackgroundTask)tasks[taskId]; BackgroundTask task = GetTask(taskId);
if (task == null) if (task == null)
return; return;
@ -450,101 +504,46 @@ namespace WebsitePanel.EnterpriseServer
public static void StopTask(string taskId) public static void StopTask(string taskId)
{ {
BackgroundTask task = (BackgroundTask)tasks[taskId]; BackgroundTask task = GetTask(taskId);
if (task == null) if (task == null)
return; return;
try task.Status = BackgroundTaskStatus.Abort;
{
task.TaskThread.Abort();
}
catch
{
// nope
}
// update last finish time TaskController.UpdateTask(task);
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;
} }
public static List<BackgroundTask> GetUserTasks(int userId) public static List<BackgroundTask> GetUserTasks(int userId)
{ {
List<BackgroundTask> list = new List<BackgroundTask>(); List<BackgroundTask> list = new List<BackgroundTask>();
int effectiveUserId = SecurityContext.User.IsPeer ? SecurityContext.User.OwnerId : SecurityContext.User.UserId; // try to get user first
Dictionary<int, BackgroundTask> scheduledTasks = GetScheduledTasks(); UserInfo user = UserController.GetUser(userId);
if (user == null)
return list; // prohibited user
List<ScheduleInfo> scheduleList = SchedulerController.GetRunningSchedules(); // get user tasks
foreach (BackgroundTask task in TaskController.GetTasks())
foreach (var scheduleInfo in scheduleList)
{ {
if (effectiveUserId == userId && scheduleInfo.LastRun > scheduleInfo.LastFinish) if (task.EffectiveUserId == userId && !task.Completed)
{ list.Add(task);
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
});
}
}
}
return list; return list;
} }
public static List<BackgroundTask> GetUserCompletedTasks(int userId) public static List<BackgroundTask> GetUserCompletedTasks(int userId)
{ {
// get user tasks return new List<BackgroundTask>();
List<BackgroundTask> list = GetUserTasks(userId);
// extract completed only
List<BackgroundTask> completedTasks = new List<BackgroundTask>();
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 #region Private Helpers
private static void CallTaskEventHandler(BackgroundTask task, bool onComplete) private static void CallTaskEventHandler(BackgroundTask task, bool onComplete)
{ {
string[] taskHandlers = GetTaskEventHandlers(task.Source, task.TaskName); string[] taskHandlers = GetTaskEventHandlers(task.Source, task.TaskName);
@ -630,6 +629,7 @@ namespace WebsitePanel.EnterpriseServer
List<string> handlersList = (List<string>)eventHandlers[fullTaskName]; List<string> handlersList = (List<string>)eventHandlers[fullTaskName];
return handlersList == null ? null : handlersList.ToArray(); return handlersList == null ? null : handlersList.ToArray();
} }
#endregion #endregion
@ -677,14 +677,6 @@ namespace WebsitePanel.EnterpriseServer
CompleteResultTask(null); CompleteResultTask(null);
} }
public static T StartResultTask<T>(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<T>(string source, string taskName) where T : ResultObject, new() public static T StartResultTask<T>(string source, string taskName) where T : ResultObject, new()
{ {
StartTask(source, taskName); StartTask(source, taskName);
@ -693,6 +685,69 @@ namespace WebsitePanel.EnterpriseServer
return res; return res;
} }
public static T StartResultTask<T>(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<T>(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<T>(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<T>(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<T>(string source, string taskName, int itemId, IList<BackgroundTaskParameter> parameters) where T : ResultObject, new()
{
StartTask(source, taskName, itemId, parameters);
T res = new T();
res.IsSuccess = true;
return res;
}
public static T StartResultTask<T>(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<T>(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<T>(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 #endregion
} }

View file

@ -103,8 +103,7 @@ namespace WebsitePanel.EnterpriseServer
UserInfo user = UserController.GetUserInternally(userId); UserInfo user = UserController.GetUserInternally(userId);
// place log record // place log record
TaskManager.StartTask(taskId, "USER", "DELETE", user.Username); TaskManager.StartTask(taskId, "USER", "DELETE", user.Username, userId);
TaskManager.ItemId = userId;
try try
{ {

View file

@ -448,8 +448,12 @@ namespace WebsitePanel.EnterpriseServer
return BusinessErrorCodes.ERROR_USER_ALREADY_EXISTS; return BusinessErrorCodes.ERROR_USER_ALREADY_EXISTS;
} }
TaskManager.ItemId = userId; BackgroundTask topTask = TaskController.GetTopTask();
TaskManager.TaskParameters["SendLetter"] = sendLetter;
topTask.ItemId = userId;
topTask.UpdateParamValue("SendLetter", sendLetter);
TaskController.UpdateTask(topTask);
return userId; return userId;
} }
@ -518,8 +522,7 @@ namespace WebsitePanel.EnterpriseServer
try try
{ {
// start task // start task
TaskManager.StartTask(taskId, "USER", "UPDATE", user.Username); TaskManager.StartTask(taskId, "USER", "UPDATE", user.Username, user.UserId);
TaskManager.ItemId = user.UserId;
// check account // check account
int accountCheck = SecurityContext.CheckAccount(DemandAccount.NotDemo); int accountCheck = SecurityContext.CheckAccount(DemandAccount.NotDemo);
@ -637,8 +640,7 @@ namespace WebsitePanel.EnterpriseServer
UserInfo user = GetUserInternally(userId); UserInfo user = GetUserInternally(userId);
// place log record // place log record
TaskManager.StartTask("USER", "CHANGE_PASSWORD", user.Username); TaskManager.StartTask("USER", "CHANGE_PASSWORD", user.Username, user.UserId);
TaskManager.ItemId = user.UserId;
try try
{ {
@ -675,8 +677,7 @@ namespace WebsitePanel.EnterpriseServer
UserInfo user = GetUserInternally(userId); UserInfo user = GetUserInternally(userId);
// place log record // place log record
TaskManager.StartTask(taskId, "USER", "CHANGE_STATUS", user.Username); TaskManager.StartTask(taskId, "USER", "CHANGE_STATUS", user.Username, user.UserId);
TaskManager.ItemId = user.UserId;
// update user packages // update user packages
List<PackageInfo> packages = new List<PackageInfo>(); List<PackageInfo> packages = new List<PackageInfo>();
@ -796,8 +797,7 @@ namespace WebsitePanel.EnterpriseServer
UserInfo user = GetUserInternally(settings.UserId); UserInfo user = GetUserInternally(settings.UserId);
// place log record // place log record
TaskManager.StartTask("USER", "UPDATE_SETTINGS", user.Username); TaskManager.StartTask("USER", "UPDATE_SETTINGS", user.Username, user.UserId);
TaskManager.ItemId = user.UserId;
try try
{ {

View file

@ -583,9 +583,7 @@ namespace WebsitePanel.EnterpriseServer
string summaryLetterEmail) string summaryLetterEmail)
{ {
// start task // start task
TaskManager.StartTask(taskId, "VPS", "CREATE", vm.Name); TaskManager.StartTask(taskId, "VPS", "CREATE", vm.Name, vm.Id, vm.PackageId);
TaskManager.ItemId = vm.Id;
TaskManager.PackageId = vm.PackageId;
try try
{ {
@ -1647,12 +1645,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion #endregion
// start task // start task
res = TaskManager.StartResultTask<ResultObject>("VPS", "UPDATE_HOSTNAME"); res = TaskManager.StartResultTask<ResultObject>("VPS", "UPDATE_HOSTNAME", vm.Id, vm.Name, vm.PackageId);
// log item info
TaskManager.ItemId = vm.Id;
TaskManager.ItemName = vm.Name;
TaskManager.PackageId = vm.PackageId;
try try
{ {
@ -1767,9 +1760,13 @@ namespace WebsitePanel.EnterpriseServer
return res; return res;
} }
TaskManager.ItemId = machine.Id; BackgroundTask topTask = TaskController.GetTopTask();
TaskManager.ItemName = machine.Name; topTask.ItemId = machine.Id;
TaskManager.PackageId = machine.PackageId; topTask.ItemName = machine.Name;
topTask.PackageId = machine.PackageId;
TaskController.UpdateTask(topTask);
TaskManager.WriteParameter("New state", state); TaskManager.WriteParameter("New state", state);
// load proxy // load proxy
@ -1881,12 +1878,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion #endregion
// start task // start task
res = TaskManager.StartResultTask<ResultObject>("VPS", "CHANGE_ADMIN_PASSWORD"); res = TaskManager.StartResultTask<ResultObject>("VPS", "CHANGE_ADMIN_PASSWORD", vm.Id, vm.Name, vm.PackageId);
// log item info
TaskManager.ItemId = vm.Id;
TaskManager.ItemName = vm.Name;
TaskManager.PackageId = vm.PackageId;
try try
{ {
@ -1983,12 +1975,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion #endregion
// start task // start task
res = TaskManager.StartResultTask<ResultObject>("VPS", "UPDATE_CONFIGURATION"); res = TaskManager.StartResultTask<ResultObject>("VPS", "UPDATE_CONFIGURATION", vm.Id, vm.Name, vm.PackageId);
// log item info
TaskManager.ItemId = vm.Id;
TaskManager.ItemName = vm.Name;
TaskManager.PackageId = vm.PackageId;
try try
{ {
@ -2185,12 +2172,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion #endregion
// start task // start task
res = TaskManager.StartResultTask<ResultObject>("VPS", "INSERT_DVD_DISK"); res = TaskManager.StartResultTask<ResultObject>("VPS", "INSERT_DVD_DISK", vm.Id, vm.Name, vm.PackageId);
// log item info
TaskManager.ItemId = vm.Id;
TaskManager.ItemName = vm.Name;
TaskManager.PackageId = vm.PackageId;
try try
{ {
@ -2246,12 +2228,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion #endregion
// start task // start task
res = TaskManager.StartResultTask<ResultObject>("VPS", "EJECT_DVD_DISK"); res = TaskManager.StartResultTask<ResultObject>("VPS", "EJECT_DVD_DISK", vm.Id, vm.Name, vm.PackageId);
// log item info
TaskManager.ItemId = vm.Id;
TaskManager.ItemName = vm.Name;
TaskManager.PackageId = vm.PackageId;
try try
{ {
@ -2326,12 +2303,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion #endregion
// start task // start task
res = TaskManager.StartResultTask<ResultObject>("VPS", "TAKE_SNAPSHOT"); res = TaskManager.StartResultTask<ResultObject>("VPS", "TAKE_SNAPSHOT", vm.Id, vm.Name, vm.PackageId);
// log item info
TaskManager.ItemId = vm.Id;
TaskManager.ItemName = vm.Name;
TaskManager.PackageId = vm.PackageId;
try try
{ {
@ -2401,12 +2373,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion #endregion
// start task // start task
res = TaskManager.StartResultTask<ResultObject>("VPS", "APPLY_SNAPSHOT"); res = TaskManager.StartResultTask<ResultObject>("VPS", "APPLY_SNAPSHOT", vm.Id, vm.Name, vm.PackageId);
// log item info
TaskManager.ItemId = vm.Id;
TaskManager.ItemName = vm.Name;
TaskManager.PackageId = vm.PackageId;
try try
{ {
@ -2472,12 +2439,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion #endregion
// start task // start task
res = TaskManager.StartResultTask<ResultObject>("VPS", "RENAME_SNAPSHOT"); res = TaskManager.StartResultTask<ResultObject>("VPS", "RENAME_SNAPSHOT", vm.Id, vm.Name, vm.PackageId);
// log item info
TaskManager.ItemId = vm.Id;
TaskManager.ItemName = vm.Name;
TaskManager.PackageId = vm.PackageId;
try try
{ {
@ -2526,12 +2488,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion #endregion
// start task // start task
res = TaskManager.StartResultTask<ResultObject>("VPS", "DELETE_SNAPSHOT"); res = TaskManager.StartResultTask<ResultObject>("VPS", "DELETE_SNAPSHOT", vm.Id, vm.Name, vm.PackageId);
// log item info
TaskManager.ItemId = vm.Id;
TaskManager.ItemName = vm.Name;
TaskManager.PackageId = vm.PackageId;
try try
{ {
@ -2587,12 +2544,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion #endregion
// start task // start task
res = TaskManager.StartResultTask<ResultObject>("VPS", "DELETE_SNAPSHOT_SUBTREE"); res = TaskManager.StartResultTask<ResultObject>("VPS", "DELETE_SNAPSHOT_SUBTREE", vm.Id, vm.Name, vm.PackageId);
// log item info
TaskManager.ItemId = vm.Id;
TaskManager.ItemName = vm.Name;
TaskManager.PackageId = vm.PackageId;
try try
{ {
@ -2776,12 +2728,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion #endregion
// start task // start task
res = TaskManager.StartResultTask<ResultObject>("VPS", "ADD_EXTERNAL_IP"); res = TaskManager.StartResultTask<ResultObject>("VPS", "ADD_EXTERNAL_IP", vm.Id, vm.Name, vm.PackageId);
// log item info
TaskManager.ItemId = vm.Id;
TaskManager.ItemName = vm.Name;
TaskManager.PackageId = vm.PackageId;
try try
{ {
@ -2841,12 +2788,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion #endregion
// start task // start task
res = TaskManager.StartResultTask<ResultObject>("VPS", "SET_PRIMARY_EXTERNAL_IP"); res = TaskManager.StartResultTask<ResultObject>("VPS", "SET_PRIMARY_EXTERNAL_IP", vm.Id, vm.Name, vm.PackageId);
// log item info
TaskManager.ItemId = vm.Id;
TaskManager.ItemName = vm.Name;
TaskManager.PackageId = vm.PackageId;
try try
{ {
@ -2893,12 +2835,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion #endregion
// start task // start task
res = TaskManager.StartResultTask<ResultObject>("VPS", "DELETE_EXTERNAL_IP"); res = TaskManager.StartResultTask<ResultObject>("VPS", "DELETE_EXTERNAL_IP", vm.Id, vm.Name, vm.PackageId);
// log item info
TaskManager.ItemId = vm.Id;
TaskManager.ItemName = vm.Name;
TaskManager.PackageId = vm.PackageId;
try try
{ {
@ -3025,12 +2962,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion #endregion
// start task // start task
res = TaskManager.StartResultTask<ResultObject>("VPS", "ADD_PRIVATE_IP"); res = TaskManager.StartResultTask<ResultObject>("VPS", "ADD_PRIVATE_IP", vm.Id, vm.Name, vm.PackageId);
// log item info
TaskManager.ItemId = vm.Id;
TaskManager.ItemName = vm.Name;
TaskManager.PackageId = vm.PackageId;
try try
{ {
@ -3148,12 +3080,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion #endregion
// start task // start task
res = TaskManager.StartResultTask<ResultObject>("VPS", "SET_PRIMARY_PRIVATE_IP"); res = TaskManager.StartResultTask<ResultObject>("VPS", "SET_PRIMARY_PRIVATE_IP", vm.Id, vm.Name, vm.PackageId);
// log item info
TaskManager.ItemId = vm.Id;
TaskManager.ItemName = vm.Name;
TaskManager.PackageId = vm.PackageId;
try try
{ {
@ -3200,12 +3127,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion #endregion
// start task // start task
res = TaskManager.StartResultTask<ResultObject>("VPS", "DELETE_PRIVATE_IP"); res = TaskManager.StartResultTask<ResultObject>("VPS", "DELETE_PRIVATE_IP", vm.Id, vm.Name, vm.PackageId);
// log item info
TaskManager.ItemId = vm.Id;
TaskManager.ItemName = vm.Name;
TaskManager.PackageId = vm.PackageId;
try try
{ {
@ -3368,12 +3290,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion #endregion
// start task // start task
res = TaskManager.StartResultTask<ResultObject>("VPS", "DELETE"); res = TaskManager.StartResultTask<ResultObject>("VPS", "DELETE", vm.Id, vm.Name, vm.PackageId);
// log item info
TaskManager.ItemId = vm.Id;
TaskManager.ItemName = vm.Name;
TaskManager.PackageId = vm.PackageId;
try try
{ {
@ -3538,11 +3455,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion #endregion
// start task // start task
res = TaskManager.StartResultTask<ResultObject>("VPS", "SEND_SUMMARY_LETTER"); res = TaskManager.StartResultTask<ResultObject>("VPS", "SEND_SUMMARY_LETTER", vm.Id, vm.Name, vm.PackageId);
TaskManager.ItemId = vm.Id;
TaskManager.ItemName = vm.Name;
TaskManager.PackageId = vm.PackageId;
try try
{ {

View file

@ -276,9 +276,7 @@ namespace WebsitePanel.EnterpriseServer
Guid taksId = Guid.NewGuid(); Guid taksId = Guid.NewGuid();
res = TaskManager.StartResultTask<ResultObject>("VPSForPC", "CREATE", taksId); res = TaskManager.StartResultTask<ResultObject>("VPSForPC", "CREATE", taksId, vmName, packageId);
TaskManager.ItemName = vmName;
TaskManager.PackageId = packageId;
string templateName = vmTemplate.Name; string templateName = vmTemplate.Name;
@ -344,9 +342,7 @@ namespace WebsitePanel.EnterpriseServer
IntResult res = new IntResult(); IntResult res = new IntResult();
//Create Task //Create Task
res = TaskManager.StartResultTask<IntResult>("VPSForPC", "CREATE"); res = TaskManager.StartResultTask<IntResult>("VPSForPC", "CREATE", vmName, packageId);
TaskManager.PackageId = packageId;
TaskManager.ItemName = vmName;
// meta item // meta item
VMInfo vmInfo = null; VMInfo vmInfo = null;
@ -515,6 +511,7 @@ namespace WebsitePanel.EnterpriseServer
{ {
vmInfo.VmId = PackageController.AddPackageItem(vmInfo); vmInfo.VmId = PackageController.AddPackageItem(vmInfo);
vmInfo.Id = vmInfo.VmId; vmInfo.Id = vmInfo.VmId;
TaskManager.ItemId = vmInfo.VmId; TaskManager.ItemId = vmInfo.VmId;
} }
catch (Exception ex) catch (Exception ex)
@ -568,10 +565,7 @@ namespace WebsitePanel.EnterpriseServer
{ {
Guid taksId = Guid.NewGuid(); Guid taksId = Guid.NewGuid();
ResultObject taskInfo = TaskManager.StartResultTask<ResultObject>("VPSForPC", "CREATE", taksId); ResultObject taskInfo = TaskManager.StartResultTask<ResultObject>("VPSForPC", "CREATE", taksId, vm.Id, vm.Name, vm.PackageId);
TaskManager.ItemId = vm.Id;
TaskManager.ItemName = vm.Name;
TaskManager.PackageId = vm.PackageId;
vm.CurrentTaskId = taksId.ToString("N"); vm.CurrentTaskId = taksId.ToString("N");
@ -1674,12 +1668,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion #endregion
// start task // start task
res = TaskManager.StartResultTask<ResultObject>("VPS", "UPDATE_HOSTNAME"); res = TaskManager.StartResultTask<ResultObject>("VPS", "UPDATE_HOSTNAME", vm.Id, vm.Name, vm.PackageId);
// log item info
TaskManager.ItemId = vm.Id;
TaskManager.ItemName = vm.Name;
TaskManager.PackageId = vm.PackageId;
try try
{ {
@ -1814,9 +1803,13 @@ namespace WebsitePanel.EnterpriseServer
return res; return res;
} }
TaskManager.ItemId = machine.Id; BackgroundTask topTask = TaskController.GetTopTask();
TaskManager.ItemName = machine.Name; topTask.ItemId = machine.Id;
TaskManager.PackageId = machine.PackageId; topTask.ItemName = machine.Name;
topTask.PackageId = machine.PackageId;
TaskController.UpdateTask(topTask);
TaskManager.WriteParameter("New state", state); TaskManager.WriteParameter("New state", state);
// load proxy // load proxy
@ -1927,12 +1920,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion #endregion
// start task // start task
res = TaskManager.StartResultTask<ResultObject>("VPS", "CHANGE_ADMIN_PASSWORD"); res = TaskManager.StartResultTask<ResultObject>("VPS", "CHANGE_ADMIN_PASSWORD", vm.Id, vm.Name, vm.PackageId);
// log item info
TaskManager.ItemId = vm.Id;
TaskManager.ItemName = vm.Name;
TaskManager.PackageId = vm.PackageId;
try try
{ {
@ -2029,12 +2017,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion #endregion
// start task // start task
res = TaskManager.StartResultTask<ResultObject>("VPS", "UPDATE_CONFIGURATION"); res = TaskManager.StartResultTask<ResultObject>("VPS", "UPDATE_CONFIGURATION", vm.Id, vm.Name, vm.PackageId);
// log item info
TaskManager.ItemId = vm.Id;
TaskManager.ItemName = vm.Name;
TaskManager.PackageId = vm.PackageId;
try try
{ {
@ -2222,12 +2205,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion #endregion
// start task // start task
res = TaskManager.StartResultTask<ResultObject>("VPS", "INSERT_DVD_DISK"); res = TaskManager.StartResultTask<ResultObject>("VPS", "INSERT_DVD_DISK", vm.Id, vm.Name, vm.PackageId);
// log item info
TaskManager.ItemId = vm.Id;
TaskManager.ItemName = vm.Name;
TaskManager.PackageId = vm.PackageId;
try try
{ {
@ -2283,12 +2261,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion #endregion
// start task // start task
res = TaskManager.StartResultTask<ResultObject>("VPS", "EJECT_DVD_DISK"); res = TaskManager.StartResultTask<ResultObject>("VPS", "EJECT_DVD_DISK", vm.Id, vm.Name, vm.PackageId);
// log item info
TaskManager.ItemId = vm.Id;
TaskManager.ItemName = vm.Name;
TaskManager.PackageId = vm.PackageId;
try try
{ {
@ -2363,12 +2336,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion #endregion
// start task // start task
res = TaskManager.StartResultTask<ResultObject>("VPS", "TAKE_SNAPSHOT"); res = TaskManager.StartResultTask<ResultObject>("VPS", "TAKE_SNAPSHOT", vm.Id, vm.Name, vm.PackageId);
// log item info
TaskManager.ItemId = vm.Id;
TaskManager.ItemName = vm.Name;
TaskManager.PackageId = vm.PackageId;
try try
{ {
@ -2438,12 +2406,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion #endregion
// start task // start task
res = TaskManager.StartResultTask<ResultObject>("VPS", "APPLY_SNAPSHOT"); res = TaskManager.StartResultTask<ResultObject>("VPS", "APPLY_SNAPSHOT", vm.Id, vm.Name, vm.PackageId);
// log item info
TaskManager.ItemId = vm.Id;
TaskManager.ItemName = vm.Name;
TaskManager.PackageId = vm.PackageId;
try try
{ {
@ -2514,12 +2477,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion #endregion
// start task // start task
res = TaskManager.StartResultTask<ResultObject>("VPS", "RENAME_SNAPSHOT"); res = TaskManager.StartResultTask<ResultObject>("VPS", "RENAME_SNAPSHOT", vm.Id, vm.Name, vm.PackageId);
// log item info
TaskManager.ItemId = vm.Id;
TaskManager.ItemName = vm.Name;
TaskManager.PackageId = vm.PackageId;
try try
{ {
@ -2568,12 +2526,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion #endregion
// start task // start task
res = TaskManager.StartResultTask<ResultObject>("VPS", "DELETE_SNAPSHOT"); res = TaskManager.StartResultTask<ResultObject>("VPS", "DELETE_SNAPSHOT", vm.Id, vm.Name, vm.PackageId);
// log item info
TaskManager.ItemId = vm.Id;
TaskManager.ItemName = vm.Name;
TaskManager.PackageId = vm.PackageId;
try try
{ {
@ -2629,12 +2582,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion #endregion
// start task // start task
res = TaskManager.StartResultTask<ResultObject>("VPS", "DELETE_SNAPSHOT_SUBTREE"); res = TaskManager.StartResultTask<ResultObject>("VPS", "DELETE_SNAPSHOT_SUBTREE", vm.Id, vm.Name, vm.PackageId);
// log item info
TaskManager.ItemId = vm.Id;
TaskManager.ItemName = vm.Name;
TaskManager.PackageId = vm.PackageId;
try try
{ {
@ -2825,12 +2773,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion #endregion
// start task // start task
res = TaskManager.StartResultTask<ResultObject>("VPS", "ADD_EXTERNAL_IP"); res = TaskManager.StartResultTask<ResultObject>("VPS", "ADD_EXTERNAL_IP", vm.Id, vm.Name, vm.PackageId);
// log item info
TaskManager.ItemId = vm.Id;
TaskManager.ItemName = vm.Name;
TaskManager.PackageId = vm.PackageId;
try try
{ {
@ -2890,12 +2833,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion #endregion
// start task // start task
res = TaskManager.StartResultTask<ResultObject>("VPS", "SET_PRIMARY_EXTERNAL_IP"); res = TaskManager.StartResultTask<ResultObject>("VPS", "SET_PRIMARY_EXTERNAL_IP", vm.Id, vm.Name, vm.PackageId);
// log item info
TaskManager.ItemId = vm.Id;
TaskManager.ItemName = vm.Name;
TaskManager.PackageId = vm.PackageId;
try try
{ {
@ -2942,12 +2880,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion #endregion
// start task // start task
res = TaskManager.StartResultTask<ResultObject>("VPS", "DELETE_EXTERNAL_IP"); res = TaskManager.StartResultTask<ResultObject>("VPS", "DELETE_EXTERNAL_IP", vm.Id, vm.Name, vm.PackageId);
// log item info
TaskManager.ItemId = vm.Id;
TaskManager.ItemName = vm.Name;
TaskManager.PackageId = vm.PackageId;
try try
{ {
@ -3062,12 +2995,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion #endregion
// start task // start task
res = TaskManager.StartResultTask<ResultObject>("VPS", "ADD_PRIVATE_IP"); res = TaskManager.StartResultTask<ResultObject>("VPS", "ADD_PRIVATE_IP", vm.Id, vm.Name, vm.PackageId);
// log item info
TaskManager.ItemId = vm.Id;
TaskManager.ItemName = vm.Name;
TaskManager.PackageId = vm.PackageId;
try try
{ {
@ -3182,12 +3110,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion #endregion
// start task // start task
res = TaskManager.StartResultTask<ResultObject>("VPS", "SET_PRIMARY_PRIVATE_IP"); res = TaskManager.StartResultTask<ResultObject>("VPS", "SET_PRIMARY_PRIVATE_IP", vm.Id, vm.Name, vm.PackageId);
// log item info
TaskManager.ItemId = vm.Id;
TaskManager.ItemName = vm.Name;
TaskManager.PackageId = vm.PackageId;
try try
{ {
@ -3234,12 +3157,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion #endregion
// start task // start task
res = TaskManager.StartResultTask<ResultObject>("VPS", "DELETE_PRIVATE_IP"); res = TaskManager.StartResultTask<ResultObject>("VPS", "DELETE_PRIVATE_IP", vm.Id, vm.Name, vm.PackageId);
// log item info
TaskManager.ItemId = vm.Id;
TaskManager.ItemName = vm.Name;
TaskManager.PackageId = vm.PackageId;
try try
{ {
@ -3384,12 +3302,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion #endregion
// start task // start task
res = TaskManager.StartResultTask<ResultObject>("VPSForPC", "DELETE"); res = TaskManager.StartResultTask<ResultObject>("VPSForPC", "DELETE", vm.Id, vm.Name, vm.PackageId);
// log item info
TaskManager.ItemId = vm.Id;
TaskManager.ItemName = vm.Name;
TaskManager.PackageId = vm.PackageId;
try try
{ {
@ -3547,11 +3460,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion #endregion
// start task // start task
res = TaskManager.StartResultTask<ResultObject>("VPS", "SEND_SUMMARY_LETTER"); res = TaskManager.StartResultTask<ResultObject>("VPS", "SEND_SUMMARY_LETTER", vm.Id, vm.Name, vm.PackageId);
TaskManager.ItemId = vm.Id;
TaskManager.ItemName = vm.Name;
TaskManager.PackageId = vm.PackageId;
try try
{ {

View file

@ -496,8 +496,7 @@ namespace WebsitePanel.EnterpriseServer
return BusinessErrorCodes.ERROR_WEB_SITE_PACKAGE_ITEM_NOT_FOUND; return BusinessErrorCodes.ERROR_WEB_SITE_PACKAGE_ITEM_NOT_FOUND;
// place log record // place log record
TaskManager.StartTask("WEB_SITE", "UPDATE", siteItem.Name); TaskManager.StartTask("WEB_SITE", "UPDATE", siteItem.Name, site.Id);
TaskManager.ItemId = site.Id;
try try
{ {
@ -559,8 +558,8 @@ namespace WebsitePanel.EnterpriseServer
if (packageCheck < 0) return packageCheck; if (packageCheck < 0) return packageCheck;
// place log record // place log record
TaskManager.StartTask("WEB_SITE", "CHANGE_STATE", siteItem.Name); TaskManager.StartTask("WEB_SITE", "CHANGE_STATE", siteItem.Name, siteItemId);
TaskManager.ItemId = siteItemId;
TaskManager.WriteParameter("New state", state); TaskManager.WriteParameter("New state", state);
try try
@ -595,8 +594,7 @@ namespace WebsitePanel.EnterpriseServer
return BusinessErrorCodes.ERROR_WEB_SITE_PACKAGE_ITEM_NOT_FOUND; return BusinessErrorCodes.ERROR_WEB_SITE_PACKAGE_ITEM_NOT_FOUND;
// place log record // place log record
TaskManager.StartTask("WEB_SITE", "DELETE", siteItem.Name); TaskManager.StartTask("WEB_SITE", "DELETE", siteItem.Name, siteItemId);
TaskManager.ItemId = siteItemId;
// delete web site // delete web site
try try
@ -710,8 +708,7 @@ namespace WebsitePanel.EnterpriseServer
} }
// place log record // place log record
TaskManager.StartTask("WEB_SITE", "SWITCH_TO_DEDICATED_IP", siteItem.Name); TaskManager.StartTask("WEB_SITE", "SWITCH_TO_DEDICATED_IP", siteItem.Name, siteItemId);
TaskManager.ItemId = siteItemId;
try try
{ {
@ -886,8 +883,7 @@ namespace WebsitePanel.EnterpriseServer
// place log record // place log record
TaskManager.StartTask("WEB_SITE", "SWITCH_TO_SHARED_IP", siteItem.Name); TaskManager.StartTask("WEB_SITE", "SWITCH_TO_SHARED_IP", siteItem.Name, siteItemId);
TaskManager.ItemId = siteItemId;
try try
{ {
@ -1223,8 +1219,8 @@ namespace WebsitePanel.EnterpriseServer
IPAddressInfo ip = ServerController.GetIPAddress(siteItem.SiteIPAddressId); IPAddressInfo ip = ServerController.GetIPAddress(siteItem.SiteIPAddressId);
// place log record // place log record
TaskManager.StartTask("WEB_SITE", "ADD_POINTER", siteItem.Name); TaskManager.StartTask("WEB_SITE", "ADD_POINTER", siteItem.Name, siteItemId);
TaskManager.ItemId = siteItemId;
TaskManager.WriteParameter("Domain pointer", domain.DomainName); TaskManager.WriteParameter("Domain pointer", domain.DomainName);
TaskManager.WriteParameter("Host name", hostName); TaskManager.WriteParameter("Host name", hostName);
TaskManager.WriteParameter("updateWebSite", updateWebSite.ToString()); TaskManager.WriteParameter("updateWebSite", updateWebSite.ToString());
@ -1425,8 +1421,8 @@ namespace WebsitePanel.EnterpriseServer
IPAddressInfo ip = ServerController.GetIPAddress(siteItem.SiteIPAddressId); IPAddressInfo ip = ServerController.GetIPAddress(siteItem.SiteIPAddressId);
// place log record // place log record
TaskManager.StartTask("WEB_SITE", "DELETE_POINTER", siteItem.Name); TaskManager.StartTask("WEB_SITE", "DELETE_POINTER", siteItem.Name, siteItemId);
TaskManager.ItemId = siteItemId;
TaskManager.WriteParameter("Domain pointer", domain.DomainName); TaskManager.WriteParameter("Domain pointer", domain.DomainName);
TaskManager.WriteParameter("updateWebSite", updateWebSite.ToString()); TaskManager.WriteParameter("updateWebSite", updateWebSite.ToString());
@ -1587,8 +1583,8 @@ namespace WebsitePanel.EnterpriseServer
if (packageCheck < 0) return packageCheck; if (packageCheck < 0) return packageCheck;
// place log record // place log record
TaskManager.StartTask("WEB_SITE", "ADD_VDIR", vdirName); TaskManager.StartTask("WEB_SITE", "ADD_VDIR", vdirName, siteItemId);
TaskManager.ItemId = siteItemId;
TaskManager.WriteParameter("Web site", siteItem.Name); TaskManager.WriteParameter("Web site", siteItem.Name);
try try
@ -1641,8 +1637,8 @@ namespace WebsitePanel.EnterpriseServer
return BusinessErrorCodes.ERROR_WEB_SITE_PACKAGE_ITEM_NOT_FOUND; return BusinessErrorCodes.ERROR_WEB_SITE_PACKAGE_ITEM_NOT_FOUND;
// place log record // place log record
TaskManager.StartTask("WEB_SITE", "UPDATE_VDIR", vdir.Name); TaskManager.StartTask("WEB_SITE", "UPDATE_VDIR", vdir.Name, siteItemId);
TaskManager.ItemId = siteItemId;
TaskManager.WriteParameter("Web site", siteItem.Name); TaskManager.WriteParameter("Web site", siteItem.Name);
try try
@ -1680,8 +1676,8 @@ namespace WebsitePanel.EnterpriseServer
// place log record // place log record
// place log record // place log record
TaskManager.StartTask("WEB_SITE", "DELETE_VDIR", vdirName); TaskManager.StartTask("WEB_SITE", "DELETE_VDIR", vdirName, siteItemId);
TaskManager.ItemId = siteItemId;
TaskManager.WriteParameter("Web site", siteItem.Name); TaskManager.WriteParameter("Web site", siteItem.Name);
try try
@ -1721,8 +1717,8 @@ namespace WebsitePanel.EnterpriseServer
if (packageCheck < 0) return packageCheck; if (packageCheck < 0) return packageCheck;
// place log record // place log record
TaskManager.StartTask("WEB_SITE", "INSTALL_FP", siteItem.Name); TaskManager.StartTask("WEB_SITE", "INSTALL_FP", siteItem.Name, siteItemId);
TaskManager.ItemId = siteItemId;
TaskManager.WriteParameter("FrontPage username", username); TaskManager.WriteParameter("FrontPage username", username);
try try
@ -1774,8 +1770,8 @@ namespace WebsitePanel.EnterpriseServer
return BusinessErrorCodes.ERROR_WEB_SITE_PACKAGE_ITEM_NOT_FOUND; return BusinessErrorCodes.ERROR_WEB_SITE_PACKAGE_ITEM_NOT_FOUND;
// place log record // place log record
TaskManager.StartTask("WEB_SITE", "UNINSTALL_FP", siteItem.Name); TaskManager.StartTask("WEB_SITE", "UNINSTALL_FP", siteItem.Name, siteItemId);
TaskManager.ItemId = siteItemId;
TaskManager.WriteParameter("FrontPage username", siteItem.FrontPageAccount); TaskManager.WriteParameter("FrontPage username", siteItem.FrontPageAccount);
try try
@ -1815,8 +1811,8 @@ namespace WebsitePanel.EnterpriseServer
return BusinessErrorCodes.ERROR_WEB_SITE_PACKAGE_ITEM_NOT_FOUND; return BusinessErrorCodes.ERROR_WEB_SITE_PACKAGE_ITEM_NOT_FOUND;
// place log record // place log record
TaskManager.StartTask("WEB_SITE", "CHANGE_FP_PASSWORD", siteItem.Name); TaskManager.StartTask("WEB_SITE", "CHANGE_FP_PASSWORD", siteItem.Name, siteItemId);
TaskManager.ItemId = siteItemId;
TaskManager.WriteParameter("FrontPage username", siteItem.FrontPageAccount); TaskManager.WriteParameter("FrontPage username", siteItem.FrontPageAccount);
try try
@ -1858,8 +1854,7 @@ namespace WebsitePanel.EnterpriseServer
return BusinessErrorCodes.ERROR_WEB_SITE_PACKAGE_ITEM_NOT_FOUND; return BusinessErrorCodes.ERROR_WEB_SITE_PACKAGE_ITEM_NOT_FOUND;
// place log record // place log record
TaskManager.StartTask("WEB_SITE", "INSTALL_SECURED_FOLDERS", siteItem.Name); TaskManager.StartTask("WEB_SITE", "INSTALL_SECURED_FOLDERS", siteItem.Name, siteItemId);
TaskManager.ItemId = siteItemId;
try try
{ {
@ -1892,8 +1887,7 @@ namespace WebsitePanel.EnterpriseServer
return BusinessErrorCodes.ERROR_WEB_SITE_PACKAGE_ITEM_NOT_FOUND; return BusinessErrorCodes.ERROR_WEB_SITE_PACKAGE_ITEM_NOT_FOUND;
// place log record // place log record
TaskManager.StartTask("WEB_SITE", "UNINSTALL_SECURED_FOLDERS", siteItem.Name); TaskManager.StartTask("WEB_SITE", "UNINSTALL_SECURED_FOLDERS", siteItem.Name, siteItemId);
TaskManager.ItemId = siteItemId;
try try
{ {
@ -1947,8 +1941,8 @@ namespace WebsitePanel.EnterpriseServer
folder.Path = FilesController.CorrectRelativePath(folder.Path); folder.Path = FilesController.CorrectRelativePath(folder.Path);
// place log record // place log record
TaskManager.StartTask("WEB_SITE", "UPDATE_SECURED_FOLDER", siteItem.Name); TaskManager.StartTask("WEB_SITE", "UPDATE_SECURED_FOLDER", siteItem.Name, siteItemId);
TaskManager.ItemId = siteItemId;
TaskManager.WriteParameter("Folder", folder.Path); TaskManager.WriteParameter("Folder", folder.Path);
try try
@ -1977,8 +1971,8 @@ namespace WebsitePanel.EnterpriseServer
return BusinessErrorCodes.ERROR_WEB_SITE_PACKAGE_ITEM_NOT_FOUND; return BusinessErrorCodes.ERROR_WEB_SITE_PACKAGE_ITEM_NOT_FOUND;
// place log record // place log record
TaskManager.StartTask("WEB_SITE", "DELETE_SECURED_FOLDER", siteItem.Name); TaskManager.StartTask("WEB_SITE", "DELETE_SECURED_FOLDER", siteItem.Name, siteItemId);
TaskManager.ItemId = siteItemId;
TaskManager.WriteParameter("Folder", folderPath); TaskManager.WriteParameter("Folder", folderPath);
try try
@ -2033,8 +2027,8 @@ namespace WebsitePanel.EnterpriseServer
return BusinessErrorCodes.ERROR_WEB_SITE_PACKAGE_ITEM_NOT_FOUND; return BusinessErrorCodes.ERROR_WEB_SITE_PACKAGE_ITEM_NOT_FOUND;
// place log record // place log record
TaskManager.StartTask("WEB_SITE", "UPDATE_SECURED_USER", siteItem.Name); TaskManager.StartTask("WEB_SITE", "UPDATE_SECURED_USER", siteItem.Name, siteItemId);
TaskManager.ItemId = siteItemId;
TaskManager.WriteParameter("User", user.Name); TaskManager.WriteParameter("User", user.Name);
try try
@ -2063,8 +2057,8 @@ namespace WebsitePanel.EnterpriseServer
return BusinessErrorCodes.ERROR_WEB_SITE_PACKAGE_ITEM_NOT_FOUND; return BusinessErrorCodes.ERROR_WEB_SITE_PACKAGE_ITEM_NOT_FOUND;
// place log record // place log record
TaskManager.StartTask("WEB_SITE", "DELETE_SECURED_USER", siteItem.Name); TaskManager.StartTask("WEB_SITE", "DELETE_SECURED_USER", siteItem.Name, siteItemId);
TaskManager.ItemId = siteItemId;
TaskManager.WriteParameter("User", userName); TaskManager.WriteParameter("User", userName);
try try
@ -2119,8 +2113,8 @@ namespace WebsitePanel.EnterpriseServer
return BusinessErrorCodes.ERROR_WEB_SITE_PACKAGE_ITEM_NOT_FOUND; return BusinessErrorCodes.ERROR_WEB_SITE_PACKAGE_ITEM_NOT_FOUND;
// place log record // place log record
TaskManager.StartTask("WEB_SITE", "UPDATE_SECURED_GROUP", siteItem.Name); TaskManager.StartTask("WEB_SITE", "UPDATE_SECURED_GROUP", siteItem.Name, siteItemId);
TaskManager.ItemId = siteItemId;
TaskManager.WriteParameter("Group", group.Name); TaskManager.WriteParameter("Group", group.Name);
try try
@ -2149,8 +2143,8 @@ namespace WebsitePanel.EnterpriseServer
return BusinessErrorCodes.ERROR_WEB_SITE_PACKAGE_ITEM_NOT_FOUND; return BusinessErrorCodes.ERROR_WEB_SITE_PACKAGE_ITEM_NOT_FOUND;
// place log record // place log record
TaskManager.StartTask("WEB_SITE", "DELETE_SECURED_GROUP", siteItem.Name); TaskManager.StartTask("WEB_SITE", "DELETE_SECURED_GROUP", siteItem.Name, siteItemId);
TaskManager.ItemId = siteItemId;
TaskManager.WriteParameter("Group", groupName); TaskManager.WriteParameter("Group", groupName);
try try
@ -2314,9 +2308,12 @@ namespace WebsitePanel.EnterpriseServer
dir.Name = sslDomain + "/" + vdirName; dir.Name = sslDomain + "/" + vdirName;
dir.PackageId = packageId; dir.PackageId = packageId;
dir.ServiceId = serviceId; dir.ServiceId = serviceId;
TaskManager.ItemId = PackageController.AddPackageItem(dir);
return TaskManager.ItemId; int itemId = PackageController.AddPackageItem(dir);
TaskManager.ItemId = itemId;
return itemId;
} }
catch (Exception ex) catch (Exception ex)
{ {
@ -2340,8 +2337,7 @@ namespace WebsitePanel.EnterpriseServer
return 0; return 0;
// place log record // place log record
TaskManager.StartTask("WEB_SITE", "UPDATE_SSL_FOLDER", origVdir.Name); TaskManager.StartTask("WEB_SITE", "UPDATE_SSL_FOLDER", origVdir.Name, vdir.Id);
TaskManager.ItemId = vdir.Id;
try try
{ {
@ -2388,8 +2384,7 @@ namespace WebsitePanel.EnterpriseServer
return 0; return 0;
// place log record // place log record
TaskManager.StartTask("WEB_SITE", "DELETE_SSL_FOLDER", origVdir.Name); TaskManager.StartTask("WEB_SITE", "DELETE_SSL_FOLDER", origVdir.Name, itemId);
TaskManager.ItemId = itemId;
try try
{ {
@ -2892,8 +2887,7 @@ namespace WebsitePanel.EnterpriseServer
return BusinessErrorCodes.ERROR_WEB_SITE_PACKAGE_ITEM_NOT_FOUND; return BusinessErrorCodes.ERROR_WEB_SITE_PACKAGE_ITEM_NOT_FOUND;
// place log record // place log record
TaskManager.StartTask("WEB_SITE", "ENABLE_HELICON_APE", siteItem.Name); TaskManager.StartTask("WEB_SITE", "ENABLE_HELICON_APE", siteItem.Name, siteItemId);
TaskManager.ItemId = siteItemId;
try try
{ {
@ -2927,8 +2921,7 @@ namespace WebsitePanel.EnterpriseServer
return BusinessErrorCodes.ERROR_WEB_SITE_PACKAGE_ITEM_NOT_FOUND; return BusinessErrorCodes.ERROR_WEB_SITE_PACKAGE_ITEM_NOT_FOUND;
// place log record // place log record
TaskManager.StartTask("WEB_SITE", "DISABLE_HELICON_APE", siteItem.Name); TaskManager.StartTask("WEB_SITE", "DISABLE_HELICON_APE", siteItem.Name, siteItemId);
TaskManager.ItemId = siteItemId;
try try
{ {
@ -3070,8 +3063,8 @@ namespace WebsitePanel.EnterpriseServer
folder.Path = FilesController.CorrectRelativePath(folder.Path); folder.Path = FilesController.CorrectRelativePath(folder.Path);
// place log record // place log record
TaskManager.StartTask("WEB_SITE", "UPDATE_HELICON_APE_FOLDER", siteItem.Name); TaskManager.StartTask("WEB_SITE", "UPDATE_HELICON_APE_FOLDER", siteItem.Name, siteItemId);
TaskManager.ItemId = siteItemId;
TaskManager.WriteParameter("Folder", folder.Path); TaskManager.WriteParameter("Folder", folder.Path);
try try
@ -3126,8 +3119,8 @@ namespace WebsitePanel.EnterpriseServer
return BusinessErrorCodes.ERROR_WEB_SITE_PACKAGE_ITEM_NOT_FOUND; return BusinessErrorCodes.ERROR_WEB_SITE_PACKAGE_ITEM_NOT_FOUND;
// place log record // place log record
TaskManager.StartTask("WEB_SITE", "DELETE_HELICON_APE_FOLDER", siteItem.Name); TaskManager.StartTask("WEB_SITE", "DELETE_HELICON_APE_FOLDER", siteItem.Name, siteItemId);
TaskManager.ItemId = siteItemId;
TaskManager.WriteParameter("Folder", folderPath); TaskManager.WriteParameter("Folder", folderPath);
try try
@ -3183,8 +3176,8 @@ namespace WebsitePanel.EnterpriseServer
return BusinessErrorCodes.ERROR_WEB_SITE_PACKAGE_ITEM_NOT_FOUND; return BusinessErrorCodes.ERROR_WEB_SITE_PACKAGE_ITEM_NOT_FOUND;
// place log record // place log record
TaskManager.StartTask("WEB_SITE", "UPDATE_HELICON_APE_USER", siteItem.Name); TaskManager.StartTask("WEB_SITE", "UPDATE_HELICON_APE_USER", siteItem.Name, siteItemId);
TaskManager.ItemId = siteItemId;
TaskManager.WriteParameter("User", user.Name); TaskManager.WriteParameter("User", user.Name);
try try
@ -3213,8 +3206,8 @@ namespace WebsitePanel.EnterpriseServer
return BusinessErrorCodes.ERROR_WEB_SITE_PACKAGE_ITEM_NOT_FOUND; return BusinessErrorCodes.ERROR_WEB_SITE_PACKAGE_ITEM_NOT_FOUND;
// place log record // place log record
TaskManager.StartTask("WEB_SITE", "DELETE_HELICON_APE_USER", siteItem.Name); TaskManager.StartTask("WEB_SITE", "DELETE_HELICON_APE_USER", siteItem.Name, siteItemId);
TaskManager.ItemId = siteItemId;
TaskManager.WriteParameter("User", userName); TaskManager.WriteParameter("User", userName);
try try
@ -3269,8 +3262,8 @@ namespace WebsitePanel.EnterpriseServer
return BusinessErrorCodes.ERROR_WEB_SITE_PACKAGE_ITEM_NOT_FOUND; return BusinessErrorCodes.ERROR_WEB_SITE_PACKAGE_ITEM_NOT_FOUND;
// place log record // place log record
TaskManager.StartTask("WEB_SITE", "UPDATE_HELICON_APE_GROUP", siteItem.Name); TaskManager.StartTask("WEB_SITE", "UPDATE_HELICON_APE_GROUP", siteItem.Name, siteItemId);
TaskManager.ItemId = siteItemId;
TaskManager.WriteParameter("Group", group.Name); TaskManager.WriteParameter("Group", group.Name);
try try
@ -3299,8 +3292,8 @@ namespace WebsitePanel.EnterpriseServer
return BusinessErrorCodes.ERROR_WEB_SITE_PACKAGE_ITEM_NOT_FOUND; return BusinessErrorCodes.ERROR_WEB_SITE_PACKAGE_ITEM_NOT_FOUND;
// place log record // place log record
TaskManager.StartTask("WEB_SITE", "DELETE_HELICON_APE_GROUP", siteItem.Name); TaskManager.StartTask("WEB_SITE", "DELETE_HELICON_APE_GROUP", siteItem.Name, siteItemId);
TaskManager.ItemId = siteItemId;
TaskManager.WriteParameter("Group", groupName); TaskManager.WriteParameter("Group", groupName);
try try

View file

@ -160,6 +160,7 @@
<Compile Include="StatisticsServers\StatisticsServerController.cs" /> <Compile Include="StatisticsServers\StatisticsServerController.cs" />
<Compile Include="System\SystemController.cs" /> <Compile Include="System\SystemController.cs" />
<Compile Include="Tasks\SendEmailNotification.cs" /> <Compile Include="Tasks\SendEmailNotification.cs" />
<Compile Include="Tasks\TaskController.cs" />
<Compile Include="Tasks\TaskEventHandler.cs" /> <Compile Include="Tasks\TaskEventHandler.cs" />
<Compile Include="Tasks\TaskManager.cs" /> <Compile Include="Tasks\TaskManager.cs" />
<Compile Include="Users\UserAsyncWorker.cs" /> <Compile Include="Users\UserAsyncWorker.cs" />

View file

@ -91,17 +91,20 @@ namespace WebsitePanel.EnterpriseServer
public int InstallWebApplication(InstallationInfo inst) public int InstallWebApplication(InstallationInfo inst)
{ {
// place log record // 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("Virtual directory", inst.VirtualDir);
TaskManager.WriteParameter("Database group", inst.DatabaseGroup); TaskManager.WriteParameter("Database group", inst.DatabaseGroup);
TaskManager.ItemId = inst.PackageId;
try try
{ {
// get application info // get application info
app = GetApplication(inst.PackageId, inst.ApplicationId); 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 // check web site for existance
WebSite webSite = WebServerController.GetWebSite(inst.WebSiteId); WebSite webSite = WebServerController.GetWebSite(inst.WebSiteId);