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
{
public class BackgroundTask
{
private string taskId;
private int userId;
private int packageId;
private int effectiveUserId;
private DateTime startDate = DateTime.MinValue;
private DateTime finishDate = DateTime.MinValue;
private int maximumExecutionTime = -1; // seconds
private string source;
private string taskName;
private int scheduleId;
private string itemName;
private int itemId = 0;
private int severity = 0; /* 0 - Info, 1 - Warning, 2 - Error */
private List<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;
#region Properties
public System.DateTime StartDate
public int Id { get; protected set; }
public String TaskId { get; protected set; }
public int ScheduleId { get; set; }
public int PackageId { get; set; }
public int UserId { get; protected set; }
public int EffectiveUserId { get; protected set; }
public String TaskName { get; protected set; }
public int ItemId { get; set; }
public String ItemName { get; set; }
public DateTime StartDate { get; protected set; }
public DateTime FinishDate { get; set; }
public int IndicatorCurrent { get; set; }
public int IndicatorMaximum { get; set; }
public int MaximumExecutionTime { get; set; }
public String Source { get; protected set; }
public int Severity { get; set; }
public bool Completed { get; set; }
public bool NotifyOnComplete { get; set; }
public BackgroundTaskStatus Status { get; set; }
public IList<BackgroundTaskLogRecord> Logs { get; set; }
public IList<BackgroundTaskParameter> Params { get; set; }
#endregion
#region Constructors
public BackgroundTask()
{
get { return this.startDate; }
set { this.startDate = value; }
StartDate = DateTime.Now;
Severity = 0;
IndicatorCurrent = 0;
IndicatorMaximum = 0;
Status = BackgroundTaskStatus.Run;
Logs = new List<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; }
set { this.finishDate = value; }
TaskId = TaskId;
UserId = userId;
EffectiveUserId = effectiveUserId;
Source = source;
TaskName = taskName;
ItemName = itemName;
ItemId = itemId;
ScheduleId = scheduleId;
PackageId = packageId;
MaximumExecutionTime = maximumExecutionTime;
Params = parameters;
}
public string Source
#endregion
#region Methods
public Object GetParamValue(String name)
{
get { return this.source; }
set { this.source = value; }
foreach(BackgroundTaskParameter param in Params)
{
if (param.Name == name)
return param.Value;
}
public string TaskName
{
get { return this.taskName; }
set { this.taskName = value; }
return null;
}
public int ItemId
public void UpdateParamValue(String name, object value)
{
get { return this.itemId; }
set { this.itemId = value; }
foreach (BackgroundTaskParameter param in Params)
{
if (param.Name == name)
{
param.Value = value;
return;
}
}
public int PackageId
{
get { return this.packageId; }
set { this.packageId = value; }
Params.Add(new BackgroundTaskParameter(name, value));
}
public int Severity
public bool ContainsParam(String name)
{
get { return this.severity; }
set { this.severity = value; }
foreach (BackgroundTaskParameter param in Params)
{
if (param.Name == name)
return true;
}
[XmlIgnore]
public List<BackgroundTaskLogRecord> LogRecords
{
get { return this.logRecords; }
set { this.logRecords = value; }
return false;
}
public List<BackgroundTaskLogRecord> LastLogRecords
{
get { return this.lastLogRecords; }
#endregion
}
public string ItemName
public class BackgroundTaskParameter
{
get { return this.itemName; }
set { this.itemName = value; }
#region Properties
public int ParameterId { get; protected set; }
public int TaskId { get; protected set; }
public String Name { get; protected set; }
public Object Value { get; set; }
public String SerializerValue { get; set; }
#endregion
#region Constructors
public BackgroundTaskParameter() { }
public BackgroundTaskParameter(String name, Object value)
{
Name = name;
Value = value;
}
public BackgroundTaskLogRecord LastLogRecord
{
get { return this.lastLogRecord; }
set { this.lastLogRecord = value; }
}
public string TaskId
{
get { return this.taskId; }
set { this.taskId = value; }
}
public int UserId
{
get { return this.userId; }
set { this.userId = value; }
}
[XmlIgnore]
public Hashtable Parameters
{
get { return this.parameters; }
}
public int IndicatorMaximum
{
get { return this.indicatorMaximum; }
set { this.indicatorMaximum = value; }
}
public int IndicatorCurrent
{
get { return this.indicatorCurrent; }
set { this.indicatorCurrent = value; }
}
public bool Completed
{
get { return this.completed; }
set { this.completed = value; }
}
public bool NotifyOnComplete
{
get { return this.notifyOnComplete; }
set { this.notifyOnComplete = value; }
}
public int EffectiveUserId
{
get { return this.effectiveUserId; }
set { this.effectiveUserId = value; }
}
[XmlIgnore]
public System.Threading.Thread TaskThread
{
get { return this.taskThread; }
set { this.taskThread = value; }
}
public int ScheduleId
{
get { return this.scheduleId; }
set { this.scheduleId = value; }
}
public int MaximumExecutionTime
{
get { return this.maximumExecutionTime; }
set { this.maximumExecutionTime = value; }
}
#endregion
}
}

View file

@ -34,54 +34,54 @@ namespace WebsitePanel.EnterpriseServer
{
public class BackgroundTaskLogRecord
{
private DateTime date = DateTime.Now;
private string text;
private int severity; /* 0 - Info, 1 - Warning, 2 - Error */
private string[] textParameters;
private int textIdent = 0;
private bool innerTaskStart;
private string exceptionStackTrace;
#region Properties
public System.DateTime Date
public int LogId { get; set; }
public int TaskId { get; set; }
public DateTime Date { get; set; }
public String ExceptionStackTrace { get; set; }
public bool InnerTaskStart { get; set; }
public int Severity { get; set; }
public String Text { get; set; }
public int TextIdent { get; set; }
public string[] TextParameters { get; set; }
public string XmlParameters { get; set; }
#endregion
#region Constructors
public BackgroundTaskLogRecord()
{
get { return this.date; }
set { this.date = value; }
Date = DateTime.Now;
}
public string Text
public BackgroundTaskLogRecord(int taskId, int textIdent, bool innerTaskStart, String text, string[] textParameters)
: this()
{
get { return this.text; }
set { this.text = value; }
TaskId = taskId;
TextIdent = textIdent;
Text = text;
InnerTaskStart = innerTaskStart;
TextParameters = textParameters;
}
public int Severity
public BackgroundTaskLogRecord(int taskId, int textIdent, bool innerTaskStart, String text,
String exceptionStackTrace, string[] textParameters)
: this(taskId, textIdent, innerTaskStart, text, textParameters)
{
get { return this.severity; }
set { this.severity = value; }
ExceptionStackTrace = exceptionStackTrace;
}
public string[] TextParameters
{
get { return this.textParameters; }
set { this.textParameters = value; }
}
public int TextIdent
{
get { return this.textIdent; }
set { this.textIdent = value; }
}
public bool InnerTaskStart
{
get { return this.innerTaskStart; }
set { this.innerTaskStart = value; }
}
public string ExceptionStackTrace
{
get { return this.exceptionStackTrace; }
set { this.exceptionStackTrace = value; }
}
#endregion
}
}

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="Tasks\BackgroundTask.cs" />
<Compile Include="Tasks\BackgroundTaskLogRecord.cs" />
<Compile Include="Tasks\BackgroundTaskStatus.cs" />
<Compile Include="Users\UserInfo.cs" />
<Compile Include="Users\UserLoginStatus.cs" />
<Compile Include="Users\UsernamePolicy.cs" />

View file

@ -1836,6 +1836,149 @@ namespace WebsitePanel.EnterpriseServer
#endregion
#region Scheduler
public static IDataReader GetBackgroundTask(int actorId, string taskId)
{
return SqlHelper.ExecuteReader(ConnectionString, CommandType.StoredProcedure,
ObjectQualifier + "GetBackgroundTask",
new SqlParameter("@actorId", actorId),
new SqlParameter("@taskId", taskId));
}
public static IDataReader GetBackgroundTasks(int actorId)
{
return SqlHelper.ExecuteReader(ConnectionString, CommandType.StoredProcedure,
ObjectQualifier + "GetBackgroundTasks",
new SqlParameter("actorId", actorId));
}
public static IDataReader GetBackgroundTopTask(int actorId)
{
return SqlHelper.ExecuteReader(ConnectionString, CommandType.StoredProcedure,
ObjectQualifier + "GetBackGroundTopTask",
new SqlParameter("actorId", actorId));
}
public static int AddBackgroundTask(string taskId, int scheduleId, int packageId, int userId,
int effectiveUserId, string taskName, int itemId, string itemName, DateTime startDate,
int indicatorCurrent, int indicatorMaximum, int maximumExecutionTime, string source,
int severity, bool completed, bool notifyOnComplete, BackgroundTaskStatus status)
{
SqlParameter prmId = new SqlParameter("@BackgroundTaskID", SqlDbType.Int);
prmId.Direction = ParameterDirection.Output;
SqlHelper.ExecuteNonQuery(ConnectionString, CommandType.StoredProcedure,
ObjectQualifier + "AddBackgroundTask",
prmId,
new SqlParameter("@taskId", taskId),
new SqlParameter("@scheduleId", scheduleId),
new SqlParameter("@packageId", packageId),
new SqlParameter("@userId", userId),
new SqlParameter("@effectiveUserId", effectiveUserId),
new SqlParameter("@taskName", taskName),
new SqlParameter("@itemId", itemId),
new SqlParameter("@itemName", itemName),
new SqlParameter("@startDate", startDate),
new SqlParameter("@indicatorCurrent", indicatorCurrent),
new SqlParameter("@indicatorMaximum", indicatorMaximum),
new SqlParameter("@maximumExecutionTime", maximumExecutionTime),
new SqlParameter("@source", source),
new SqlParameter("@severity", severity),
new SqlParameter("@completed", completed),
new SqlParameter("@notifyOnComplete", notifyOnComplete),
new SqlParameter("@status", status));
// read identity
return Convert.ToInt32(prmId.Value);
}
public static void AddBackgroundTaskLog(int taskId, DateTime date, string exceptionStackTrace,
bool innerTaskStart, int severity, string text, int textIdent, string xmlParameters)
{
SqlHelper.ExecuteNonQuery(ConnectionString, CommandType.StoredProcedure,
ObjectQualifier + "AddBackgroundTaskLog",
new SqlParameter("@taskId", taskId),
new SqlParameter("@date", date),
new SqlParameter("@exceptionStackTrace", exceptionStackTrace),
new SqlParameter("@innerTaskStart", innerTaskStart),
new SqlParameter("@severity", severity),
new SqlParameter("@text", text),
new SqlParameter("@textIdent", textIdent),
new SqlParameter("@xmlParameters", xmlParameters));
}
public static IDataReader GetBackgroundTaskLogs(int taskId, DateTime startLogTime)
{
return SqlHelper.ExecuteReader(ConnectionString, CommandType.StoredProcedure,
ObjectQualifier + "AddBackgroundTaskLogParam",
new SqlParameter("@taskId", taskId),
new SqlParameter("@startLogTime", startLogTime));
}
public static void UpdateBackgroundTask(int taskId, int scheduleId, int packageId, string taskName, int itemId,
string itemName, DateTime finishDate, int indicatorCurrent, int indicatorMaximum, int maximumExecutionTime,
string source, int severity, bool completed, bool notifyOnComplete, BackgroundTaskStatus status)
{
SqlHelper.ExecuteNonQuery(ConnectionString, CommandType.StoredProcedure,
ObjectQualifier + "UpdateBackgroundTask",
new SqlParameter("@taskId", scheduleId),
new SqlParameter("@scheduleId", scheduleId),
new SqlParameter("@packageId", packageId),
new SqlParameter("@taskName", taskName),
new SqlParameter("@itemId", itemId),
new SqlParameter("@itemName", itemName),
new SqlParameter("@finishDate",
finishDate == DateTime.MinValue
? DBNull.Value
: (object) finishDate),
new SqlParameter("@indicatorCurrent", indicatorCurrent),
new SqlParameter("@indicatorMaximum", indicatorMaximum),
new SqlParameter("@maximumExecutionTime", maximumExecutionTime),
new SqlParameter("@source", source),
new SqlParameter("@severity", severity),
new SqlParameter("@completed", completed),
new SqlParameter("@notifyOnComplete", notifyOnComplete),
new SqlParameter("@status", status));
}
public static IDataReader GetBackgroundTaskParams(int taskId)
{
return SqlHelper.ExecuteReader(ConnectionString, CommandType.StoredProcedure,
ObjectQualifier + "GetBackgroundTaskParams",
new SqlParameter("@taskId", taskId));
}
public static void AddBackgroundTaskParam(int taskId, string name, string value)
{
SqlHelper.ExecuteNonQuery(ConnectionString, CommandType.StoredProcedure,
ObjectQualifier + "AddBackgroundTaskParam",
new SqlParameter("@taskId", taskId),
new SqlParameter("@name", name),
new SqlParameter("@value", value));
}
public static void DeleteBackgroundTaskParams(int taskId)
{
SqlHelper.ExecuteNonQuery(ConnectionString, CommandType.StoredProcedure,
ObjectQualifier + "DeleteBackgroundTaskParams",
new SqlParameter("@taskId", taskId));
}
public static void AddBackgroundTaskStack(int taskId)
{
SqlHelper.ExecuteNonQuery(ConnectionString, CommandType.StoredProcedure,
ObjectQualifier + "AddBackgroundTaskStack",
new SqlParameter("@taskId", taskId));
}
public static void DeleteBackgroundTaskStack(int taskId)
{
SqlHelper.ExecuteNonQuery(ConnectionString, CommandType.StoredProcedure,
ObjectQualifier + "DeleteBackgroundTaskStack",
new SqlParameter("@taskId", taskId));
}
public static IDataReader GetScheduleTasks(int actorId)
{
return SqlHelper.ExecuteReader(ConnectionString, CommandType.StoredProcedure,

View file

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

View file

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

View file

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

View file

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

View file

@ -162,7 +162,8 @@ namespace WebsitePanel.Ecommerce.EnterpriseServer
TaskManager.WriteParameter(USERNAME_PARAM, context.ConsumerInfo[ContractAccount.USERNAME]);
TaskManager.WriteParameter(SVC_PARAM, context.ServiceInfo.ServiceName);
TaskManager.WriteParameter(SVC_ID_PARAM, context.ServiceInfo.ServiceId);
TaskManager.TaskParameters[SystemTaskParams.PARAM_SEND_EMAIL] = context.SendEmail;
TaskManager.UpdateParam(SystemTaskParams.PARAM_SEND_EMAIL, context.SendEmail);
// 0. Do security checks
if (!CheckOperationClientPermissions(result))

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -116,8 +116,7 @@ namespace WebsitePanel.EnterpriseServer
{
try
{
TaskManager.StartTask(taskId, "BACKUP", "BACKUP", backupFileName);
TaskManager.ItemId = SecurityContext.User.UserId;
TaskManager.StartTask(taskId, "BACKUP", "BACKUP", backupFileName, SecurityContext.User.UserId);
// get the list of items to backup
TaskManager.Write("Calculate items to backup");
@ -343,7 +342,10 @@ namespace WebsitePanel.EnterpriseServer
}
}
TaskManager.IndicatorCurrent = TaskManager.IndicatorMaximum;
BackgroundTask topTask = TaskController.GetTopTask();
topTask.IndicatorCurrent = topTask.IndicatorMaximum;
TaskController.UpdateTask(topTask);
}
catch (Exception ex)
{
@ -490,8 +492,7 @@ namespace WebsitePanel.EnterpriseServer
string backupFileName = (storePackageId > 0)
? Path.GetFileName(storePackageBackupPath) : Path.GetFileName(storeServerBackupPath);
TaskManager.StartTask(taskId, "BACKUP", "RESTORE", backupFileName);
TaskManager.ItemId = SecurityContext.User.UserId;
TaskManager.StartTask(taskId, "BACKUP", "RESTORE", backupFileName, SecurityContext.User.UserId);
// create temp folder
string tempFolder = GetTempBackupFolder();

View file

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

View file

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

View file

@ -53,13 +53,16 @@ namespace WebsitePanel.EnterpriseServer
string storePackageFolder;
string storeServerFolder;
bool deleteTempBackup;
BackgroundTask topTask = TaskController.GetTopTask();
try
{
backupFileName = (string)TaskManager.TaskParameters["BACKUP_FILE_NAME"];
storePackageId = Convert.ToInt32(TaskManager.TaskParameters["STORE_PACKAGE_ID"]);
storePackageFolder = (string)TaskManager.TaskParameters["STORE_PACKAGE_FOLDER"];
storeServerFolder = (string)TaskManager.TaskParameters["STORE_SERVER_FOLDER"];
deleteTempBackup = Convert.ToBoolean(TaskManager.TaskParameters["DELETE_TEMP_BACKUP"]);
backupFileName = (string)topTask.GetParamValue("BACKUP_FILE_NAME");
storePackageId = Convert.ToInt32(topTask.GetParamValue("STORE_PACKAGE_ID"));
storePackageFolder = (string)topTask.GetParamValue("STORE_PACKAGE_FOLDER");
storeServerFolder = (string)topTask.GetParamValue("STORE_SERVER_FOLDER");
deleteTempBackup = Convert.ToBoolean(topTask.GetParamValue("DELETE_TEMP_BACKUP"));
}
catch(Exception ex)
{
@ -69,7 +72,7 @@ namespace WebsitePanel.EnterpriseServer
try
{
PackageInfo package = PackageController.GetPackage(TaskManager.PackageId);
PackageInfo package = PackageController.GetPackage(topTask.PackageId);
// We do not take into account service id as long as scheduled tasks run against packages.
BackupController.Backup(false, "BackupTask", package.UserId, package.PackageId, 0, 0,
backupFileName, storePackageId, storePackageFolder, storeServerFolder, deleteTempBackup);

View file

@ -45,8 +45,10 @@ namespace WebsitePanel.EnterpriseServer
public void CalculateDiskspace()
{
BackgroundTask topTask = TaskController.GetTopTask();
// 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)
{

View file

@ -50,8 +50,10 @@ namespace WebsitePanel.EnterpriseServer
public void CalculateBandwidth()
{
BackgroundTask topTask = TaskController.GetTopTask();
// 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());
foreach (PackageInfo package in packages)

View file

@ -51,8 +51,10 @@ namespace WebsitePanel.EnterpriseServer
public void CalculateDiskspace()
{
BackgroundTask topTask = TaskController.GetTopTask();
// 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());
foreach (PackageInfo package in packages)

View file

@ -57,17 +57,19 @@ namespace WebsitePanel.EnterpriseServer
// - MAIL_SUBJECT
// - MAIL_BODY
// get input parameters
string url = (string)TaskManager.TaskParameters["URL"];
string username = (string)TaskManager.TaskParameters["USERNAME"];
string password = (string)TaskManager.TaskParameters["PASSWORD"];
string strResponseStatus = (string)TaskManager.TaskParameters["RESPONSE_STATUS"];
string responseContains = (string)TaskManager.TaskParameters["RESPONSE_CONTAIN"];
string responseNotContains = (string)TaskManager.TaskParameters["RESPONSE_DOESNT_CONTAIN"];
BackgroundTask topTask = TaskController.GetTopTask();
bool useResponseStatus = Convert.ToBoolean(TaskManager.TaskParameters["USE_RESPONSE_STATUS"]);
bool useResponseContains = Convert.ToBoolean(TaskManager.TaskParameters["USE_RESPONSE_CONTAIN"]);
bool useResponseDoesntContain = Convert.ToBoolean(TaskManager.TaskParameters["USE_RESPONSE_DOESNT_CONTAIN"]);
// get input parameters
string url = (string)topTask.GetParamValue("URL");
string username = (string)topTask.GetParamValue("USERNAME");
string password = (string)topTask.GetParamValue("PASSWORD");
string strResponseStatus = (string)topTask.GetParamValue("RESPONSE_STATUS");
string responseContains = (string)topTask.GetParamValue("RESPONSE_CONTAIN");
string responseNotContains = (string)topTask.GetParamValue("RESPONSE_DOESNT_CONTAIN");
bool useResponseStatus = Convert.ToBoolean(topTask.GetParamValue("USE_RESPONSE_STATUS"));
bool useResponseContains = Convert.ToBoolean(topTask.GetParamValue("USE_RESPONSE_CONTAIN"));
bool useResponseDoesntContain = Convert.ToBoolean(topTask.GetParamValue("USE_RESPONSE_DOESNT_CONTAIN"));
// check input parameters
if (String.IsNullOrEmpty(url))
@ -126,11 +128,13 @@ namespace WebsitePanel.EnterpriseServer
private void SendMailMessage(string url, string message, string content)
{
BackgroundTask topTask = TaskController.GetTopTask();
// input parameters
string mailFrom = (string)TaskManager.TaskParameters["MAIL_FROM"];
string mailTo = (string)TaskManager.TaskParameters["MAIL_TO"];
string mailSubject = (string)TaskManager.TaskParameters["MAIL_SUBJECT"];
string mailBody = (string)TaskManager.TaskParameters["MAIL_BODY"];
string mailFrom = (string)topTask.GetParamValue("MAIL_FROM");
string mailTo = (string)topTask.GetParamValue("MAIL_TO");
string mailSubject = (string)topTask.GetParamValue("MAIL_SUBJECT");
string mailBody = (string)topTask.GetParamValue("MAIL_BODY");
if (String.IsNullOrEmpty(mailTo))
{

View file

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

View file

@ -51,16 +51,18 @@ namespace WebsitePanel.EnterpriseServer
{
try
{
bool isExchange = Utils.ParseBool(TaskManager.TaskParameters[EXCHANGE_REPORT], false);
bool isSharePoint = Utils.ParseBool(TaskManager.TaskParameters[SHAREPOINT_REPORT], false);
bool isLync = Utils.ParseBool(TaskManager.TaskParameters[LYNC_REPORT], false);
bool isCRM = Utils.ParseBool(TaskManager.TaskParameters[CRM_REPORT], false);
bool isOrganization = Utils.ParseBool(TaskManager.TaskParameters[ORGANIZATION_REPORT], false);
BackgroundTask topTask = TaskController.GetTopTask();
string email = TaskManager.TaskParameters[EMAIL].ToString();
bool isExchange = Utils.ParseBool(topTask.GetParamValue(EXCHANGE_REPORT), false);
bool isSharePoint = Utils.ParseBool(topTask.GetParamValue(SHAREPOINT_REPORT), false);
bool isLync = Utils.ParseBool(topTask.GetParamValue(LYNC_REPORT), false);
bool isCRM = Utils.ParseBool(topTask.GetParamValue(CRM_REPORT), false);
bool isOrganization = Utils.ParseBool(topTask.GetParamValue(ORGANIZATION_REPORT), false);
string email = topTask.GetParamValue(EMAIL).ToString();
UserInfo user = PackageController.GetPackageOwner(TaskManager.PackageId);
UserInfo user = PackageController.GetPackageOwner(topTask.PackageId);
EnterpriseSolutionStatisticsReport report =
ReportController.GetEnterpriseSolutionStatisticsReport(user.UserId, isExchange, isSharePoint, isCRM,
isOrganization, isLync);

View file

@ -44,25 +44,27 @@ namespace WebsitePanel.EnterpriseServer
// - DISKSPACE_OVERUSED
// - BANDWIDTH_OVERUSED
BackgroundTask topTask = TaskController.GetTopTask();
// 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());
bool checkMSSQL = (String.Compare((string)TaskManager.TaskParameters["MSSQL_OVERUSED"], "true", true) == 0);
bool checkMySQL = (String.Compare((string)TaskManager.TaskParameters["MYSQL_OVERUSED"], "true", true) == 0);
bool checkMSSQL = (String.Compare((string)topTask.GetParamValue("MSSQL_OVERUSED"), "true", true) == 0);
bool checkMySQL = (String.Compare((string)topTask.GetParamValue("MYSQL_OVERUSED"), "true", true) == 0);
bool sendWarningEmail = Convert.ToBoolean(TaskManager.TaskParameters["SEND_WARNING_EMAIL"]);
bool sendOverusedEmail = Convert.ToBoolean(TaskManager.TaskParameters["SEND_OVERUSED_EMAIL"]);
int warningUsageThreshold = Convert.ToInt32(TaskManager.TaskParameters["WARNING_USAGE_THRESHOLD"]);
int overusedUsageThreshold = Convert.ToInt32(TaskManager.TaskParameters["OVERUSED_USAGE_THRESHOLD"]);
string warningMailFrom = Convert.ToString(TaskManager.TaskParameters["WARNING_MAIL_FROM"]);
string warningMailBcc = Convert.ToString(TaskManager.TaskParameters["WARNING_MAIL_BCC"]);
string warningMailSubject = Convert.ToString(TaskManager.TaskParameters["WARNING_MAIL_SUBJECT"]);
string warningMailBody = Convert.ToString(TaskManager.TaskParameters["WARNING_MAIL_BODY"]);
string overusedMailFrom = Convert.ToString(TaskManager.TaskParameters["OVERUSED_MAIL_FROM"]);
string overusedMailBcc = Convert.ToString(TaskManager.TaskParameters["OVERUSED_MAIL_BCC"]);
string overusedMailSubject = Convert.ToString(TaskManager.TaskParameters["OVERUSED_MAIL_SUBJECT"]);
string overusedMailBody = Convert.ToString(TaskManager.TaskParameters["OVERUSED_MAIL_BODY"]);
bool sendWarningEmail = Convert.ToBoolean(topTask.GetParamValue("SEND_WARNING_EMAIL"));
bool sendOverusedEmail = Convert.ToBoolean(topTask.GetParamValue("SEND_OVERUSED_EMAIL"));
int warningUsageThreshold = Convert.ToInt32(topTask.GetParamValue("WARNING_USAGE_THRESHOLD"));
int overusedUsageThreshold = Convert.ToInt32(topTask.GetParamValue("OVERUSED_USAGE_THRESHOLD"));
string warningMailFrom = Convert.ToString(topTask.GetParamValue("WARNING_MAIL_FROM"));
string warningMailBcc = Convert.ToString(topTask.GetParamValue("WARNING_MAIL_BCC"));
string warningMailSubject = Convert.ToString(topTask.GetParamValue("WARNING_MAIL_SUBJECT"));
string warningMailBody = Convert.ToString(topTask.GetParamValue("WARNING_MAIL_BODY"));
string overusedMailFrom = Convert.ToString(topTask.GetParamValue("OVERUSED_MAIL_FROM"));
string overusedMailBcc = Convert.ToString(topTask.GetParamValue("OVERUSED_MAIL_BCC"));
string overusedMailSubject = Convert.ToString(topTask.GetParamValue("OVERUSED_MAIL_SUBJECT"));
string overusedMailBody = Convert.ToString(topTask.GetParamValue("OVERUSED_MAIL_BODY"));
int overusedPackages = 0;

View file

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

View file

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

View file

@ -43,27 +43,29 @@ namespace WebsitePanel.EnterpriseServer
// - DISKSPACE_OVERUSED
// - BANDWIDTH_OVERUSED
BackgroundTask topTask = TaskController.GetTopTask();
// 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());
bool checkDiskspace = (String.Compare((string)TaskManager.TaskParameters["DISKSPACE_OVERUSED"], "true", true) == 0);
bool checkBandwidth = (String.Compare((string)TaskManager.TaskParameters["BANDWIDTH_OVERUSED"], "true", true) == 0);
bool checkDiskspace = (String.Compare((string)topTask.GetParamValue("DISKSPACE_OVERUSED"), "true", true) == 0);
bool checkBandwidth = (String.Compare((string)topTask.GetParamValue("BANDWIDTH_OVERUSED"), "true", true) == 0);
bool suspendOverused = Convert.ToBoolean(TaskManager.TaskParameters["SUSPEND_OVERUSED"]);
bool suspendOverused = Convert.ToBoolean(topTask.GetParamValue("SUSPEND_OVERUSED"));
bool sendWarningEmail = Convert.ToBoolean(TaskManager.TaskParameters["SEND_WARNING_EMAIL"]);
bool sendSuspensionEmail = Convert.ToBoolean(TaskManager.TaskParameters["SEND_SUSPENSION_EMAIL"]);
int warningUsageThreshold = Convert.ToInt32(TaskManager.TaskParameters["WARNING_USAGE_THRESHOLD"]);
int suspensionUsageThreshold = Convert.ToInt32(TaskManager.TaskParameters["SUSPENSION_USAGE_THRESHOLD"]);
string warningMailFrom = Convert.ToString(TaskManager.TaskParameters["WARNING_MAIL_FROM"]);
string warningMailBcc = Convert.ToString(TaskManager.TaskParameters["WARNING_MAIL_BCC"]);
string warningMailSubject = Convert.ToString(TaskManager.TaskParameters["WARNING_MAIL_SUBJECT"]);
string warningMailBody = Convert.ToString(TaskManager.TaskParameters["WARNING_MAIL_BODY"]);
string suspensionMailFrom = Convert.ToString(TaskManager.TaskParameters["SUSPENSION_MAIL_FROM"]);
string suspensionMailBcc = Convert.ToString(TaskManager.TaskParameters["SUSPENSION_MAIL_BCC"]);
string suspensionMailSubject = Convert.ToString(TaskManager.TaskParameters["SUSPENSION_MAIL_SUBJECT"]);
string suspensionMailBody = Convert.ToString(TaskManager.TaskParameters["SUSPENSION_MAIL_BODY"]);
bool sendWarningEmail = Convert.ToBoolean(topTask.GetParamValue("SEND_WARNING_EMAIL"));
bool sendSuspensionEmail = Convert.ToBoolean(topTask.GetParamValue("SEND_SUSPENSION_EMAIL"));
int warningUsageThreshold = Convert.ToInt32(topTask.GetParamValue("WARNING_USAGE_THRESHOLD"));
int suspensionUsageThreshold = Convert.ToInt32(topTask.GetParamValue("SUSPENSION_USAGE_THRESHOLD"));
string warningMailFrom = Convert.ToString(topTask.GetParamValue("WARNING_MAIL_FROM"));
string warningMailBcc = Convert.ToString(topTask.GetParamValue("WARNING_MAIL_BCC"));
string warningMailSubject = Convert.ToString(topTask.GetParamValue("WARNING_MAIL_SUBJECT"));
string warningMailBody = Convert.ToString(topTask.GetParamValue("WARNING_MAIL_BODY"));
string suspensionMailFrom = Convert.ToString(topTask.GetParamValue("SUSPENSION_MAIL_FROM"));
string suspensionMailBcc = Convert.ToString(topTask.GetParamValue("SUSPENSION_MAIL_BCC"));
string suspensionMailSubject = Convert.ToString(topTask.GetParamValue("SUSPENSION_MAIL_SUBJECT"));
string suspensionMailBody = Convert.ToString(topTask.GetParamValue("SUSPENSION_MAIL_BODY"));
int suspendedPackages = 0;

View file

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

View file

@ -89,15 +89,15 @@ namespace WebsitePanel.EnterpriseServer
UserInfo user = PackageController.GetPackageOwner(scheduleInfo.PackageId);
SecurityContext.SetThreadPrincipal(user.UserId);
TaskManager.StartTask("SCHEDULER", "RUN_SCHEDULE", scheduleInfo.ScheduleName);
TaskManager.PackageId = scheduleInfo.PackageId;
TaskManager.ItemId = scheduleInfo.ScheduleId;
TaskManager.ScheduleId = scheduleInfo.ScheduleId;
TaskManager.MaximumExecutionTime = scheduleInfo.MaxExecutionTime;
// set task parameters
IList<BackgroundTaskParameter> parameters = new List<BackgroundTaskParameter>();
foreach (ScheduleTaskParameterInfo prm in scheduleInfo.Parameters)
TaskManager.TaskParameters[prm.ParameterId] = prm.ParameterValue;
{
parameters.Add(new BackgroundTaskParameter(prm.ParameterId, prm.ParameterValue));
}
TaskManager.StartTask("SCHEDULER", "RUN_SCHEDULE", scheduleInfo.ScheduleName, scheduleInfo.ScheduleId,
scheduleInfo.ScheduleId, scheduleInfo.PackageId, scheduleInfo.MaxExecutionTime,
parameters);
// run task
try

View file

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

View file

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

View file

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

View file

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

View file

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

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -91,17 +91,20 @@ namespace WebsitePanel.EnterpriseServer
public int InstallWebApplication(InstallationInfo inst)
{
// place log record
TaskManager.StartTask("APP_INSTALLER", "INSTALL_APPLICATION");
TaskManager.StartTask("APP_INSTALLER", "INSTALL_APPLICATION", inst.PackageId);
TaskManager.WriteParameter("Virtual directory", inst.VirtualDir);
TaskManager.WriteParameter("Database group", inst.DatabaseGroup);
TaskManager.ItemId = inst.PackageId;
try
{
// get application info
app = GetApplication(inst.PackageId, inst.ApplicationId);
TaskManager.ItemName = app.Name;
BackgroundTask topTask = TaskController.GetTopTask();
topTask.ItemName = app.Name;
TaskController.UpdateTask(topTask);
// check web site for existance
WebSite webSite = WebServerController.GetWebSite(inst.WebSiteId);