merge commit

This commit is contained in:
robvde 2013-06-22 16:27:18 +04:00
commit 03e9c7f3b6
155 changed files with 5554 additions and 3143 deletions

View file

@ -74,6 +74,9 @@
<Reference Include="WebsitePanel.EnterpriseServer.Client">
<HintPath>..\..\..\Bin\WebsitePanel.EnterpriseServer.Client.dll</HintPath>
</Reference>
<Reference Include="WebsitePanel.EnterpriseServer.Code">
<HintPath>..\..\..\Bin\WebsitePanel.EnterpriseServer.Code.dll</HintPath>
</Reference>
<Reference Include="WebsitePanel.Providers.Base">
<HintPath>..\..\..\Bin\WebsitePanel.Providers.Base.dll</HintPath>
</Reference>

View file

@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.18010
// Runtime Version:4.0.30319.18033
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.

View file

@ -1,7 +1,7 @@
'------------------------------------------------------------------------------
' <auto-generated>
' This code was generated by a tool.
' Runtime Version:4.0.30319.18010
' Runtime Version:4.0.30319.18033
'
' Changes to this file may cause incorrect behavior and will be lost if
' the code is regenerated.
@ -15,9 +15,9 @@ Imports System
Imports System.Reflection
Imports System.Runtime.CompilerServices
Imports System.Runtime.InteropServices
<Assembly: AssemblyCompany("Outercurve Foundation"), _
Assembly: AssemblyCopyright("Copyright © 2012 Outercurve Foundation."), _
Assembly: AssemblyVersion("2.1.0.1"), _
Assembly: AssemblyFileVersion("2.1.0.1"), _
<Assembly: AssemblyCompany("Outercurve Foundation"), _
Assembly: AssemblyCopyright("Copyright © 2012 Outercurve Foundation."), _
Assembly: AssemblyVersion("2.1.0.1"), _
Assembly: AssemblyFileVersion("2.1.0.1"), _
Assembly: AssemblyInformationalVersion("2.1.0")>

View file

@ -36,162 +36,171 @@ 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 Fields
public System.DateTime StartDate
public List<BackgroundTaskParameter> Params = new List<BackgroundTaskParameter>();
public List<BackgroundTaskLogRecord> Logs = new List<BackgroundTaskLogRecord>();
#endregion
#region Properties
public int Id { get; set; }
public Guid Guid { get; set; }
public string TaskId { get; set; }
public int ScheduleId { get; set; }
public int PackageId { get; set; }
public int UserId { get; set; }
public int EffectiveUserId { get; set; }
public string TaskName { get; set; }
public int ItemId { get; set; }
public string ItemName { get; set; }
public DateTime StartDate { get; 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; set; }
public int Severity { get; set; }
public bool Completed { get; set; }
public bool NotifyOnComplete { get; set; }
public BackgroundTaskStatus Status { 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;
Completed = false;
NotifyOnComplete = false;
}
public System.DateTime FinishDate
public BackgroundTask(Guid guid, String taskId, int userId, int effectiveUserId, String source, String taskName, String itemName,
int itemId, int scheduleId, int packageId, int maximumExecutionTime, List<BackgroundTaskParameter> parameters)
: this()
{
get { return this.finishDate; }
set { this.finishDate = value; }
Guid = guid;
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 List<BackgroundTaskLogRecord> GetLogs()
{
get { return this.source; }
set { this.source = value; }
return Logs;
}
public string TaskName
public Object GetParamValue(String name)
{
get { return this.taskName; }
set { this.taskName = value; }
foreach(BackgroundTaskParameter param in Params)
{
if (param.Name == name)
return param.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;
}
}
Params.Add(new BackgroundTaskParameter(name, value));
}
public int PackageId
public bool ContainsParam(String name)
{
get { return this.packageId; }
set { this.packageId = value; }
foreach (BackgroundTaskParameter param in Params)
{
if (param.Name == name)
return true;
}
return false;
}
public int Severity
#endregion
}
public class BackgroundTaskParameter
{
#region Properties
public int ParameterId { get; set; }
public int TaskId { get; set; }
public String Name { get; set; }
public Object Value { get; set; }
public String TypeName { get; set; }
public String SerializerValue { get; set; }
#endregion
#region Constructors
public BackgroundTaskParameter() { }
public BackgroundTaskParameter(String name, Object value)
{
get { return this.severity; }
set { this.severity = value; }
Name = name;
Value = value;
}
[XmlIgnore]
public List<BackgroundTaskLogRecord> LogRecords
{
get { return this.logRecords; }
set { this.logRecords = value; }
}
public List<BackgroundTaskLogRecord> LastLogRecords
{
get { return this.lastLogRecords; }
}
public string ItemName
{
get { return this.itemName; }
set { this.itemName = value; }
}
public BackgroundTaskLogRecord LastLogRecord
{
get { return this.lastLogRecord; }
set { this.lastLogRecord = value; }
}
public string TaskId
{
get { return this.taskId; }
set { this.taskId = value; }
}
public int UserId
{
get { return this.userId; }
set { this.userId = value; }
}
[XmlIgnore]
public Hashtable Parameters
{
get { return this.parameters; }
}
public int IndicatorMaximum
{
get { return this.indicatorMaximum; }
set { this.indicatorMaximum = value; }
}
public int IndicatorCurrent
{
get { return this.indicatorCurrent; }
set { this.indicatorCurrent = value; }
}
public bool Completed
{
get { return this.completed; }
set { this.completed = value; }
}
public bool NotifyOnComplete
{
get { return this.notifyOnComplete; }
set { this.notifyOnComplete = value; }
}
public int EffectiveUserId
{
get { return this.effectiveUserId; }
set { this.effectiveUserId = value; }
}
[XmlIgnore]
public System.Threading.Thread TaskThread
{
get { return this.taskThread; }
set { this.taskThread = value; }
}
public int ScheduleId
{
get { return this.scheduleId; }
set { this.scheduleId = value; }
}
public int MaximumExecutionTime
{
get { return this.maximumExecutionTime; }
set { this.maximumExecutionTime = value; }
}
#endregion
}
}

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,10 @@
namespace WebsitePanel.EnterpriseServer
{
public enum BackgroundTaskStatus
{
Run = 1,
Abort = 2,
Starting = 3,
Stopping = 4
}
}

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

@ -0,0 +1,668 @@
// Copyright (c) 2012, Outercurve Foundation.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without modification,
// are permitted provided that the following conditions are met:
//
// - Redistributions of source code must retain the above copyright notice, this
// list of conditions and the following disclaimer.
//
// - Redistributions in binary form must reproduce the above copyright notice,
// this list of conditions and the following disclaimer in the documentation
// and/or other materials provided with the distribution.
//
// - Neither the name of the Outercurve Foundation nor the names of its
// contributors may be used to endorse or promote products derived from this
// software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
using System;
using System.Reflection;
using System.Data;
using System.Collections;
using System.Collections.Generic;
using WebsitePanel.Providers;
namespace WebsitePanel.EnterpriseServer
{
/// <summary>
/// Summary description for ObjectUtils.
/// </summary>
public class ObjectUtils
{
public static DT ConvertObject<ST, DT>(ST so)
{
Dictionary<string, PropertyInfo> sProps = GetTypePropertiesHash(typeof(ST));
Dictionary<string, PropertyInfo> dProps = GetTypePropertiesHash(typeof(DT));
DT dobj = (DT)Activator.CreateInstance(typeof(DT));
// copy properties
foreach (string propName in sProps.Keys)
{
if (dProps.ContainsKey(propName) && sProps[propName].Name != "Item")
{
if (sProps[propName].CanRead)
{
object val = sProps[propName].GetValue(so, null);
if (dProps[propName] != null)
{
if (val != null && dProps[propName].CanWrite)
{
dProps[propName].SetValue(dobj, val, null);
}
}
}
}
}
return dobj;
}
private static Hashtable typeProperties = new Hashtable();
public static Hashtable GetObjectProperties(object obj, bool persistentOnly)
{
Hashtable hash = new Hashtable();
Type type = obj.GetType();
PropertyInfo[] props = type.GetProperties(BindingFlags.Instance
| BindingFlags.Public);
foreach (PropertyInfo prop in props)
{
// check for persistent attribute
object[] attrs = prop.GetCustomAttributes(typeof(PersistentAttribute), false);
if (!persistentOnly || (persistentOnly && attrs.Length > 0) && !hash.ContainsKey(prop.Name))
{
object val = prop.GetValue(obj, null);
string s = "";
if (val != null)
{
if (prop.PropertyType == typeof(string[]))
s = String.Join(";", (string[])val);
else if (prop.PropertyType == typeof(int[]))
{
int[] ivals = (int[])val;
string[] svals = new string[ivals.Length];
for (int i = 0; i < svals.Length; i++)
svals[i] = ivals[i].ToString();
s = String.Join(";", svals);
}
else
s = val.ToString();
}
// add property to hash
hash.Add(prop.Name, s);
}
}
return hash;
}
public static void FillCollectionFromDataSet<T>(List<T> list, DataSet ds)
{
if (ds.Tables.Count == 0)
return;
FillCollectionFromDataView<T>(list, ds.Tables[0].DefaultView);
}
public static void FillCollectionFromDataView<T>(List<T> list, DataView dv)
{
Type type = typeof(T);
PropertyInfo[] props = GetTypeProperties(type);
foreach (DataRowView dr in dv)
{
// create an instance
T obj = (T)Activator.CreateInstance(type);
list.Add(obj);
// fill properties
for (int i = 0; i < props.Length; i++)
{
string propName = props[i].Name;
if (dv.Table.Columns[propName] == null)
continue;
object propVal = dr[propName];
if (propVal == DBNull.Value)
props[i].SetValue(obj, GetNull(props[i].PropertyType), null);
else
{
try
{
// try implicit type conversion
props[i].SetValue(obj, propVal, null);
}
catch
{
// convert to string and then set property value
try
{
string strVal = propVal.ToString();
props[i].SetValue(obj, Cast(strVal, props[i].PropertyType), null);
}
catch
{
// skip property init
}
}
}
} // for properties
} // for rows
}
public static List<T> CreateListFromDataReader<T>(IDataReader reader)
{
List<T> list = new List<T>();
FillCollectionFromDataReader<T>(list, reader);
return list;
}
public static List<T> CreateListFromDataSet<T>(DataSet ds)
{
List<T> list = new List<T>();
FillCollectionFromDataSet<T>(list, ds);
return list;
}
public static void FillCollectionFromDataReader<T>(List<T> list, IDataReader reader)
{
Type type = typeof(T);
try
{
// get type properties
PropertyInfo[] props = GetTypeProperties(type);
// iterate through reader
while (reader.Read())
{
T obj = (T)Activator.CreateInstance(type);
list.Add(obj);
// set properties
for (int i = 0; i < props.Length; i++)
{
string propName = props[i].Name;
try
{
object propVal = reader[propName];
if (propVal == DBNull.Value)
props[i].SetValue(obj, GetNull(props[i].PropertyType), null);
else
{
try
{
// try implicit type conversion
props[i].SetValue(obj, propVal, null);
}
catch
{
// convert to string and then set property value
try
{
string strVal = propVal.ToString();
props[i].SetValue(obj, Cast(strVal, props[i].PropertyType), null);
}
catch { }
}
}
}
catch { } // just skip
} // for properties
}
}
finally
{
reader.Close();
}
}
public static T FillObjectFromDataView<T>(DataView dv)
{
Type type = typeof(T);
T obj = default(T);
// get type properties
PropertyInfo[] props = GetTypeProperties(type);
// iterate through reader
foreach (DataRowView dr in dv)
{
obj = (T)Activator.CreateInstance(type);
// set properties
for (int i = 0; i < props.Length; i++)
{
string propName = props[i].Name;
try
{
// verify if there is such a column
if (!dr.Row.Table.Columns.Contains(propName.ToLower()))
{
// if not, we move to another property
// because this one we cannot set
continue;
}
object propVal = dr[propName];
if (propVal == DBNull.Value)
props[i].SetValue(obj, GetNull(props[i].PropertyType), null);
else
{
try
{
string strVal = propVal.ToString();
//convert to DateTime
if (props[i].PropertyType.UnderlyingSystemType.FullName == typeof(DateTime).FullName)
{
DateTime date = DateTime.MinValue;
if (DateTime.TryParse(strVal, out date))
{
props[i].SetValue(obj, date, null);
}
}
else
{
//Convert generic
props[i].SetValue(obj, Cast(strVal, props[i].PropertyType), null);
}
}
catch
{
// skip property init
}
}
}
catch { } // just skip
} // for properties
}
return obj;
}
public static T FillObjectFromDataReader<T>(IDataReader reader)
{
Type type = typeof(T);
T obj = default(T);
try
{
// get type properties
PropertyInfo[] props = GetTypeProperties(type);
// iterate through reader
while (reader.Read())
{
obj = (T)Activator.CreateInstance(type);
// set properties
for (int i = 0; i < props.Length; i++)
{
string propName = props[i].Name;
try
{
if (!IsColumnExists(propName, reader.GetSchemaTable()))
{
continue;
}
object propVal = reader[propName];
if (propVal == DBNull.Value)
props[i].SetValue(obj, GetNull(props[i].PropertyType), null);
else
{
try
{
//try string first
if (props[i].PropertyType.UnderlyingSystemType.FullName == typeof(String).FullName)
{
props[i].SetValue(obj, propVal.ToString(), null);
}
else
{
// then, try implicit type conversion
props[i].SetValue(obj, propVal, null);
}
}
catch
{
// convert to string and then set property value
try
{
string strVal = propVal.ToString();
props[i].SetValue(obj, Cast(strVal, props[i].PropertyType), null);
}
catch
{
// skip property init
}
}
}
}
catch { } // just skip
} // for properties
}
}
finally
{
reader.Close();
}
return obj;
}
private static Hashtable propertiesCache = new Hashtable();
public static object CreateObjectFromDataview(Type type, DataView dv,
string nameColumn, string valueColumn, bool persistentOnly)
{
// create hash of properties from datareader
Hashtable propValues = new Hashtable();
foreach (DataRowView dr in dv)
{
if (propValues[dr[nameColumn]] == null && !propValues.ContainsKey(dr[nameColumn]))
propValues.Add(dr[nameColumn], dr[valueColumn]);
}
return CreateObjectFromHash(type, propValues, persistentOnly);
}
public static object CreateObjectFromDataReader(Type type, IDataReader reader,
string nameColumn, string valueColumn, bool persistentOnly)
{
// create hash of properties from datareader
Hashtable propValues = new Hashtable();
while (reader.Read())
{
if (propValues[reader[nameColumn]] == null && !propValues.ContainsKey(reader[nameColumn]))
propValues.Add(reader[nameColumn], reader[valueColumn]);
}
reader.Close();
return CreateObjectFromHash(type, propValues, persistentOnly);
}
public static object CreateObjectFromHash(Type type, Hashtable propValues, bool persistentOnly)
{
// create object
object obj = Activator.CreateInstance(type);
CreateObjectFromHash(obj, propValues, persistentOnly);
return obj;
}
public static void CopyPersistentPropertiesFromSource<T>(T source, T target)
where T : ServiceProviderItem
{
//
var typeSource = source.GetType();
var typeTarget = target.GetType();
// get all property infos
Hashtable props = null;
if (propertiesCache[typeSource.Name] != null)
{
// load properties from cache
props = (Hashtable)propertiesCache[typeSource.Name];
}
else
{
// create properties cache
props = new Hashtable();
//
PropertyInfo[] objProps = typeSource.GetProperties(BindingFlags.Instance
//| BindingFlags.DeclaredOnly
| BindingFlags.Public);
foreach (PropertyInfo prop in objProps)
{
// check for persistent attribute
object[] attrs = prop.GetCustomAttributes(typeof(PersistentAttribute), false);
// Persistent only
if (attrs.Length > 0 && !props.ContainsKey(prop.Name))
{
// add property to hash
props.Add(prop.Name, prop);
}
}
if (!propertiesCache.ContainsKey(typeSource.Name))
{
// add to cache
propertiesCache.Add(typeSource.Name, props);
}
}
// Copy the data
foreach (PropertyInfo propertyInfo in props.Values)
{
propertyInfo.SetValue(target, propertyInfo.GetValue(source, null), null);
}
}
public static void CreateObjectFromHash(object obj, Hashtable propValues, bool persistentOnly)
{
Type type = obj.GetType();
// get all property infos
Hashtable props = null;
if (propertiesCache[type.Name] != null)
{
// load properties from cache
props = (Hashtable)propertiesCache[type.Name];
}
else
{
// create properties cache
props = new Hashtable();
PropertyInfo[] objProps = type.GetProperties(BindingFlags.Instance
//| BindingFlags.DeclaredOnly
| BindingFlags.Public);
foreach (PropertyInfo prop in objProps)
{
// check for persistent attribute
object[] attrs = prop.GetCustomAttributes(typeof(PersistentAttribute), false);
if (!persistentOnly || (persistentOnly && attrs.Length > 0) && !props.ContainsKey(prop.Name))
{
// add property to hash
props.Add(prop.Name, prop);
}
}
if (!propertiesCache.ContainsKey(type.Name))
{
// add to cache
propertiesCache.Add(type.Name, props);
}
}
// fill properties
foreach (string propName in propValues.Keys)
{
// try to locate specified property
if (props[propName] != null)
{
// set property
// we support:
// String
// Int32
// Boolean
// Float
PropertyInfo prop = (PropertyInfo)props[propName];
string val = propValues[propName].ToString();
if (prop.PropertyType == typeof(String))
prop.SetValue(obj, val, null);
else if (prop.PropertyType == typeof(Int32))
prop.SetValue(obj, Int32.Parse(val), null);
else
if (prop.PropertyType == typeof(long))
prop.SetValue(obj, long.Parse(val), null);
else
if (prop.PropertyType == typeof(Boolean))
prop.SetValue(obj, Boolean.Parse(val), null);
else if (prop.PropertyType == typeof(Single))
prop.SetValue(obj, Single.Parse(val), null);
else if (prop.PropertyType.IsEnum)
prop.SetValue(obj, Enum.Parse(prop.PropertyType, val, true), null);
else
if (prop.PropertyType == typeof(Guid))
prop.SetValue(obj, new Guid(val), null);
else
if (prop.PropertyType == typeof(string[]))
{
if (val == "")
prop.SetValue(obj, new string[0], null);
else
prop.SetValue(obj, val.Split(';'), null);
}
else if (prop.PropertyType == typeof(int[]))
{
string[] svals = val.Split(';');
int[] ivals = new int[svals.Length];
for (int i = 0; i < svals.Length; i++)
ivals[i] = Int32.Parse(svals[i]);
if (val == "")
ivals = new int[0];
prop.SetValue(obj, ivals, null);
}
}
}
}
private static Dictionary<string, PropertyInfo> GetTypePropertiesHash(Type type)
{
Dictionary<string, PropertyInfo> hash = new Dictionary<string, PropertyInfo>();
PropertyInfo[] props = GetTypeProperties(type);
foreach (PropertyInfo prop in props)
{
if (!hash.ContainsKey(prop.Name))
{
hash.Add(prop.Name, prop);
}
}
return hash;
}
private static PropertyInfo[] GetTypeProperties(Type type)
{
string typeName = type.AssemblyQualifiedName;
if (typeProperties[typeName] != null)
return (PropertyInfo[])typeProperties[typeName];
PropertyInfo[] props = type.GetProperties(BindingFlags.Instance | BindingFlags.Public);
typeProperties[typeName] = props;
return props;
}
public static object GetNull(Type type)
{
if (type == typeof(string))
return null;
if (type == typeof(Int32))
return 0;
if (type == typeof(Int64))
return 0;
if (type == typeof(Boolean))
return false;
if (type == typeof(Decimal))
return 0M;
else
return null;
}
public static object Cast(string val, Type type)
{
if (type == typeof(string))
return val;
if (type == typeof(Int32))
return Int32.Parse(val);
if (type == typeof(Int64))
return Int64.Parse(val);
if (type == typeof(Boolean))
return Boolean.Parse(val);
if (type == typeof(Decimal))
return Decimal.Parse(val);
if (type == typeof(string[]) && val != null)
{
return val.Split(';');
}
if (type.IsEnum)
return Enum.Parse(type, val, true);
if (type == typeof(int[]) && val != null)
{
string[] sarr = val.Split(';');
int[] iarr = new int[sarr.Length];
for (int i = 0; i < sarr.Length; i++)
iarr[i] = Int32.Parse(sarr[i]);
return iarr;
}
else
return val;
}
public static string GetTypeFullName(Type type)
{
return type.FullName + ", " + type.Assembly.GetName().Name;
}
#region Helper Functions
/// <summary>
/// This function is used to determine whether IDataReader contains a Column.
/// </summary>
/// <param name="columnName">Name of the column.</param>
/// <param name="schemaTable">The schema <see cref="DataTable"/> that decribes result-set <see cref="IDataReader"/> contains.</param>
/// <returns>True, when required column exists in the <paramref name="schemaTable"/>. Otherwise, false.</returns>
/// <remark>
/// The followin example shows how to look for the "Role" column in the <see cref="IDataReader"/>.
/// <example>
/// IDataReader reader = ....
/// if (!IsColumnExists("Role", reader.GetSchemaTable())
/// {
/// continue;
/// }
///
/// object roleValue = reader["Role"];
/// </example>
/// </remark>
static bool IsColumnExists(string columnName, DataTable schemaTable)
{
foreach (DataRow row in schemaTable.Rows)
{
if (String.Compare(row[0].ToString(), columnName, StringComparison.OrdinalIgnoreCase) == 0)
{
return true;
}
}
return false;
}
#endregion
}
}

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;
}
@ -248,7 +253,7 @@ namespace WebsitePanel.Ecommerce.EnterpriseServer
invoiceNumber, dueDate, total, subTotal, taxationId, taxAmount, currency);
}
internal static Invoice GetCustomerInvoiceInternally(int invoiceId)
public static Invoice GetCustomerInvoiceInternally(int invoiceId)
{
return ES.ObjectUtils.FillObjectFromDataReader<Invoice>(
EcommerceProvider.GetCustomerInvoice(ES.SecurityContext.User.UserId, invoiceId));
@ -260,7 +265,7 @@ namespace WebsitePanel.Ecommerce.EnterpriseServer
EcommerceProvider.GetCustomerInvoiceItems(ES.SecurityContext.User.UserId, invoiceId));
}
internal static string GetCustomerInvoiceFormattedInternally(int invoiceId, string cultureName)
public static string GetCustomerInvoiceFormattedInternally(int invoiceId, string cultureName)
{
Invoice invoice = GetCustomerInvoiceInternally(invoiceId);
//

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

@ -763,7 +763,7 @@ namespace WebsitePanel.Ecommerce.EnterpriseServer
return EcommerceProvider.DeleteTaxation(SecurityContext.User.UserId, userId, taxationId);
}
internal static void SetPaymentProfile(string contractId, CheckoutDetails newProfile)
public static void SetPaymentProfile(string contractId, CheckoutDetails newProfile)
{
try
{
@ -864,7 +864,7 @@ namespace WebsitePanel.Ecommerce.EnterpriseServer
return details;
}
internal static bool PaymentProfileExists(string contractId)
public static bool PaymentProfileExists(string contractId)
{
return EcommerceProvider.PaymentProfileExists(SecurityContext.User.UserId, contractId);
}
@ -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

@ -252,7 +252,7 @@ namespace WebsitePanel.Ecommerce.EnterpriseServer
EcommerceProvider.GetSupportedPluginById(pluginId));
}
internal static CheckoutFormParams GetCheckoutFormParams(string contractId, int invoiceId,
public static CheckoutFormParams GetCheckoutFormParams(string contractId, int invoiceId,
string methodName, KeyValueBunch options)
{
Contract contractInfo = ContractSystem.ContractController.GetContract(contractId);

View file

@ -45,9 +45,11 @@ namespace WebsitePanel.Ecommerce.EnterpriseServer.TaskEventHandlers
/// </summary>
public override void OnComplete()
{
if (!TaskManager.HasErrors)
BackgroundTask topTask = TaskManager.TopTask;
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 = TaskManager.TopTask;
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 = TaskManager.TopTask;
// 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 = TaskManager.TopTask;
// 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 = TaskManager.TopTask;
if (!TaskManager.HasErrors(topTask))
{
switch (TaskManager.TaskName)
switch (topTask.TaskName)
{
case SystemTasks.TASK_ADD_INVOICE:
RegisterInvoiceActivationTrigger();
@ -65,7 +67,7 @@ namespace WebsitePanel.Ecommerce.EnterpriseServer.TaskEventHandlers
private void RegisterInvoiceActivationTrigger()
{
// Read contract invoice
Invoice invoice = (Invoice)TaskManager.TaskParameters[SystemTaskParams.PARAM_INVOICE];
Invoice invoice = (Invoice)TaskManager.TopTask.GetParamValue(SystemTaskParams.PARAM_INVOICE);
//
TriggerSystem.TriggerController.AddSystemTrigger(invoice.InvoiceId.ToString(),
ActivateInvoiceTrigger.STATUS_AWAITING_PAYMENT, typeof(ActivateInvoiceTrigger));
@ -73,10 +75,12 @@ namespace WebsitePanel.Ecommerce.EnterpriseServer.TaskEventHandlers
private void RegisterContractActivationTrigger()
{
BackgroundTask topTask = TaskManager.TopTask;
// 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 +92,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 = TaskManager.TopTask;
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
{
@ -1244,7 +1232,7 @@ namespace WebsitePanel.EnterpriseServer
int counter = 0;
bool bFound = false;
//if (!AccountExists(accountName)) return accountName;
if (!AccountExists(accountName)) return accountName;
do
{
@ -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;
List<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,10 +3078,9 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck;
// place log record
TaskManager.StartTask("EXCHANGE", "DELETE_CONTACT");
TaskManager.ItemId = itemId;
TaskManager.StartTask("EXCHANGE", "DELETE_CONTACT", itemId);
try
try
{
// load organization
Organization org = GetOrganization(itemId);
@ -3170,8 +3133,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion
// place log record
TaskManager.StartTask("EXCHANGE", "GET_CONTACT_GENERAL");
TaskManager.ItemId = itemId;
TaskManager.StartTask("EXCHANGE", "GET_CONTACT_GENERAL", itemId);
try
{
@ -3211,8 +3173,7 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck;
// place log record
TaskManager.StartTask("EXCHANGE", "UPDATE_CONTACT_GENERAL");
TaskManager.ItemId = itemId;
TaskManager.StartTask("EXCHANGE", "UPDATE_CONTACT_GENERAL", itemId);
try
{
@ -3292,8 +3253,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion
// place log record
TaskManager.StartTask("EXCHANGE", "GET_CONTACT_MAILFLOW");
TaskManager.ItemId = itemId;
TaskManager.StartTask("EXCHANGE", "GET_CONTACT_MAILFLOW", itemId);
try
{
@ -3331,8 +3291,7 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck;
// place log record
TaskManager.StartTask("EXCHANGE", "UPDATE_CONTACT_MAILFLOW");
TaskManager.ItemId = itemId;
TaskManager.StartTask("EXCHANGE", "UPDATE_CONTACT_MAILFLOW", itemId);
try
{
@ -3384,8 +3343,7 @@ namespace WebsitePanel.EnterpriseServer
return BusinessErrorCodes.ERROR_EXCHANGE_DLISTS_QUOTA_LIMIT;
// place log record
TaskManager.StartTask("EXCHANGE", "CREATE_DISTR_LIST");
TaskManager.ItemId = itemId;
TaskManager.StartTask("EXCHANGE", "CREATE_DISTR_LIST", itemId);
try
{
@ -3465,8 +3423,7 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck;
// place log record
TaskManager.StartTask("EXCHANGE", "DELETE_DISTR_LIST");
TaskManager.ItemId = itemId;
TaskManager.StartTask("EXCHANGE", "DELETE_DISTR_LIST", itemId);
try
{
@ -3520,8 +3477,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion
// place log record
TaskManager.StartTask("EXCHANGE", "GET_DISTR_LIST_GENERAL");
TaskManager.ItemId = itemId;
TaskManager.StartTask("EXCHANGE", "GET_DISTR_LIST_GENERAL", itemId);
try
{
@ -3558,8 +3514,7 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck;
// place log record
TaskManager.StartTask("EXCHANGE", "UPDATE_DISTR_LIST_GENERAL");
TaskManager.ItemId = itemId;
TaskManager.StartTask("EXCHANGE", "UPDATE_DISTR_LIST_GENERAL", itemId);
try
{
@ -3621,8 +3576,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion
// place log record
TaskManager.StartTask("EXCHANGE", "GET_DISTR_LIST_MAILFLOW");
TaskManager.ItemId = itemId;
TaskManager.StartTask("EXCHANGE", "GET_DISTR_LIST_MAILFLOW", itemId);
try
{
@ -3660,8 +3614,7 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck;
// place log record
TaskManager.StartTask("EXCHANGE", "UPDATE_DISTR_LIST_MAILFLOW");
TaskManager.ItemId = itemId;
TaskManager.StartTask("EXCHANGE", "UPDATE_DISTR_LIST_MAILFLOW", itemId);
try
{
@ -3707,8 +3660,7 @@ namespace WebsitePanel.EnterpriseServer
public static ExchangeEmailAddress[] GetDistributionListEmailAddresses(int itemId, int accountId)
{
// place log record
TaskManager.StartTask("EXCHANGE", "GET_DISTR_LIST_ADDRESSES");
TaskManager.ItemId = itemId;
TaskManager.StartTask("EXCHANGE", "GET_DISTR_LIST_ADDRESSES", itemId);
try
{
@ -3731,8 +3683,7 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck;
// place log record
TaskManager.StartTask("EXCHANGE", "ADD_DISTR_LIST_ADDRESS");
TaskManager.ItemId = itemId;
TaskManager.StartTask("EXCHANGE", "ADD_DISTR_LIST_ADDRESS", itemId);
try
{
@ -3786,8 +3737,7 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck;
// place log record
TaskManager.StartTask("EXCHANGE", "SET_PRIMARY_DISTR_LIST_ADDRESS");
TaskManager.ItemId = itemId;
TaskManager.StartTask("EXCHANGE", "SET_PRIMARY_DISTR_LIST_ADDRESS", itemId);
try
{
@ -3839,8 +3789,7 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck;
// place log record
TaskManager.StartTask("EXCHANGE", "DELETE_DISTR_LIST_ADDRESSES");
TaskManager.ItemId = itemId;
TaskManager.StartTask("EXCHANGE", "DELETE_DISTR_LIST_ADDRESSES", itemId);
try
{
@ -4020,8 +3969,7 @@ namespace WebsitePanel.EnterpriseServer
return BusinessErrorCodes.ERROR_EXCHANGE_PFOLDERS_QUOTA_LIMIT;
// place log record
TaskManager.StartTask("EXCHANGE", "CREATE_PUBLIC_FOLDER");
TaskManager.ItemId = itemId;
TaskManager.StartTask("EXCHANGE", "CREATE_PUBLIC_FOLDER", itemId);
try
{
@ -4128,8 +4076,7 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck;
// place log record
TaskManager.StartTask("EXCHANGE", "DELETE_PUBLIC_FOLDER");
TaskManager.ItemId = itemId;
TaskManager.StartTask("EXCHANGE", "DELETE_PUBLIC_FOLDER", itemId);
try
{
@ -4178,8 +4125,7 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck;
// place log record
TaskManager.StartTask("EXCHANGE", "ENABLE_MAIL_PUBLIC_FOLDER");
TaskManager.ItemId = itemId;
TaskManager.StartTask("EXCHANGE", "ENABLE_MAIL_PUBLIC_FOLDER", itemId);
try
{
@ -4245,8 +4191,7 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck;
// place log record
TaskManager.StartTask("EXCHANGE", "DISABLE_MAIL_PUBLIC_FOLDER");
TaskManager.ItemId = itemId;
TaskManager.StartTask("EXCHANGE", "DISABLE_MAIL_PUBLIC_FOLDER", itemId);
try
{
@ -4318,8 +4263,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion
// place log record
TaskManager.StartTask("EXCHANGE", "GET_PUBLIC_FOLDER_GENERAL");
TaskManager.ItemId = itemId;
TaskManager.StartTask("EXCHANGE", "GET_PUBLIC_FOLDER_GENERAL", itemId);
try
{
@ -4357,8 +4301,7 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck;
// place log record
TaskManager.StartTask("EXCHANGE", "UPDATE_PUBLIC_FOLDER_GENERAL");
TaskManager.ItemId = itemId;
TaskManager.StartTask("EXCHANGE", "UPDATE_PUBLIC_FOLDER_GENERAL", itemId);
try
{
@ -4431,8 +4374,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion
// place log record
TaskManager.StartTask("EXCHANGE", "GET_PUBLIC_FOLDER_MAILFLOW");
TaskManager.ItemId = itemId;
TaskManager.StartTask("EXCHANGE", "GET_PUBLIC_FOLDER_MAILFLOW", itemId);
try
{
@ -4470,8 +4412,7 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck;
// place log record
TaskManager.StartTask("EXCHANGE", "UPDATE_PUBLIC_FOLDER_MAILFLOW");
TaskManager.ItemId = itemId;
TaskManager.StartTask("EXCHANGE", "UPDATE_PUBLIC_FOLDER_MAILFLOW", itemId);
try
{
@ -4511,8 +4452,7 @@ namespace WebsitePanel.EnterpriseServer
public static ExchangeEmailAddress[] GetPublicFolderEmailAddresses(int itemId, int accountId)
{
// place log record
TaskManager.StartTask("EXCHANGE", "GET_PUBLIC_FOLDER_ADDRESSES");
TaskManager.ItemId = itemId;
TaskManager.StartTask("EXCHANGE", "GET_PUBLIC_FOLDER_ADDRESSES", itemId);
try
{
@ -4535,8 +4475,7 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck;
// place log record
TaskManager.StartTask("EXCHANGE", "ADD_PUBLIC_FOLDER_ADDRESS");
TaskManager.ItemId = itemId;
TaskManager.StartTask("EXCHANGE", "ADD_PUBLIC_FOLDER_ADDRESS", itemId);
try
{
@ -4587,8 +4526,7 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck;
// place log record
TaskManager.StartTask("EXCHANGE", "SET_PRIMARY_PUBLIC_FOLDER_ADDRESS");
TaskManager.ItemId = itemId;
TaskManager.StartTask("EXCHANGE", "SET_PRIMARY_PUBLIC_FOLDER_ADDRESS", itemId);
try
{
@ -4636,8 +4574,7 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck;
// place log record
TaskManager.StartTask("EXCHANGE", "DELETE_PUBLIC_FOLDER_ADDRESSES");
TaskManager.ItemId = itemId;
TaskManager.StartTask("EXCHANGE", "DELETE_PUBLIC_FOLDER_ADDRESSES", itemId);
try
{
@ -4817,8 +4754,7 @@ namespace WebsitePanel.EnterpriseServer
public static ExchangeMobileDevice[] GetMobileDevices(int itemId, int accountId)
{
// place log record
TaskManager.StartTask("EXCHANGE", "GET_MOBILE_DEVICES");
TaskManager.ItemId = itemId;
TaskManager.StartTask("EXCHANGE", "GET_MOBILE_DEVICES", itemId);
try
{
@ -4848,8 +4784,7 @@ namespace WebsitePanel.EnterpriseServer
public static ExchangeMobileDevice GetMobileDevice(int itemId, string deviceId)
{
// place log record
TaskManager.StartTask("EXCHANGE", "GET_MOBILE_DEVICE");
TaskManager.ItemId = itemId;
TaskManager.StartTask("EXCHANGE", "GET_MOBILE_DEVICE", itemId);
try
{
@ -4876,8 +4811,7 @@ namespace WebsitePanel.EnterpriseServer
public static void WipeDataFromDevice(int itemId, string deviceId)
{
// place log record
TaskManager.StartTask("EXCHANGE", "WIPE_DATA_FROM_DEVICE");
TaskManager.ItemId = itemId;
TaskManager.StartTask("EXCHANGE", "WIPE_DATA_FROM_DEVICE", itemId);
try
{
@ -4904,8 +4838,7 @@ namespace WebsitePanel.EnterpriseServer
public static void CancelRemoteWipeRequest(int itemId, string deviceId)
{
// place log record
TaskManager.StartTask("EXCHANGE", "CANCEL_REMOTE_WIPE_REQUEST");
TaskManager.ItemId = itemId;
TaskManager.StartTask("EXCHANGE", "CANCEL_REMOTE_WIPE_REQUEST", itemId);
try
{
@ -4932,8 +4865,7 @@ namespace WebsitePanel.EnterpriseServer
public static void RemoveDevice(int itemId, string deviceId)
{
// place log record
TaskManager.StartTask("EXCHANGE", "REMOVE_DEVICE");
TaskManager.ItemId = itemId;
TaskManager.StartTask("EXCHANGE", "REMOVE_DEVICE", itemId);
try
{

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;
List<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;
List<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;
@ -1700,8 +1694,8 @@ namespace WebsitePanel.EnterpriseServer
// get mailbox settings
Organizations orgProxy = GetOrganizationProxy(org.ServiceId);
string accountName = GetAccountName(account.AccountName);
OrganizationUser retUser = orgProxy.GetUserGeneralSettings(accountName, org.OrganizationId);
retUser.AccountId = accountId;
retUser.AccountName = account.AccountName;
@ -1712,13 +1706,10 @@ namespace WebsitePanel.EnterpriseServer
retUser.IsLyncUser = DataProvider.CheckLyncUserExists(accountId);
retUser.IsBlackBerryUser = BlackBerryController.CheckBlackBerryUserExists(accountId);
retUser.SubscriberNumber = account.SubscriberNumber;
return retUser;
}
catch (Exception ex)
{
//throw TaskManager.WriteError(ex);
}
catch { }
finally
{
TaskManager.CompleteTask();
@ -1740,8 +1731,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 +1822,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 +1920,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 +2036,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

@ -92,10 +92,7 @@ namespace WebsitePanel.EnterpriseServer
DataProvider.AddAuditLogRecord(recordId, severityId, userId, username, packageId, itemId, itemName,
startDate, finishDate, sourceName, taskName, executionLog);
}
catch
{
// skip error
}
catch { }
}
private static DateTime GetStartDate(DateTime d)

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
{
@ -402,7 +400,7 @@ namespace WebsitePanel.EnterpriseServer
item.ServiceId = serviceId;
int itemId = PackageController.AddPackageItem(item);
TaskManager.ItemId = itemId;
TaskManager.ItemId = itemId;
return itemId;
}
@ -432,8 +430,7 @@ namespace WebsitePanel.EnterpriseServer
if (packageCheck < 0) return packageCheck;
// place log record
TaskManager.StartTask("MAIL_FORWARDING", "UPDATE", origItem.Name);
TaskManager.ItemId = item.Id;
TaskManager.StartTask("MAIL_FORWARDING", "UPDATE", origItem.Name, item.Id);
try
{
@ -477,8 +474,7 @@ namespace WebsitePanel.EnterpriseServer
return BusinessErrorCodes.ERROR_MAIL_FORWARDINGS_PACKAGE_ITEM_NOT_FOUND;
// place log record
TaskManager.StartTask("MAIL_FORWARDING", "DELETE", origItem.Name);
TaskManager.ItemId = itemId;
TaskManager.StartTask("MAIL_FORWARDING", "DELETE", origItem.Name, itemId);
try
{
@ -638,8 +634,7 @@ namespace WebsitePanel.EnterpriseServer
return BusinessErrorCodes.ERROR_MAIL_GROUPS_RECIPIENTS_LIMIT;
// place log record
TaskManager.StartTask("MAIL_GROUP", "UPDATE", origItem.Name);
TaskManager.ItemId = item.Id;
TaskManager.StartTask("MAIL_GROUP", "UPDATE", origItem.Name, item.Id);
try
{
@ -679,8 +674,7 @@ namespace WebsitePanel.EnterpriseServer
return BusinessErrorCodes.ERROR_MAIL_GROUPS_PACKAGE_ITEM_NOT_FOUND;
// place log record
TaskManager.StartTask("MAIL_GROUP", "DELETE", origItem.Name);
TaskManager.ItemId = itemId;
TaskManager.StartTask("MAIL_GROUP", "DELETE", origItem.Name, itemId);
try
{
@ -889,8 +883,7 @@ namespace WebsitePanel.EnterpriseServer
return BusinessErrorCodes.ERROR_MAIL_LISTS_RECIPIENTS_LIMIT;
// place log record
TaskManager.StartTask("MAIL_LIST", "UPDATE", origItem.Name);
TaskManager.ItemId = item.Id;
TaskManager.StartTask("MAIL_LIST", "UPDATE", origItem.Name, item.Id);
try
{
@ -938,8 +931,7 @@ namespace WebsitePanel.EnterpriseServer
return BusinessErrorCodes.ERROR_MAIL_LISTS_PACKAGE_ITEM_NOT_FOUND;
// place log record
TaskManager.StartTask("MAIL_LIST", "DELETE", origItem.Name);
TaskManager.ItemId = itemId;
TaskManager.StartTask("MAIL_LIST", "DELETE", origItem.Name, itemId);
try
{
@ -1073,7 +1065,8 @@ namespace WebsitePanel.EnterpriseServer
}
TaskManager.ItemId = itemId;
return itemId;
return itemId;
}
catch (Exception ex)
{
@ -1101,8 +1094,7 @@ namespace WebsitePanel.EnterpriseServer
if (packageCheck < 0) return packageCheck;
// place log record
TaskManager.StartTask("MAIL_DOMAIN", "UPDATE", origItem.Name);
TaskManager.ItemId = item.Id;
TaskManager.StartTask("MAIL_DOMAIN", "UPDATE", origItem.Name, item.Id);
// get service
MailServer mail = new MailServer();
@ -1148,8 +1140,7 @@ namespace WebsitePanel.EnterpriseServer
return BusinessErrorCodes.ERROR_MAIL_DOMAIN_IS_NOT_EMPTY; // mail domain is not empty
// place log record
TaskManager.StartTask("MAIL_DOMAIN", "DELETE", origItem.Name);
TaskManager.ItemId = itemId;
TaskManager.StartTask("MAIL_DOMAIN", "DELETE", origItem.Name, itemId);
try
{
@ -1222,10 +1213,9 @@ namespace WebsitePanel.EnterpriseServer
return BusinessErrorCodes.ERROR_DOMAIN_PACKAGE_ITEM_NOT_FOUND;
// place log record
TaskManager.StartTask("MAIL_DOMAIN", "ADD_POINTER", mailDomain.Name);
TaskManager.ItemId = itemId;
TaskManager.TaskParameters["Domain ID"] = domain.DomainId;
TaskManager.WriteParameter("Domain pointer", domain.DomainName);
TaskManager.StartTask("MAIL_DOMAIN", "ADD_POINTER", mailDomain.Name, itemId, new BackgroundTaskParameter("Domain ID", domain.DomainId));
TaskManager.WriteParameter("Domain pointer", domain.DomainName);
try
{
@ -1277,10 +1267,12 @@ namespace WebsitePanel.EnterpriseServer
return BusinessErrorCodes.ERROR_DOMAIN_PACKAGE_ITEM_NOT_FOUND;
// place log record
TaskManager.StartTask("MAIL_DOMAIN", "DELETE_POINTER", mailDomain.Name);
TaskManager.ItemId = itemId;
TaskManager.TaskParameters["Domain ID"] = domain.DomainId;
TaskManager.WriteParameter("Domain pointer", domain.DomainName);
List<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 = TaskManager.TopTask;
topTask.ItemId = userId;
topTask.UpdateParamValue("SendLetter", sendLetter);
TaskController.UpdateTaskWithParams(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 = TaskManager.TopTask;
topTask.ItemId = userId;
topTask.UpdateParamValue("Signup", signup);
topTask.UpdateParamValue("UserId", userId);
topTask.UpdateParamValue("SendLetter", sendLetter);
TaskController.UpdateTaskWithParams(topTask);
}
finally
{

View file

@ -0,0 +1,36 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("WebsitePanel.EnterpriseServer.Code")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("OM-3")]
[assembly: AssemblyProduct("WebsitePanel.EnterpriseServer.Code")]
[assembly: AssemblyCopyright("Copyright © OM-3 2013")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("e5f16c8f-9560-459d-88d4-9c6ee9b71283")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

View file

@ -31,6 +31,7 @@ using System.IO;
using System.Data;
using System.Text;
using System.Collections.Generic;
using System.Threading;
using System.Xml;
using System.Security.Cryptography;
using System.Security.Cryptography.Xml;
@ -116,10 +117,9 @@ 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
// get the list of items to backup
TaskManager.Write("Calculate items to backup");
List<ServiceProviderItem> items = GetBackupItems(userId, packageId, serviceId, serverId);
@ -210,7 +210,7 @@ namespace WebsitePanel.EnterpriseServer
// increment progress
TaskManager.IndicatorCurrent += 1;
}
}
}
}
catch (Exception ex)
@ -343,7 +343,11 @@ namespace WebsitePanel.EnterpriseServer
}
}
TaskManager.IndicatorCurrent = TaskManager.IndicatorMaximum;
BackgroundTask topTask = TaskManager.TopTask;
topTask.IndicatorCurrent = topTask.IndicatorMaximum;
TaskController.UpdateTask(topTask);
}
catch (Exception ex)
{
@ -490,8 +494,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();
@ -804,8 +807,7 @@ namespace WebsitePanel.EnterpriseServer
return true;
}
catch
{
//
{ //
return false;
}
}

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 = TaskManager.TopTask;
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

@ -29,6 +29,7 @@
using System;
using System.Data;
using System.Configuration;
using System.Threading;
using System.Web;
using System.Web.Security;
using System.Web.UI;
@ -48,18 +49,22 @@ namespace WebsitePanel.EnterpriseServer
/// </summary>
public override void DoWork()
{
string backupFileName;
int storePackageId;
string storePackageFolder;
string storeServerFolder;
bool deleteTempBackup;
BackgroundTask topTask = TaskManager.TopTask;
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 +74,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

@ -46,7 +46,7 @@ namespace WebsitePanel.EnterpriseServer
public void CalculateDiskspace()
{
// get all space organizations recursively
List<Organization> items = ExchangeServerController.GetExchangeOrganizations(TaskManager.PackageId, true);
List<Organization> items = ExchangeServerController.GetExchangeOrganizations(TaskManager.TopTask.PackageId, true);
foreach (Organization item in items)
{

View file

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

View file

@ -52,7 +52,7 @@ namespace WebsitePanel.EnterpriseServer
public void CalculateDiskspace()
{
// get all owned packages
List<PackageInfo> packages = PackageController.GetPackagePackages(TaskManager.PackageId, true);
List<PackageInfo> packages = PackageController.GetPackagePackages(TaskManager.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 = TaskManager.TopTask;
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 = TaskManager.TopTask;
// 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 = TaskManager.TopTask;
// 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 = TaskManager.TopTask;
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 = TaskManager.TopTask;
// 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 = TaskManager.TopTask;
// 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 = TaskManager.TopTask;
// 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 = TaskManager.TopTask;
// 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 = TaskManager.TopTask;
// 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

@ -28,6 +28,7 @@
using System;
using System.IO;
using System.ServiceProcess;
using System.Threading;
using System.Collections;
using System.Diagnostics;
@ -43,77 +44,91 @@ namespace WebsitePanel.EnterpriseServer
{
public static SchedulerJob nextSchedule = null;
// main timer and put it to sleep
static Timer scheduleTimer = new Timer(new TimerCallback(RunNextSchedule),
null,
Timeout.Infinite,
Timeout.Infinite);
public static void Start()
{
// schedule tasks
{
ScheduleTasks();
}
public static bool IsScheduleActive(int scheduleId)
{
Dictionary<int, BackgroundTask> scheduledTasks = TaskManager.GetScheduledTasks();
return scheduledTasks.ContainsKey(scheduleId);
}
public static void StartSchedule(SchedulerJob schedule)
{
Dictionary<int, BackgroundTask> scheduledTasks = TaskManager.GetScheduledTasks();
if (scheduledTasks.ContainsKey(schedule.ScheduleInfo.ScheduleId))
return;
// run schedule
RunSchedule(schedule, false);
}
public static void StopSchedule(SchedulerJob schedule)
{
Dictionary<int, BackgroundTask> scheduledTasks = TaskManager.GetScheduledTasks();
if (!scheduledTasks.ContainsKey(schedule.ScheduleInfo.ScheduleId))
return;
BackgroundTask activeTask = scheduledTasks[schedule.ScheduleInfo.ScheduleId];
TaskManager.StopTask(activeTask.TaskId);
}
public static void ScheduleTasks()
{
RunManualTasks();
nextSchedule = SchedulerController.GetNextSchedule();
// set timer
if (nextSchedule != null)
{
if (nextSchedule.ScheduleInfo.NextRun <= DateTime.Now)
{
// this will put the timer to sleep
scheduleTimer.Change(Timeout.Infinite, Timeout.Infinite);
System.Threading.Thread.Sleep(1000);
// run immediately
RunNextSchedule(null);
}
else
{
// set timer
TimeSpan ts = nextSchedule.ScheduleInfo.NextRun.Subtract(DateTime.Now);
if (ts < TimeSpan.Zero)
ts = TimeSpan.Zero; // cannot be negative !
}
}
// invoke after the timespan
scheduleTimer.Change((long)ts.TotalMilliseconds, Timeout.Infinite);
private static void RunManualTasks()
{
var tasks = TaskController.GetProcessTasks(BackgroundTaskStatus.Stopping);
foreach (var task in tasks)
{
TaskManager.StopTask(task.TaskId);
}
tasks = TaskController.GetProcessTasks(BackgroundTaskStatus.Starting);
foreach (var task in tasks)
{
var taskThread = new Thread(() => RunBackgroundTask(task)) { Priority = ThreadPriority.Highest };
taskThread.Start();
TaskManager.AddTaskThread(task.Id, taskThread);
}
}
private static void RunBackgroundTask(BackgroundTask backgroundTask)
{
UserInfo user = PackageController.GetPackageOwner(backgroundTask.PackageId);
SecurityContext.SetThreadPrincipal(user.UserId);
var schedule = SchedulerController.GetScheduleComplete(backgroundTask.ScheduleId);
backgroundTask.Guid = TaskManager.Guid;
backgroundTask.Status = BackgroundTaskStatus.Run;
TaskController.UpdateTask(backgroundTask);
try
{
var objTask = (SchedulerTask)Activator.CreateInstance(Type.GetType(schedule.Task.TaskType));
objTask.DoWork();
}
catch (Exception ex)
{
TaskManager.WriteError(ex, "Error executing scheduled task");
}
finally
{
try
{
TaskManager.CompleteTask();
}
catch (Exception)
{
}
}
}
// call back for the timer function
static void RunNextSchedule(object obj) // obj ignored
{
{
if (nextSchedule == null)
return;
@ -125,8 +140,6 @@ namespace WebsitePanel.EnterpriseServer
static void RunSchedule(SchedulerJob schedule, bool changeNextRun)
{
try
{
// update next run (if required)
@ -162,6 +175,8 @@ namespace WebsitePanel.EnterpriseServer
counter++;
}
if (counter == MAX_RETRY_COUNT)
return;
// skip execution if the current task is still running
scheduledTasks = TaskManager.GetScheduledTasks();

View file

@ -31,6 +31,7 @@ using System.Data;
using System.Collections.Generic;
using System.Text;
using System.Xml;
using System.Linq;
using WebsitePanel.EnterpriseServer.Base.Scheduling;
namespace WebsitePanel.EnterpriseServer
@ -151,30 +152,74 @@ namespace WebsitePanel.EnterpriseServer
{
// check account
int accountCheck = SecurityContext.CheckAccount(DemandAccount.NotDemo);
if (accountCheck < 0) return accountCheck;
if (accountCheck < 0)
return accountCheck;
SchedulerJob schedule = GetScheduleComplete(scheduleId);
if (schedule == null)
return 0;
Scheduler.StartSchedule(schedule);
if (TaskController.GetScheduleTasks(scheduleId).Any(x => x.Status == BackgroundTaskStatus.Run
|| x.Status == BackgroundTaskStatus.Starting))
return 0;
var parameters = schedule.ScheduleInfo.Parameters.Select(
prm => new BackgroundTaskParameter(prm.ParameterId, prm.ParameterValue)).ToList();
var userInfo = PackageController.GetPackageOwner(schedule.ScheduleInfo.PackageId);
var backgroundTask = new BackgroundTask(
Guid.NewGuid(),
Guid.NewGuid().ToString("N"),
userInfo.OwnerId == 0 ? userInfo.UserId : userInfo.OwnerId,
userInfo.UserId,
"SCHEDULER",
"RUN_SCHEDULE",
schedule.ScheduleInfo.ScheduleName,
schedule.ScheduleInfo.ScheduleId,
schedule.ScheduleInfo.ScheduleId,
schedule.ScheduleInfo.PackageId,
schedule.ScheduleInfo.MaxExecutionTime, parameters)
{
Status = BackgroundTaskStatus.Starting
};
TaskController.AddTask(backgroundTask);
// update next run (if required)
CalculateNextStartTime(schedule.ScheduleInfo);
// disable run once task
if (schedule.ScheduleInfo.ScheduleType == ScheduleType.OneTime)
schedule.ScheduleInfo.Enabled = false;
schedule.ScheduleInfo.LastRun = DateTime.Now;
UpdateSchedule(schedule.ScheduleInfo);
return 0;
}
}
public static int StopSchedule(int scheduleId)
{
// check account
int accountCheck = SecurityContext.CheckAccount(DemandAccount.NotDemo);
if (accountCheck < 0) return accountCheck;
if (accountCheck < 0)
return accountCheck;
SchedulerJob schedule = GetScheduleComplete(scheduleId);
if (schedule == null)
return 0;
Scheduler.StopSchedule(schedule);
foreach (BackgroundTask task in TaskController.GetScheduleTasks(scheduleId))
{
task.Status = BackgroundTaskStatus.Stopping;
TaskController.UpdateTask(task);
}
return 0;
}
public static void CalculateNextStartTime(ScheduleInfo schedule)
@ -275,7 +320,7 @@ namespace WebsitePanel.EnterpriseServer
schedule.HistoriesNumber, schedule.MaxExecutionTime, schedule.WeekMonthDay, xmlParameters);
// re-schedule tasks
Scheduler.ScheduleTasks();
//Scheduler.ScheduleTasks();
return scheduleId;
}
@ -301,7 +346,7 @@ namespace WebsitePanel.EnterpriseServer
schedule.HistoriesNumber, schedule.MaxExecutionTime, schedule.WeekMonthDay, xmlParameters);
// re-schedule tasks
Scheduler.ScheduleTasks();
//Scheduler.ScheduleTasks();
return 0;
}
@ -336,7 +381,7 @@ namespace WebsitePanel.EnterpriseServer
DataProvider.DeleteSchedule(SecurityContext.User.UserId, scheduleId);
// re-schedule tasks
Scheduler.ScheduleTasks();
//Scheduler.ScheduleTasks();
return 0;
}

View file

@ -66,7 +66,6 @@ namespace WebsitePanel.EnterpriseServer
{
// create worker
Thread worker = new Thread(new ThreadStart(RunSchedule));
// set worker priority
switch (scheduleInfo.Priority)
{
@ -89,15 +88,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
List<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
@ -109,7 +108,8 @@ namespace WebsitePanel.EnterpriseServer
objTask.DoWork();
else
throw new Exception(String.Format("Could not create scheduled task of '{0}' type",
task.TaskType));
task.TaskType));
// Thread.Sleep(40000);
}
catch (Exception ex)
{

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

@ -119,7 +119,7 @@ namespace WebsitePanel.EnterpriseServer
return 0;
}
internal static bool GetSystemSetupMode()
public static bool GetSystemSetupMode()
{
var scpaSystemSettings = GetSystemSettings(SystemSettings.SETUP_SETTINGS);
// Flag either not found or empty
@ -131,7 +131,7 @@ namespace WebsitePanel.EnterpriseServer
return true;
}
internal static int SetupControlPanelAccounts(string passwordA, string passwordB, string ip)
public static int SetupControlPanelAccounts(string passwordA, string passwordB, string ip)
{
try
{

View file

@ -40,23 +40,25 @@ namespace WebsitePanel.EnterpriseServer.Tasks
public override void OnComplete()
{
if (!TaskManager.HasErrors)
BackgroundTask topTask = TaskManager.TopTask;
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 = TaskManager.TopTask;
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 = TaskManager.TopTask;
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 = TaskManager.TopTask;
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

Some files were not shown because too many files have changed in this diff Show more