diff --git a/WebsitePanel.Installer/Sources/Setup.SchedulerService/Config.wxi b/WebsitePanel.Installer/Sources/Setup.SchedulerService/Config.wxi
new file mode 100644
index 00000000..8265cb6f
--- /dev/null
+++ b/WebsitePanel.Installer/Sources/Setup.SchedulerService/Config.wxi
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/WebsitePanel.Installer/Sources/Setup.SchedulerService/License.rtf b/WebsitePanel.Installer/Sources/Setup.SchedulerService/License.rtf
new file mode 100644
index 00000000..8f1b4211
Binary files /dev/null and b/WebsitePanel.Installer/Sources/Setup.SchedulerService/License.rtf differ
diff --git a/WebsitePanel.Installer/Sources/Setup.SchedulerService/Product.wxs b/WebsitePanel.Installer/Sources/Setup.SchedulerService/Product.wxs
new file mode 100644
index 00000000..f66dd59c
--- /dev/null
+++ b/WebsitePanel.Installer/Sources/Setup.SchedulerService/Product.wxs
@@ -0,0 +1,132 @@
+
+
+
+
+
+
+
+
+
+
+ bannrbmp
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ LicenseAccepted = "1"
+
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/WebsitePanel.Installer/Sources/Setup.SchedulerService/Setup.SchedulerService.wixproj b/WebsitePanel.Installer/Sources/Setup.SchedulerService/Setup.SchedulerService.wixproj
new file mode 100644
index 00000000..12733ad4
--- /dev/null
+++ b/WebsitePanel.Installer/Sources/Setup.SchedulerService/Setup.SchedulerService.wixproj
@@ -0,0 +1,52 @@
+
+
+
+ Debug
+ x86
+ 3.7
+ {ead7c528-ea3d-40e8-9688-9f1d8dc8d758}
+ 2.0
+ Setup.SchedulerService
+ Package
+ $(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\Wix.targets
+ $(MSBuildExtensionsPath)\Microsoft\WiX\v3.x\Wix.targets
+
+
+ bin\
+ obj\$(Configuration)\
+ Debug;BUILD=debug
+ False
+
+
+
+
+
+
+
+
+ bin\$(Configuration)\
+ obj\$(Configuration)\
+ BUILD=release
+
+
+
+
+
+
+
+
+
+ ..\..\..\tools\WIX\WixUIExtension.dll
+ WixUIExtension
+
+
+
+
+
\ No newline at end of file
diff --git a/WebsitePanel.Installer/Sources/Setup.SchedulerService/WebSitePanel.ico b/WebsitePanel.Installer/Sources/Setup.SchedulerService/WebSitePanel.ico
new file mode 100644
index 00000000..bf9c0b86
Binary files /dev/null and b/WebsitePanel.Installer/Sources/Setup.SchedulerService/WebSitePanel.ico differ
diff --git a/WebsitePanel.Installer/Sources/Setup.SchedulerService/bannrbmp.bmp b/WebsitePanel.Installer/Sources/Setup.SchedulerService/bannrbmp.bmp
new file mode 100644
index 00000000..9ac7e922
Binary files /dev/null and b/WebsitePanel.Installer/Sources/Setup.SchedulerService/bannrbmp.bmp differ
diff --git a/WebsitePanel.Installer/Sources/Setup.SchedulerService/dlgbmp.bmp b/WebsitePanel.Installer/Sources/Setup.SchedulerService/dlgbmp.bmp
new file mode 100644
index 00000000..dbf9959b
Binary files /dev/null and b/WebsitePanel.Installer/Sources/Setup.SchedulerService/dlgbmp.bmp differ
diff --git a/WebsitePanel.Installer/Sources/VersionInfo.cs b/WebsitePanel.Installer/Sources/VersionInfo.cs
index 8ca7c4b0..aa59da61 100644
--- a/WebsitePanel.Installer/Sources/VersionInfo.cs
+++ b/WebsitePanel.Installer/Sources/VersionInfo.cs
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
//
// 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.
diff --git a/WebsitePanel.Installer/Sources/WebsitePanel.Installer.sln b/WebsitePanel.Installer/Sources/WebsitePanel.Installer.sln
index 8253af7f..6ded8966 100644
--- a/WebsitePanel.Installer/Sources/WebsitePanel.Installer.sln
+++ b/WebsitePanel.Installer/Sources/WebsitePanel.Installer.sln
@@ -1,5 +1,5 @@
Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 2012
+# Visual Studio 2010
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{129305D5-A9E6-4DCE-BFF6-41809E13EEEE}"
ProjectSection(SolutionItems) = preProject
..\..\WebsitePanel\build.xml = ..\..\WebsitePanel\build.xml
@@ -24,6 +24,10 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebsitePanel.Installer.Core
EndProject
Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "Setup.WIX", "Setup.WIX\Setup.WIX.wixproj", "{F963A4AF-CC72-4512-B636-829345C35318}"
EndProject
+Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "Setup.SchedulerService", "Setup.SchedulerService\Setup.SchedulerService.wixproj", "{EAD7C528-EA3D-40E8-9688-9F1D8DC8D758}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebsitePanel.SchedulerServiceInstaller", "WebsitePanel.SchedulerServiceInstaller\WebsitePanel.SchedulerServiceInstaller.csproj", "{24A4C231-73A9-4F03-ABAD-9A8FE5324495}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -96,6 +100,26 @@ Global
{F963A4AF-CC72-4512-B636-829345C35318}.Release|Mixed Platforms.Build.0 = Release|x86
{F963A4AF-CC72-4512-B636-829345C35318}.Release|x86.ActiveCfg = Release|x86
{F963A4AF-CC72-4512-B636-829345C35318}.Release|x86.Build.0 = Release|x86
+ {EAD7C528-EA3D-40E8-9688-9F1D8DC8D758}.Debug|Any CPU.ActiveCfg = Debug|x86
+ {EAD7C528-EA3D-40E8-9688-9F1D8DC8D758}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
+ {EAD7C528-EA3D-40E8-9688-9F1D8DC8D758}.Debug|Mixed Platforms.Build.0 = Debug|x86
+ {EAD7C528-EA3D-40E8-9688-9F1D8DC8D758}.Debug|x86.ActiveCfg = Debug|x86
+ {EAD7C528-EA3D-40E8-9688-9F1D8DC8D758}.Debug|x86.Build.0 = Debug|x86
+ {EAD7C528-EA3D-40E8-9688-9F1D8DC8D758}.Release|Any CPU.ActiveCfg = Release|x86
+ {EAD7C528-EA3D-40E8-9688-9F1D8DC8D758}.Release|Mixed Platforms.ActiveCfg = Release|x86
+ {EAD7C528-EA3D-40E8-9688-9F1D8DC8D758}.Release|Mixed Platforms.Build.0 = Release|x86
+ {EAD7C528-EA3D-40E8-9688-9F1D8DC8D758}.Release|x86.ActiveCfg = Release|x86
+ {EAD7C528-EA3D-40E8-9688-9F1D8DC8D758}.Release|x86.Build.0 = Release|x86
+ {24A4C231-73A9-4F03-ABAD-9A8FE5324495}.Debug|Any CPU.ActiveCfg = Debug|x86
+ {24A4C231-73A9-4F03-ABAD-9A8FE5324495}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
+ {24A4C231-73A9-4F03-ABAD-9A8FE5324495}.Debug|Mixed Platforms.Build.0 = Debug|x86
+ {24A4C231-73A9-4F03-ABAD-9A8FE5324495}.Debug|x86.ActiveCfg = Debug|x86
+ {24A4C231-73A9-4F03-ABAD-9A8FE5324495}.Debug|x86.Build.0 = Debug|x86
+ {24A4C231-73A9-4F03-ABAD-9A8FE5324495}.Release|Any CPU.ActiveCfg = Release|x86
+ {24A4C231-73A9-4F03-ABAD-9A8FE5324495}.Release|Mixed Platforms.ActiveCfg = Release|x86
+ {24A4C231-73A9-4F03-ABAD-9A8FE5324495}.Release|Mixed Platforms.Build.0 = Release|x86
+ {24A4C231-73A9-4F03-ABAD-9A8FE5324495}.Release|x86.ActiveCfg = Release|x86
+ {24A4C231-73A9-4F03-ABAD-9A8FE5324495}.Release|x86.Build.0 = Release|x86
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/WebsitePanel.Installer/Sources/WebsitePanel.SchedulerServiceInstaller/CustomAction.config b/WebsitePanel.Installer/Sources/WebsitePanel.SchedulerServiceInstaller/CustomAction.config
new file mode 100644
index 00000000..233c44d7
--- /dev/null
+++ b/WebsitePanel.Installer/Sources/WebsitePanel.SchedulerServiceInstaller/CustomAction.config
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/WebsitePanel.Installer/Sources/WebsitePanel.SchedulerServiceInstaller/CustomAction.cs b/WebsitePanel.Installer/Sources/WebsitePanel.SchedulerServiceInstaller/CustomAction.cs
new file mode 100644
index 00000000..9dbf7fc3
--- /dev/null
+++ b/WebsitePanel.Installer/Sources/WebsitePanel.SchedulerServiceInstaller/CustomAction.cs
@@ -0,0 +1,142 @@
+using System;
+using System.Configuration.Install;
+using System.Data;
+using System.Data.SqlClient;
+using System.IO;
+using System.Linq;
+using System.ServiceProcess;
+using System.Text.RegularExpressions;
+using Microsoft.Deployment.WindowsInstaller;
+
+namespace WebsitePanel.SchedulerServiceInstaller
+{
+ public class CustomActions
+ {
+ [CustomAction]
+ public static ActionResult CheckConnection(Session session)
+ {
+ string testConnectionString = session["AUTHENTICATIONTYPE"].Equals("Windows Authentication") ? GetConnectionString(session["SERVERNAME"], "master") : GetConnectionString(session["SERVERNAME"], "master", session["LOGIN"], session["PASSWORD"]);
+
+ if (CheckConnection(testConnectionString))
+ {
+ session["CORRECTCONNECTION"] = "1";
+ session["CONNECTIONSTRING"] = session["AUTHENTICATIONTYPE"].Equals("Windows Authentication") ? GetConnectionString(session["SERVERNAME"], session["DATABASENAME"]) : GetConnectionString(session["SERVERNAME"], session["DATABASENAME"], session["LOGIN"], session["PASSWORD"]);
+ }
+ else
+ {
+ session["CORRECTCONNECTION"] = "0";
+ }
+
+ return ActionResult.Success;
+ }
+
+ [CustomAction]
+ public static ActionResult FinalizeInstall(Session session)
+ {
+ ChangeConfigString("installer.connectionstring", session["CONNECTIONSTRING"], session["INSTALLFOLDER"]);
+ ChangeCryptoKey(session["INSTALLFOLDER"]);
+ InstallService(session["INSTALLFOLDER"]);
+
+ return ActionResult.Success;
+ }
+
+ private static void InstallService(string installFolder)
+ {
+ try
+ {
+ if (!ServiceController.GetServices().Any(s => s.DisplayName.Equals("WebsitePanel Scheduler", StringComparison.CurrentCultureIgnoreCase)))
+ {
+ ManagedInstallerClass.InstallHelper(new[] {"/i", Path.Combine(installFolder, "WebsitePanel.SchedulerService.exe")});
+ }
+
+ StartService("WebsitePanel Scheduler");
+ }
+ catch (Exception)
+ {
+ }
+ }
+
+ private static void ChangeCryptoKey(string installFolder)
+ {
+ string path = Path.Combine(installFolder.Replace("SchedulerService", "Enterprise Server"), "web.config");
+ string cryptoKey = "0123456789";
+
+ if (File.Exists(path))
+ {
+ using (var reader = new StreamReader(path))
+ {
+ string content = reader.ReadToEnd();
+ var pattern = new Regex(@"(?<=)");
+ Match match = pattern.Match(content);
+ cryptoKey = match.Value;
+ }
+ }
+
+ ChangeConfigString("installer.cryptokey", cryptoKey, installFolder);
+ }
+
+ private static void ChangeConfigString(string searchString, string replaceValue, string installFolder)
+ {
+ string content;
+ string path = Path.Combine(installFolder, "WebsitePanel.SchedulerService.exe.config");
+
+ using (var reader = new StreamReader(path))
+ {
+ content = reader.ReadToEnd();
+ }
+
+ var re = new Regex("\\$\\{" + searchString + "\\}+", RegexOptions.IgnoreCase);
+ content = re.Replace(content, replaceValue);
+
+ using (var writer = new StreamWriter(path))
+ {
+ writer.Write(content);
+ }
+ }
+
+ private static void StartService(string serviceName)
+ {
+ var sc = new ServiceController(serviceName);
+
+ if (sc.Status == ServiceControllerStatus.Stopped)
+ {
+ sc.Start();
+ sc.WaitForStatus(ServiceControllerStatus.Running);
+ }
+ }
+
+ private static string GetConnectionString(string serverName, string databaseName)
+ {
+ return string.Format("Server={0};database={1};Trusted_Connection=true;", serverName, databaseName);
+ }
+
+ private static string GetConnectionString(string serverName, string databaseName, string login, string password)
+ {
+ return string.Format("Server={0};database={1};uid={2};password={3};", serverName, databaseName, login, password);
+ }
+
+ private static bool CheckConnection(string connectionString)
+ {
+ var connection = new SqlConnection(connectionString);
+ bool result = true;
+
+ try
+ {
+ connection.Open();
+ }
+ catch (Exception)
+ {
+ result = false;
+ }
+ finally
+ {
+ if (connection != null && connection.State == ConnectionState.Open)
+ {
+ connection.Close();
+ }
+ }
+
+ return result;
+ }
+ }
+}
\ No newline at end of file
diff --git a/WebsitePanel.Installer/Sources/WebsitePanel.SchedulerServiceInstaller/Properties/AssemblyInfo.cs b/WebsitePanel.Installer/Sources/WebsitePanel.SchedulerServiceInstaller/Properties/AssemblyInfo.cs
new file mode 100644
index 00000000..222e3d9d
--- /dev/null
+++ b/WebsitePanel.Installer/Sources/WebsitePanel.SchedulerServiceInstaller/Properties/AssemblyInfo.cs
@@ -0,0 +1,35 @@
+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.SchedulerServiceInstaller")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("WebsitePanel.SchedulerServiceInstaller")]
+[assembly: AssemblyCopyright("Copyright © 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("64885563-cef3-4553-9006-31282c033b3b")]
+
+// 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")]
diff --git a/WebsitePanel.Installer/Sources/WebsitePanel.SchedulerServiceInstaller/WebsitePanel.SchedulerServiceInstaller.csproj b/WebsitePanel.Installer/Sources/WebsitePanel.SchedulerServiceInstaller/WebsitePanel.SchedulerServiceInstaller.csproj
new file mode 100644
index 00000000..22f11548
--- /dev/null
+++ b/WebsitePanel.Installer/Sources/WebsitePanel.SchedulerServiceInstaller/WebsitePanel.SchedulerServiceInstaller.csproj
@@ -0,0 +1,52 @@
+
+
+
+ Debug
+ x86
+ 8.0.30703
+ 2.0
+ {24A4C231-73A9-4F03-ABAD-9A8FE5324495}
+ Library
+ Properties
+ WebsitePanel.SchedulerServiceInstaller
+ WebsitePanel.SchedulerServiceInstaller
+ v4.0
+ 512
+ $(MSBuildExtensionsPath)\Microsoft\WiX\v3.x\Wix.CA.targets
+
+
+ true
+ full
+ false
+ ..\Setup.SchedulerService\bin\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ pdbonly
+ true
+ ..\Setup.SchedulerService\bin\
+ TRACE
+ prompt
+ 4
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/WebsitePanel.Installer/Sources/WebsitePanel.Setup/Actions/EntServerActionManager.cs b/WebsitePanel.Installer/Sources/WebsitePanel.Setup/Actions/EntServerActionManager.cs
index 6952cf21..51032a44 100644
--- a/WebsitePanel.Installer/Sources/WebsitePanel.Setup/Actions/EntServerActionManager.cs
+++ b/WebsitePanel.Installer/Sources/WebsitePanel.Setup/Actions/EntServerActionManager.cs
@@ -28,6 +28,9 @@
using System;
using System.Collections.Generic;
+using System.Configuration.Install;
+using System.Linq;
+using System.ServiceProcess;
using System.Text;
using System.IO;
using System.Xml;
@@ -97,7 +100,7 @@ namespace WebsitePanel.Setup.Actions
throw;
}
}
- }
+ }
public class CreateDatabaseAction : Action, IInstallAction, IUninstallAction
{
@@ -347,7 +350,7 @@ namespace WebsitePanel.Setup.Actions
Log.WriteEnd(String.Format("Updated {0} file", vars.ConfigurationFile));
}
}
-
+
public class SaveEntServerConfigSettingsAction : Action, IInstallAction
{
void IInstallAction.Run(SetupVariables vars)
@@ -390,7 +393,7 @@ namespace WebsitePanel.Setup.Actions
new UpdateServeradminPasswAction(),
new SaveAspNetDbConnectionStringAction(),
new SaveComponentConfigSettingsAction(),
- new SaveEntServerConfigSettingsAction()
+ new SaveEntServerConfigSettingsAction()
};
public EntServerActionManager(SetupVariables sessionVars) : base(sessionVars)
diff --git a/WebsitePanel.Installer/Sources/WebsitePanel.Setup/Common/Global.cs b/WebsitePanel.Installer/Sources/WebsitePanel.Setup/Common/Global.cs
index 52affc1e..819105d6 100644
--- a/WebsitePanel.Installer/Sources/WebsitePanel.Setup/Common/Global.cs
+++ b/WebsitePanel.Installer/Sources/WebsitePanel.Setup/Common/Global.cs
@@ -76,7 +76,7 @@ namespace WebsitePanel.Setup
public const string DatabaseName = "DatabaseName";
public const string ConnectionString = "ConnectionString";
public const string InstallConnectionString = "InstallConnectionString";
- public const string Release = "Release";
+ public const string Release = "Release";
}
public abstract class Messages
diff --git a/WebsitePanel.Installer/Sources/WebsitePanel.Setup/WebsitePanel.Setup.csproj b/WebsitePanel.Installer/Sources/WebsitePanel.Setup/WebsitePanel.Setup.csproj
index 6b9d839d..f8a058bc 100644
--- a/WebsitePanel.Installer/Sources/WebsitePanel.Setup/WebsitePanel.Setup.csproj
+++ b/WebsitePanel.Installer/Sources/WebsitePanel.Setup/WebsitePanel.Setup.csproj
@@ -74,6 +74,7 @@
+
diff --git a/WebsitePanel.Installer/Sources/WebsitePanel.Setup/Wizard/UninstallPage.cs b/WebsitePanel.Installer/Sources/WebsitePanel.Setup/Wizard/UninstallPage.cs
index f9e34dfa..cd65881d 100644
--- a/WebsitePanel.Installer/Sources/WebsitePanel.Setup/Wizard/UninstallPage.cs
+++ b/WebsitePanel.Installer/Sources/WebsitePanel.Setup/Wizard/UninstallPage.cs
@@ -27,11 +27,14 @@
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
using System;
+using System.Configuration.Install;
using System.IO;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
+using System.Linq;
+using System.ServiceProcess;
using System.Text;
using System.Threading;
using System.Windows.Forms;
@@ -208,17 +211,19 @@ namespace WebsitePanel.Setup
Log.WriteError("Windows service stop error", ex);
}
- int exitCode = Utils.RunProcess(path, "/u");
- if (exitCode == 0)
- {
- Log.WriteEnd("Removed Windows service");
- InstallLog.AppendLine(string.Format("- Removed \"{0}\" Windows service", serviceName));
- }
- else
- {
- Log.WriteError(string.Format("Unable to remove \"{0}\" Windows service. Error code: {1}", serviceName, exitCode), null);
- InstallLog.AppendLine(string.Format("- Failed to remove \"{0}\" Windows service", serviceName));
- }
+ try
+ {
+ ManagedInstallerClass.InstallHelper(new[] {"/u", path});
+ }
+ catch(Exception)
+ {
+ Log.WriteError(string.Format("Unable to remove \"{0}\" Windows service.", serviceName), null);
+ InstallLog.AppendLine(string.Format("- Failed to remove \"{0}\" Windows service", serviceName));
+ throw;
+ }
+
+ Log.WriteEnd("Removed Windows service");
+ InstallLog.AppendLine(string.Format("- Removed \"{0}\" Windows service", serviceName));
}
catch (Exception ex)
{
@@ -268,7 +273,7 @@ namespace WebsitePanel.Setup
internal List GetUninstallActions(string componentId)
{
- List list = new List();
+ var list = new List();
InstallAction action = null;
//windows service
@@ -283,8 +288,7 @@ namespace WebsitePanel.Setup
action.Description = "Removing Windows service...";
action.Log = string.Format("- Remove {0} Windows service", serviceName);
list.Add(action);
- }
-
+ }
//database
bool deleteDatabase = AppConfig.GetComponentSettingBooleanValue(componentId, "NewDatabase");
diff --git a/WebsitePanel/Database/update_db.sql b/WebsitePanel/Database/update_db.sql
index 844b8a6f..d4a8755c 100644
--- a/WebsitePanel/Database/update_db.sql
+++ b/WebsitePanel/Database/update_db.sql
@@ -450,41 +450,993 @@ INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName]
VALUES (1401, 41, N'Lync2013', N'Microsoft Lync Server 2013 Multitenant Hosting Pack', N'WebsitePanel.Providers.HostedSolution.Lync2013, WebsitePanel.Providers.HostedSolution.Lync2013', N'Lync', NULL)
END
GO
-
-- add Application Pools Restart Quota
INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID], [HideQuota]) VALUES (411, 2, 13, N'Web.AppPoolsRestart', N'Application Pools Restart', 1, 0, NULL, NULL)
GO
+-------------------------------- Scheduler Service------------------------------------------------------
-
-IF NOT EXISTS (SELECT * FROM [dbo].[ResourceGroups] WHERE [GroupName] = 'Remote Desktop Services')
-BEGIN
-INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController], [ShowGroup]) VALUES (43, N'RemoteDesktopServices', 24, N'WebsitePanel.EnterpriseServer.RemoteDesktopServicesController', 1)
-END
+IF EXISTS( SELECT * FROM INFORMATION_SCHEMA.COLUMNS
+ WHERE TABLE_NAME = 'Schedule'
+ AND COLUMN_NAME = 'LastFinish')
+ALTER TABLE Schedule
+DROP COLUMN LastFinish
GO
-IF NOT EXISTS (SELECT * FROM [dbo].[Providers] WHERE [DisplayName] = 'Remote Desktop Windows 2012')
-BEGIN
-INSERT [dbo].[Providers] ([ProviderId], [GroupId], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES(500, 43, N'RemoteDesktop2012', N'Remote Desktop Services Windows 2012', N'WebsitePanel.Providers.RemoteDesktopServices.Windows2012, WebsitePanel.Providers.RemoteDesktopServices.Windows2012', N'RemoteDesktopServices', 1)
-END
-ELSE
-BEGIN
-UPDATE [dbo].[Providers] SET [DisableAutoDiscovery] = NULL WHERE [DisplayName] = 'Remote Desktop Windows 2012'
-END
+ALTER PROCEDURE [dbo].[GetSchedule]
+(
+ @ActorID int,
+ @ScheduleID int
+)
+AS
+
+-- select schedule
+SELECT TOP 1
+ S.ScheduleID,
+ S.TaskID,
+ S.PackageID,
+ S.ScheduleName,
+ S.ScheduleTypeID,
+ S.Interval,
+ S.FromTime,
+ S.ToTime,
+ S.StartTime,
+ S.LastRun,
+ S.NextRun,
+ S.Enabled,
+ S.HistoriesNumber,
+ S.PriorityID,
+ S.MaxExecutionTime,
+ S.WeekMonthDay,
+ 1 AS StatusID
+FROM Schedule AS S
+WHERE
+ S.ScheduleID = @ScheduleID
+ AND dbo.CheckActorPackageRights(@ActorID, S.PackageID) = 1
+
+-- select task
+SELECT
+ ST.TaskID,
+ ST.TaskType,
+ ST.RoleID
+FROM Schedule AS S
+INNER JOIN ScheduleTasks AS ST ON S.TaskID = ST.TaskID
+WHERE
+ S.ScheduleID = @ScheduleID
+ AND dbo.CheckActorPackageRights(@ActorID, S.PackageID) = 1
+
+-- select schedule parameters
+SELECT
+ S.ScheduleID,
+ STP.ParameterID,
+ STP.DataTypeID,
+ ISNULL(SP.ParameterValue, STP.DefaultValue) AS ParameterValue
+FROM Schedule AS S
+INNER JOIN ScheduleTaskParameters AS STP ON S.TaskID = STP.TaskID
+LEFT OUTER JOIN ScheduleParameters AS SP ON STP.ParameterID = SP.ParameterID AND SP.ScheduleID = S.ScheduleID
+WHERE
+ S.ScheduleID = @ScheduleID
+ AND dbo.CheckActorPackageRights(@ActorID, S.PackageID) = 1
+
+RETURN
GO
-IF NOT EXISTS (SELECT * FROM [dbo].[ResourceGroups] WHERE [GroupName] = 'Enterprise Storage')
-BEGIN
-INSERT [dbo].[ResourceGroups] ([GroupID], [GroupName], [GroupOrder], [GroupController], [ShowGroup]) VALUES (44, N'EnterpriseStorage', 25, N'WebsitePanel.EnterpriseServer.EnterpriseStorageController', 1)
-END
+ALTER PROCEDURE [dbo].[GetScheduleInternal]
+(
+ @ScheduleID int
+)
+AS
+
+-- select schedule
+SELECT
+ S.ScheduleID,
+ S.TaskID,
+ ST.TaskType,
+ ST.RoleID,
+ S.PackageID,
+ S.ScheduleName,
+ S.ScheduleTypeID,
+ S.Interval,
+ S.FromTime,
+ S.ToTime,
+ S.StartTime,
+ S.LastRun,
+ S.NextRun,
+ S.Enabled,
+ 1 AS StatusID,
+ S.PriorityID,
+ S.HistoriesNumber,
+ S.MaxExecutionTime,
+ S.WeekMonthDay
+FROM Schedule AS S
+INNER JOIN ScheduleTasks AS ST ON S.TaskID = ST.TaskID
+WHERE ScheduleID = @ScheduleID
+RETURN
GO
-IF NOT EXISTS (SELECT * FROM [dbo].[Providers] WHERE [DisplayName] = 'Enterprise Storage Windows 2012')
-BEGIN
-INSERT [dbo].[Providers] ([ProviderId], [GroupId], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES(600, 44, N'EnterpriseStorage2012', N'Enterprise Storage Windows 2012', N'WebsitePanel.Providers.EnterpriseStorage.Windows2012, WebsitePanel.Providers.EnterpriseStorage.Windows2012', N'EnterpriseStorage', 1)
-END
-ELSE
-BEGIN
-UPDATE [dbo].[Providers] SET [DisableAutoDiscovery] = NULL WHERE [DisplayName] = 'Enterprise Storage Windows 2012'
-END
+ALTER PROCEDURE [dbo].[GetSchedules]
+(
+ @ActorID int,
+ @PackageID int,
+ @Recursive bit
+)
+AS
+
+-- check rights
+IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0
+RAISERROR('You are not allowed to access this package', 16, 1)
+
+DECLARE @Schedules TABLE
+(
+ ScheduleID int
+)
+
+INSERT INTO @Schedules (ScheduleID)
+SELECT
+ S.ScheduleID
+FROM Schedule AS S
+INNER JOIN PackagesTree(@PackageID, @Recursive) AS PT ON S.PackageID = PT.PackageID
+ORDER BY S.Enabled DESC, S.NextRun
+
+
+-- select schedules
+SELECT
+ S.ScheduleID,
+ S.TaskID,
+ ST.TaskType,
+ ST.RoleID,
+ S.PackageID,
+ S.ScheduleName,
+ S.ScheduleTypeID,
+ S.Interval,
+ S.FromTime,
+ S.ToTime,
+ S.StartTime,
+ S.LastRun,
+ S.NextRun,
+ S.Enabled,
+ 1 AS StatusID,
+ S.PriorityID,
+ S.MaxExecutionTime,
+ S.WeekMonthDay,
+ ISNULL(0, (SELECT TOP 1 SeverityID FROM AuditLog WHERE ItemID = S.ScheduleID AND SourceName = 'SCHEDULER' ORDER BY StartDate DESC)) AS LastResult,
+
+ U.Username,
+ U.FirstName,
+ U.LastName,
+ U.FullName,
+ U.RoleID,
+ U.Email
+FROM @Schedules AS STEMP
+INNER JOIN Schedule AS S ON STEMP.ScheduleID = S.ScheduleID
+INNER JOIN Packages AS P ON S.PackageID = P.PackageID
+INNER JOIN ScheduleTasks AS ST ON S.TaskID = ST.TaskID
+INNER JOIN UsersDetailed AS U ON P.UserID = U.UserID
+
+-- select schedule parameters
+SELECT
+ S.ScheduleID,
+ STP.ParameterID,
+ STP.DataTypeID,
+ ISNULL(SP.ParameterValue, STP.DefaultValue) AS ParameterValue
+FROM @Schedules AS STEMP
+INNER JOIN Schedule AS S ON STEMP.ScheduleID = S.ScheduleID
+INNER JOIN ScheduleTaskParameters AS STP ON S.TaskID = STP.TaskID
+LEFT OUTER JOIN ScheduleParameters AS SP ON STP.ParameterID = SP.ParameterID AND SP.ScheduleID = S.ScheduleID
+RETURN
GO
+ALTER PROCEDURE [dbo].[GetSchedulesPaged]
+(
+ @ActorID int,
+ @PackageID int,
+ @Recursive bit,
+ @FilterColumn nvarchar(50) = '',
+ @FilterValue nvarchar(50) = '',
+ @SortColumn nvarchar(50),
+ @StartRow int,
+ @MaximumRows int
+)
+AS
+BEGIN
+
+-- check rights
+IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0
+RAISERROR('You are not allowed to access this package', 16, 1)
+
+DECLARE @condition nvarchar(400)
+SET @condition = ' 1 = 1 '
+
+IF @FilterColumn <> '' AND @FilterColumn IS NOT NULL
+AND @FilterValue <> '' AND @FilterValue IS NOT NULL
+SET @condition = @condition + ' AND ' + @FilterColumn + ' LIKE ''' + @FilterValue + ''''
+
+IF @SortColumn IS NULL OR @SortColumn = ''
+SET @SortColumn = 'S.ScheduleName ASC'
+
+DECLARE @sql nvarchar(3500)
+
+set @sql = '
+SELECT COUNT(S.ScheduleID) FROM Schedule AS S
+INNER JOIN PackagesTree(@PackageID, @Recursive) AS PT ON S.PackageID = PT.PackageID
+INNER JOIN Packages AS P ON S.PackageID = P.PackageID
+INNER JOIN UsersDetailed AS U ON P.UserID = U.UserID
+WHERE ' + @condition + '
+
+DECLARE @Schedules AS TABLE
+(
+ ScheduleID int
+);
+
+WITH TempSchedules AS (
+ SELECT ROW_NUMBER() OVER (ORDER BY ' + @SortColumn + ') as Row,
+ S.ScheduleID
+ FROM Schedule AS S
+ INNER JOIN Packages AS P ON S.PackageID = P.PackageID
+ INNER JOIN PackagesTree(@PackageID, @Recursive) AS PT ON S.PackageID = PT.PackageID
+ INNER JOIN UsersDetailed AS U ON P.UserID = U.UserID
+ WHERE ' + @condition + '
+)
+
+INSERT INTO @Schedules
+SELECT ScheduleID FROM TempSchedules
+WHERE TempSchedules.Row BETWEEN @StartRow and @StartRow + @MaximumRows - 1
+
+SELECT
+ S.ScheduleID,
+ S.TaskID,
+ ST.TaskType,
+ ST.RoleID,
+ S.ScheduleName,
+ S.ScheduleTypeID,
+ S.Interval,
+ S.FromTime,
+ S.ToTime,
+ S.StartTime,
+ S.LastRun,
+ S.NextRun,
+ S.Enabled,
+ 1 AS StatusID,
+ S.PriorityID,
+ S.MaxExecutionTime,
+ S.WeekMonthDay,
+ ISNULL(0, (SELECT TOP 1 SeverityID FROM AuditLog WHERE ItemID = S.ScheduleID AND SourceName = ''SCHEDULER'' ORDER BY StartDate DESC)) AS LastResult,
+
+ -- packages
+ P.PackageID,
+ P.PackageName,
+
+ -- user
+ P.UserID,
+ U.Username,
+ U.FirstName,
+ U.LastName,
+ U.FullName,
+ U.RoleID,
+ U.Email
+FROM @Schedules AS STEMP
+INNER JOIN Schedule AS S ON STEMP.ScheduleID = S.ScheduleID
+INNER JOIN ScheduleTasks AS ST ON S.TaskID = ST.TaskID
+INNER JOIN Packages AS P ON S.PackageID = P.PackageID
+INNER JOIN UsersDetailed AS U ON P.UserID = U.UserID'
+
+exec sp_executesql @sql, N'@PackageID int, @StartRow int, @MaximumRows int, @Recursive bit',
+@PackageID, @StartRow, @MaximumRows, @Recursive
+
+END
+RETURN
+GO
+
+ALTER PROCEDURE [dbo].[UpdateSchedule]
+(
+ @ActorID int,
+ @ScheduleID int,
+ @TaskID nvarchar(100),
+ @ScheduleName nvarchar(100),
+ @ScheduleTypeID nvarchar(50),
+ @Interval int,
+ @FromTime datetime,
+ @ToTime datetime,
+ @StartTime datetime,
+ @LastRun datetime,
+ @NextRun datetime,
+ @Enabled bit,
+ @PriorityID nvarchar(50),
+ @HistoriesNumber int,
+ @MaxExecutionTime int,
+ @WeekMonthDay int,
+ @XmlParameters ntext
+)
+AS
+
+-- check rights
+DECLARE @PackageID int
+SELECT @PackageID = PackageID FROM Schedule
+WHERE ScheduleID = @ScheduleID
+
+IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0
+RAISERROR('You are not allowed to access this package', 16, 1)
+
+BEGIN TRAN
+
+UPDATE Schedule
+SET
+ TaskID = @TaskID,
+ ScheduleName = @ScheduleName,
+ ScheduleTypeID = @ScheduleTypeID,
+ Interval = @Interval,
+ FromTime = @FromTime,
+ ToTime = @ToTime,
+ StartTime = @StartTime,
+ LastRun = @LastRun,
+ NextRun = @NextRun,
+ Enabled = @Enabled,
+ PriorityID = @PriorityID,
+ HistoriesNumber = @HistoriesNumber,
+ MaxExecutionTime = @MaxExecutionTime,
+ WeekMonthDay = @WeekMonthDay
+WHERE
+ ScheduleID = @ScheduleID
+
+DECLARE @idoc int
+--Create an internal representation of the XML document.
+EXEC sp_xml_preparedocument @idoc OUTPUT, @XmlParameters
+
+-- Execute a SELECT statement that uses the OPENXML rowset provider.
+DELETE FROM ScheduleParameters
+WHERE ScheduleID = @ScheduleID
+
+INSERT INTO ScheduleParameters
+(
+ ScheduleID,
+ ParameterID,
+ ParameterValue
+)
+SELECT
+ @ScheduleID,
+ ParameterID,
+ ParameterValue
+FROM OPENXML(@idoc, '/parameters/parameter',1) WITH
+(
+ ParameterID nvarchar(50) '@id',
+ ParameterValue nvarchar(3000) '@value'
+) as PV
+
+-- remove document
+exec sp_xml_removedocument @idoc
+
+COMMIT TRAN
+RETURN
+GO
+
+UPDATE ScheduleTasks SET TaskType = RTRIM(TaskType) + '.Code'
+WHERE SUBSTRING(RTRIM(TaskType), LEN(RTRIM(TaskType)) - 3, 4) <> 'Code'
+GO
+
+IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE type = 'P' AND name = 'GetRunningSchedules')
+DROP PROCEDURE GetRunningSchedules
+GO
+
+IF EXISTS (SELECT * FROM SYS.TABLES WHERE name = 'BackgroundTaskStack')
+DROP TABLE BackgroundTaskStack
+GO
+
+IF EXISTS (SELECT * FROM SYS.TABLES WHERE name = 'BackgroundTaskLogs')
+DROP TABLE BackgroundTaskLogs
+GO
+
+IF EXISTS (SELECT * FROM SYS.TABLES WHERE name = 'BackgroundTaskParameters')
+DROP TABLE BackgroundTaskParameters
+GO
+
+IF EXISTS (SELECT * FROM SYS.TABLES WHERE name = 'BackgroundTasks')
+DROP TABLE BackgroundTasks
+GO
+
+CREATE TABLE BackgroundTasks
+(
+ ID INT IDENTITY(1,1) NOT NULL PRIMARY KEY,
+ Guid UNIQUEIDENTIFIER NOT NULL,
+ TaskID NVARCHAR(255),
+ ScheduleID INT NOT NULL,
+ PackageID INT NOT NULL,
+ UserID INT NOT NULL,
+ EffectiveUserID INT NOT NULL,
+ TaskName NVARCHAR(255),
+ ItemID INT,
+ ItemName NVARCHAR(255),
+ StartDate DATETIME NOT NULL,
+ FinishDate DATETIME,
+ IndicatorCurrent INT NOT NULL,
+ IndicatorMaximum INT NOT NULL,
+ MaximumExecutionTime INT NOT NULL,
+ Source NVARCHAR(MAX),
+ Severity INT NOT NULL,
+ Completed BIT,
+ NotifyOnComplete BIT,
+ Status INT NOT NULL
+)
+GO
+
+CREATE TABLE BackgroundTaskParameters
+(
+ ParameterID INT IDENTITY(1,1) NOT NULL PRIMARY KEY,
+ TaskID INT NOT NULL,
+ Name NVARCHAR(255),
+ SerializerValue NTEXT,
+ TypeName NVARCHAR(255),
+ FOREIGN KEY (TaskID) REFERENCES BackgroundTasks (ID)
+)
+GO
+
+CREATE TABLE BackgroundTaskLogs
+(
+ LogID INT IDENTITY(1,1) NOT NULL PRIMARY KEY,
+ TaskID INT NOT NULL,
+ Date DATETIME,
+ ExceptionStackTrace NTEXT,
+ InnerTaskStart INT,
+ Severity INT,
+ Text NTEXT,
+ TextIdent INT,
+ XmlParameters NTEXT,
+ FOREIGN KEY (TaskID) REFERENCES BackgroundTasks (ID)
+)
+GO
+
+CREATE TABLE BackgroundTaskStack
+(
+ TaskStackID INT IDENTITY(1,1) NOT NULL PRIMARY KEY,
+ TaskID INT NOT NULL,
+ FOREIGN KEY (TaskID) REFERENCES BackgroundTasks (ID)
+)
+GO
+
+IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE type = 'P' AND name = 'AddBackgroundTask')
+DROP PROCEDURE AddBackgroundTask
+GO
+
+CREATE PROCEDURE [dbo].[AddBackgroundTask]
+(
+ @BackgroundTaskID INT OUTPUT,
+ @Guid UNIQUEIDENTIFIER,
+ @TaskID NVARCHAR(255),
+ @ScheduleID INT,
+ @PackageID INT,
+ @UserID INT,
+ @EffectiveUserID INT,
+ @TaskName NVARCHAR(255),
+ @ItemID INT,
+ @ItemName NVARCHAR(255),
+ @StartDate DATETIME,
+ @IndicatorCurrent INT,
+ @IndicatorMaximum INT,
+ @MaximumExecutionTime INT,
+ @Source NVARCHAR(MAX),
+ @Severity INT,
+ @Completed BIT,
+ @NotifyOnComplete BIT,
+ @Status INT
+)
+AS
+
+INSERT INTO BackgroundTasks
+(
+ Guid,
+ TaskID,
+ ScheduleID,
+ PackageID,
+ UserID,
+ EffectiveUserID,
+ TaskName,
+ ItemID,
+ ItemName,
+ StartDate,
+ IndicatorCurrent,
+ IndicatorMaximum,
+ MaximumExecutionTime,
+ Source,
+ Severity,
+ Completed,
+ NotifyOnComplete,
+ Status
+)
+VALUES
+(
+ @Guid,
+ @TaskID,
+ @ScheduleID,
+ @PackageID,
+ @UserID,
+ @EffectiveUserID,
+ @TaskName,
+ @ItemID,
+ @ItemName,
+ @StartDate,
+ @IndicatorCurrent,
+ @IndicatorMaximum,
+ @MaximumExecutionTime,
+ @Source,
+ @Severity,
+ @Completed,
+ @NotifyOnComplete,
+ @Status
+)
+
+SET @BackgroundTaskID = SCOPE_IDENTITY()
+
+RETURN
+GO
+
+IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE type = 'P' AND name = 'GetBackgroundTask')
+DROP PROCEDURE GetBackgroundTask
+GO
+
+CREATE PROCEDURE [dbo].[GetBackgroundTask]
+(
+ @TaskID NVARCHAR(255)
+)
+AS
+
+SELECT TOP 1
+ T.ID,
+ T.Guid,
+ T.TaskID,
+ T.ScheduleID,
+ T.PackageID,
+ T.UserID,
+ T.EffectiveUserID,
+ T.TaskName,
+ T.ItemID,
+ T.ItemName,
+ T.StartDate,
+ T.FinishDate,
+ T.IndicatorCurrent,
+ T.IndicatorMaximum,
+ T.MaximumExecutionTime,
+ T.Source,
+ T.Severity,
+ T.Completed,
+ T.NotifyOnComplete,
+ T.Status
+FROM BackgroundTasks AS T
+INNER JOIN BackgroundTaskStack AS TS
+ ON TS.TaskId = T.ID
+WHERE T.TaskID = @TaskID
+GO
+
+IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE type = 'P' AND name = 'GetBackgroundTasks')
+DROP PROCEDURE GetBackgroundTasks
+GO
+
+CREATE PROCEDURE [dbo].[GetBackgroundTasks]
+(
+ @ActorID INT
+)
+AS
+
+ with GetChildUsersId(id) as (
+ select UserID
+ from Users
+ where UserID = @ActorID
+ union all
+ select C.UserId
+ from GetChildUsersId P
+ inner join Users C on P.id = C.OwnerID
+)
+
+SELECT
+ T.ID,
+ T.Guid,
+ T.TaskID,
+ T.ScheduleId,
+ T.PackageId,
+ T.UserId,
+ T.EffectiveUserId,
+ T.TaskName,
+ T.ItemId,
+ T.ItemName,
+ T.StartDate,
+ T.FinishDate,
+ T.IndicatorCurrent,
+ T.IndicatorMaximum,
+ T.MaximumExecutionTime,
+ T.Source,
+ T.Severity,
+ T.Completed,
+ T.NotifyOnComplete,
+ T.Status
+FROM BackgroundTasks AS T
+INNER JOIN (SELECT T.Guid, MIN(T.StartDate) AS Date
+ FROM BackgroundTasks AS T
+ INNER JOIN BackgroundTaskStack AS TS
+ ON TS.TaskId = T.ID
+ WHERE T.UserID in (select id from GetChildUsersId)
+ GROUP BY T.Guid) AS TT ON TT.Guid = T.Guid AND TT.Date = T.StartDate
+GO
+
+IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE type = 'P' AND name = 'GetThreadBackgroundTasks')
+DROP PROCEDURE GetThreadBackgroundTasks
+GO
+
+CREATE PROCEDURE [dbo].GetThreadBackgroundTasks
+(
+ @Guid UNIQUEIDENTIFIER
+)
+AS
+
+SELECT
+ T.ID,
+ T.Guid,
+ T.TaskID,
+ T.ScheduleId,
+ T.PackageId,
+ T.UserId,
+ T.EffectiveUserId,
+ T.TaskName,
+ T.ItemId,
+ T.ItemName,
+ T.StartDate,
+ T.FinishDate,
+ T.IndicatorCurrent,
+ T.IndicatorMaximum,
+ T.MaximumExecutionTime,
+ T.Source,
+ T.Severity,
+ T.Completed,
+ T.NotifyOnComplete,
+ T.Status
+FROM BackgroundTasks AS T
+INNER JOIN BackgroundTaskStack AS TS
+ ON TS.TaskId = T.ID
+WHERE T.Guid = @Guid
+GO
+
+IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE type = 'P' AND name = 'GetBackgroundTopTask')
+DROP PROCEDURE GetBackgroundTopTask
+GO
+
+CREATE PROCEDURE [dbo].[GetBackgroundTopTask]
+(
+ @Guid UNIQUEIDENTIFIER
+)
+AS
+
+SELECT TOP 1
+ T.ID,
+ T.Guid,
+ T.TaskID,
+ T.ScheduleId,
+ T.PackageId,
+ T.UserId,
+ T.EffectiveUserId,
+ T.TaskName,
+ T.ItemId,
+ T.ItemName,
+ T.StartDate,
+ T.FinishDate,
+ T.IndicatorCurrent,
+ T.IndicatorMaximum,
+ T.MaximumExecutionTime,
+ T.Source,
+ T.Severity,
+ T.Completed,
+ T.NotifyOnComplete,
+ T.Status
+FROM BackgroundTasks AS T
+INNER JOIN BackgroundTaskStack AS TS
+ ON TS.TaskId = T.ID
+WHERE T.Guid = @Guid
+ORDER BY T.StartDate ASC
+GO
+
+IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE type = 'P' AND name = 'AddBackgroundTaskLog')
+DROP PROCEDURE AddBackgroundTaskLog
+GO
+
+CREATE PROCEDURE [dbo].[AddBackgroundTaskLog]
+(
+ @TaskID INT,
+ @Date DATETIME,
+ @ExceptionStackTrace NTEXT,
+ @InnerTaskStart INT,
+ @Severity INT,
+ @Text NTEXT,
+ @TextIdent INT,
+ @XmlParameters NTEXT
+)
+AS
+
+INSERT INTO BackgroundTaskLogs
+(
+ TaskID,
+ Date,
+ ExceptionStackTrace,
+ InnerTaskStart,
+ Severity,
+ Text,
+ TextIdent,
+ XmlParameters
+)
+VALUES
+(
+ @TaskID,
+ @Date,
+ @ExceptionStackTrace,
+ @InnerTaskStart,
+ @Severity,
+ @Text,
+ @TextIdent,
+ @XmlParameters
+)
+GO
+
+IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE type = 'P' AND name = 'GetBackgroundTaskLogs')
+DROP PROCEDURE GetBackgroundTaskLogs
+GO
+
+CREATE PROCEDURE [dbo].[GetBackgroundTaskLogs]
+(
+ @TaskID INT,
+ @StartLogTime DATETIME
+)
+AS
+
+SELECT
+ L.LogID,
+ L.TaskID,
+ L.Date,
+ L.ExceptionStackTrace,
+ L.InnerTaskStart,
+ L.Severity,
+ L.Text,
+ L.XmlParameters
+FROM BackgroundTaskLogs AS L
+WHERE L.TaskID = @TaskID AND L.Date >= @StartLogTime
+ORDER BY L.Date
+GO
+
+IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE type = 'P' AND name = 'UpdateBackgroundTask')
+DROP PROCEDURE UpdateBackgroundTask
+GO
+
+CREATE PROCEDURE [dbo].[UpdateBackgroundTask]
+(
+ @Guid UNIQUEIDENTIFIER,
+ @TaskID INT,
+ @ScheduleID INT,
+ @PackageID INT,
+ @TaskName NVARCHAR(255),
+ @ItemID INT,
+ @ItemName NVARCHAR(255),
+ @FinishDate DATETIME,
+ @IndicatorCurrent INT,
+ @IndicatorMaximum INT,
+ @MaximumExecutionTime INT,
+ @Source NVARCHAR(MAX),
+ @Severity INT,
+ @Completed BIT,
+ @NotifyOnComplete BIT,
+ @Status INT
+)
+AS
+
+UPDATE BackgroundTasks
+SET
+ Guid = @Guid,
+ ScheduleID = @ScheduleID,
+ PackageID = @PackageID,
+ TaskName = @TaskName,
+ ItemID = @ItemID,
+ ItemName = @ItemName,
+ FinishDate = @FinishDate,
+ IndicatorCurrent = @IndicatorCurrent,
+ IndicatorMaximum = @IndicatorMaximum,
+ MaximumExecutionTime = @MaximumExecutionTime,
+ Source = @Source,
+ Severity = @Severity,
+ Completed = @Completed,
+ NotifyOnComplete = @NotifyOnComplete,
+ Status = @Status
+WHERE ID = @TaskID
+GO
+
+IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE type = 'P' AND name = 'GetBackgroundTaskParams')
+DROP PROCEDURE GetBackgroundTaskParams
+GO
+
+CREATE PROCEDURE [dbo].[GetBackgroundTaskParams]
+(
+ @TaskID INT
+)
+AS
+
+SELECT
+ P.ParameterID,
+ P.TaskID,
+ P.Name,
+ P.SerializerValue,
+ P.TypeName
+FROM BackgroundTaskParameters AS P
+WHERE P.TaskID = @TaskID
+GO
+
+IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE type = 'P' AND name = 'AddBackgroundTaskParam')
+DROP PROCEDURE AddBackgroundTaskParam
+GO
+
+CREATE PROCEDURE [dbo].[AddBackgroundTaskParam]
+(
+ @TaskID INT,
+ @Name NVARCHAR(255),
+ @Value NTEXT,
+ @TypeName NVARCHAR(255)
+)
+AS
+
+INSERT INTO BackgroundTaskParameters
+(
+ TaskID,
+ Name,
+ SerializerValue,
+ TypeName
+)
+VALUES
+(
+ @TaskID,
+ @Name,
+ @Value,
+ @TypeName
+)
+GO
+
+IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE type = 'P' AND name = 'DeleteBackgroundTaskParams')
+DROP PROCEDURE DeleteBackgroundTaskParams
+GO
+
+CREATE PROCEDURE [dbo].[DeleteBackgroundTaskParams]
+(
+ @TaskID INT
+)
+AS
+
+DELETE FROM BackgroundTaskParameters
+WHERE TaskID = @TaskID
+GO
+
+IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE type = 'P' AND name = 'AddBackgroundTaskStack')
+DROP PROCEDURE AddBackgroundTaskStack
+GO
+
+CREATE PROCEDURE [dbo].[AddBackgroundTaskStack]
+(
+ @TaskID INT
+)
+AS
+
+INSERT INTO BackgroundTaskStack
+(
+ TaskID
+)
+VALUES
+(
+ @TaskID
+)
+GO
+
+IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE type = 'P' AND name = 'DeleteBackgroundTasks')
+DROP PROCEDURE DeleteBackgroundTasks
+GO
+
+CREATE PROCEDURE [dbo].[DeleteBackgroundTasks]
+(
+ @Guid UNIQUEIDENTIFIER
+)
+AS
+
+DELETE FROM BackgroundTaskStack
+WHERE TaskID IN (SELECT ID FROM BackgroundTasks WHERE Guid = @Guid)
+
+DELETE FROM BackgroundTaskLogs
+WHERE TaskID IN (SELECT ID FROM BackgroundTasks WHERE Guid = @Guid)
+
+DELETE FROM BackgroundTaskParameters
+WHERE TaskID IN (SELECT ID FROM BackgroundTasks WHERE Guid = @Guid)
+
+DELETE FROM BackgroundTasks
+WHERE ID IN (SELECT ID FROM BackgroundTasks WHERE Guid = @Guid)
+GO
+
+IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE type = 'P' AND name = 'DeleteBackgroundTask')
+DROP PROCEDURE DeleteBackgroundTask
+GO
+
+CREATE PROCEDURE [dbo].[DeleteBackgroundTask]
+(
+ @ID INT
+)
+AS
+
+DELETE FROM BackgroundTaskStack
+WHERE TaskID = @ID
+
+DELETE FROM BackgroundTaskLogs
+WHERE TaskID = @ID
+
+DELETE FROM BackgroundTaskParameters
+WHERE TaskID = @ID
+
+DELETE FROM BackgroundTasks
+WHERE ID = @ID
+GO
+
+IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE type = 'P' AND name = 'GetProcessBackgroundTasks')
+DROP PROCEDURE GetProcessBackgroundTasks
+GO
+
+CREATE PROCEDURE [dbo].[GetProcessBackgroundTasks]
+(
+ @Status INT
+)
+AS
+
+SELECT
+ T.ID,
+ T.TaskID,
+ T.ScheduleId,
+ T.PackageId,
+ T.UserId,
+ T.EffectiveUserId,
+ T.TaskName,
+ T.ItemId,
+ T.ItemName,
+ T.StartDate,
+ T.FinishDate,
+ T.IndicatorCurrent,
+ T.IndicatorMaximum,
+ T.MaximumExecutionTime,
+ T.Source,
+ T.Severity,
+ T.Completed,
+ T.NotifyOnComplete,
+ T.Status
+FROM BackgroundTasks AS T
+WHERE T.Completed = 0 AND T.Status = @Status
+GO
+
+IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE type = 'P' AND name = 'GetScheduleBackgroundTasks')
+DROP PROCEDURE GetScheduleBackgroundTasks
+GO
+
+CREATE PROCEDURE [dbo].[GetScheduleBackgroundTasks]
+(
+ @ScheduleID INT
+)
+AS
+
+SELECT
+ T.ID,
+ T.Guid,
+ T.TaskID,
+ T.ScheduleId,
+ T.PackageId,
+ T.UserId,
+ T.EffectiveUserId,
+ T.TaskName,
+ T.ItemId,
+ T.ItemName,
+ T.StartDate,
+ T.FinishDate,
+ T.IndicatorCurrent,
+ T.IndicatorMaximum,
+ T.MaximumExecutionTime,
+ T.Source,
+ T.Severity,
+ T.Completed,
+ T.NotifyOnComplete,
+ T.Status
+FROM BackgroundTasks AS T
+WHERE T.Guid = (
+ SELECT Guid FROM BackgroundTasks
+ WHERE ScheduleID = @ScheduleID
+ AND Completed = 0 AND Status IN (1, 3))
+GO
\ No newline at end of file
diff --git a/WebsitePanel/Sources/Tools/WebsitePanel.Import.Enterprise/WebsitePanel.Import.Enterprise.csproj b/WebsitePanel/Sources/Tools/WebsitePanel.Import.Enterprise/WebsitePanel.Import.Enterprise.csproj
index 46b74405..32738387 100644
--- a/WebsitePanel/Sources/Tools/WebsitePanel.Import.Enterprise/WebsitePanel.Import.Enterprise.csproj
+++ b/WebsitePanel/Sources/Tools/WebsitePanel.Import.Enterprise/WebsitePanel.Import.Enterprise.csproj
@@ -74,6 +74,9 @@
..\..\..\Bin\WebsitePanel.EnterpriseServer.Client.dll
+
+ ..\..\..\Bin\WebsitePanel.EnterpriseServer.Code.dll
+
..\..\..\Bin\WebsitePanel.Providers.Base.dll
diff --git a/WebsitePanel/Sources/VersionInfo.cs b/WebsitePanel/Sources/VersionInfo.cs
index 8ca7c4b0..aa59da61 100644
--- a/WebsitePanel/Sources/VersionInfo.cs
+++ b/WebsitePanel/Sources/VersionInfo.cs
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
//
// 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.
diff --git a/WebsitePanel/Sources/VersionInfo.vb b/WebsitePanel/Sources/VersionInfo.vb
index 556fbffa..ca84ccc9 100644
--- a/WebsitePanel/Sources/VersionInfo.vb
+++ b/WebsitePanel/Sources/VersionInfo.vb
@@ -1,7 +1,7 @@
'------------------------------------------------------------------------------
'
' 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
-
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Base/Tasks/BackgroundTask.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Base/Tasks/BackgroundTask.cs
index 8ea92110..bfe596f1 100644
--- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Base/Tasks/BackgroundTask.cs
+++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Base/Tasks/BackgroundTask.cs
@@ -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 logRecords = new List();
- private List lastLogRecords = new List();
- private BackgroundTaskLogRecord lastLogRecord;
- private Hashtable parameters = new Hashtable();
- private int indicatorMaximum;
- private int indicatorCurrent;
- private bool completed;
- private bool notifyOnComplete;
- private Thread taskThread;
+ #region Fields
- public System.DateTime StartDate
+ public List Params = new List();
+
+ public List Logs = new List();
+
+ #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 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 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 LogRecords
- {
- get { return this.logRecords; }
- set { this.logRecords = value; }
- }
-
- public List LastLogRecords
- {
- get { return this.lastLogRecords; }
- }
-
- public string ItemName
- {
- get { return this.itemName; }
- set { this.itemName = value; }
- }
-
- public BackgroundTaskLogRecord LastLogRecord
- {
- get { return this.lastLogRecord; }
- set { this.lastLogRecord = value; }
- }
-
- public string TaskId
- {
- get { return this.taskId; }
- set { this.taskId = value; }
- }
-
- public int UserId
- {
- get { return this.userId; }
- set { this.userId = value; }
- }
-
- [XmlIgnore]
- public Hashtable Parameters
- {
- get { return this.parameters; }
- }
-
- public int IndicatorMaximum
- {
- get { return this.indicatorMaximum; }
- set { this.indicatorMaximum = value; }
- }
-
- public int IndicatorCurrent
- {
- get { return this.indicatorCurrent; }
- set { this.indicatorCurrent = value; }
- }
-
- public bool Completed
- {
- get { return this.completed; }
- set { this.completed = value; }
- }
-
- public bool NotifyOnComplete
- {
- get { return this.notifyOnComplete; }
- set { this.notifyOnComplete = value; }
- }
-
- public int EffectiveUserId
- {
- get { return this.effectiveUserId; }
- set { this.effectiveUserId = value; }
- }
-
- [XmlIgnore]
- public System.Threading.Thread TaskThread
- {
- get { return this.taskThread; }
- set { this.taskThread = value; }
- }
-
- public int ScheduleId
- {
- get { return this.scheduleId; }
- set { this.scheduleId = value; }
- }
-
- public int MaximumExecutionTime
- {
- get { return this.maximumExecutionTime; }
- set { this.maximumExecutionTime = value; }
- }
+ #endregion
}
}
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Base/Tasks/BackgroundTaskLogRecord.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Base/Tasks/BackgroundTaskLogRecord.cs
index d6ef3ab4..afccc7d8 100644
--- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Base/Tasks/BackgroundTaskLogRecord.cs
+++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Base/Tasks/BackgroundTaskLogRecord.cs
@@ -34,54 +34,54 @@ namespace WebsitePanel.EnterpriseServer
{
public class BackgroundTaskLogRecord
{
- private DateTime date = DateTime.Now;
- private string text;
- private int severity; /* 0 - Info, 1 - Warning, 2 - Error */
- private string[] textParameters;
- private int textIdent = 0;
- private bool innerTaskStart;
- private string exceptionStackTrace;
+ #region Properties
- public System.DateTime Date
+ public int LogId { get; set; }
+
+ public int TaskId { get; set; }
+
+ public DateTime Date { get; set; }
+
+ public String ExceptionStackTrace { get; set; }
+
+ public bool InnerTaskStart { get; set; }
+
+ public int Severity { get; set; }
+
+ public String Text { get; set; }
+
+ public int TextIdent { get; set; }
+
+ public string[] TextParameters { get; set; }
+
+ public string XmlParameters { get; set; }
+
+ #endregion
+
+ #region Constructors
+
+ public BackgroundTaskLogRecord()
{
- get { return this.date; }
- set { this.date = value; }
+ Date = DateTime.Now;
}
- public string Text
+ public BackgroundTaskLogRecord(int taskId, int textIdent, bool innerTaskStart, String text, string[] textParameters)
+ : this()
{
- get { return this.text; }
- set { this.text = value; }
+ TaskId = taskId;
+ TextIdent = textIdent;
+ Text = text;
+ InnerTaskStart = innerTaskStart;
+ TextParameters = textParameters;
}
- public int Severity
+ public BackgroundTaskLogRecord(int taskId, int textIdent, bool innerTaskStart, String text,
+ String exceptionStackTrace, string[] textParameters)
+ : this(taskId, textIdent, innerTaskStart, text, textParameters)
{
- get { return this.severity; }
- set { this.severity = value; }
+ ExceptionStackTrace = exceptionStackTrace;
}
- public string[] TextParameters
- {
- get { return this.textParameters; }
- set { this.textParameters = value; }
- }
-
- public int TextIdent
- {
- get { return this.textIdent; }
- set { this.textIdent = value; }
- }
-
- public bool InnerTaskStart
- {
- get { return this.innerTaskStart; }
- set { this.innerTaskStart = value; }
- }
-
- public string ExceptionStackTrace
- {
- get { return this.exceptionStackTrace; }
- set { this.exceptionStackTrace = value; }
- }
+ #endregion
}
}
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Base/Tasks/BackgroundTaskStatus.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Base/Tasks/BackgroundTaskStatus.cs
new file mode 100644
index 00000000..74747641
--- /dev/null
+++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Base/Tasks/BackgroundTaskStatus.cs
@@ -0,0 +1,10 @@
+namespace WebsitePanel.EnterpriseServer
+{
+ public enum BackgroundTaskStatus
+ {
+ Run = 1,
+ Abort = 2,
+ Starting = 3,
+ Stopping = 4
+ }
+}
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Base/WebsitePanel.EnterpriseServer.Base.csproj b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Base/WebsitePanel.EnterpriseServer.Base.csproj
index 2168e6e3..dde357fa 100644
--- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Base/WebsitePanel.EnterpriseServer.Base.csproj
+++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Base/WebsitePanel.EnterpriseServer.Base.csproj
@@ -156,6 +156,7 @@
+
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Comments/CommentsController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Comments/CommentsController.cs
similarity index 100%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Comments/CommentsController.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Comments/CommentsController.cs
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Common/ConfigSettings.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Common/ConfigSettings.cs
similarity index 100%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Common/ConfigSettings.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Common/ConfigSettings.cs
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Common/CryptoUtils.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Common/CryptoUtils.cs
similarity index 100%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Common/CryptoUtils.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Common/CryptoUtils.cs
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Common/EnterpriseServerIdentity.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Common/EnterpriseServerIdentity.cs
similarity index 100%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Common/EnterpriseServerIdentity.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Common/EnterpriseServerIdentity.cs
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Common/EnterpriseServerPrincipal.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Common/EnterpriseServerPrincipal.cs
similarity index 100%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Common/EnterpriseServerPrincipal.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Common/EnterpriseServerPrincipal.cs
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Common/FileUtils.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Common/FileUtils.cs
similarity index 100%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Common/FileUtils.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Common/FileUtils.cs
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Common/IPAddress.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Common/IPAddress.cs
similarity index 100%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Common/IPAddress.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Common/IPAddress.cs
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Common/Int128.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Common/Int128.cs
similarity index 100%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Common/Int128.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Common/Int128.cs
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Common/MailHelper.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Common/MailHelper.cs
similarity index 100%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Common/MailHelper.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Common/MailHelper.cs
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Common/ObjectUtils.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Common/ObjectUtils.cs
new file mode 100644
index 00000000..4359ca98
--- /dev/null
+++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Common/ObjectUtils.cs
@@ -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 description for ObjectUtils.
+ ///
+ public class ObjectUtils
+ {
+ public static DT ConvertObject(ST so)
+ {
+ Dictionary sProps = GetTypePropertiesHash(typeof(ST));
+ Dictionary 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(List list, DataSet ds)
+ {
+ if (ds.Tables.Count == 0)
+ return;
+
+ FillCollectionFromDataView(list, ds.Tables[0].DefaultView);
+ }
+
+ public static void FillCollectionFromDataView(List 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 CreateListFromDataReader(IDataReader reader)
+ {
+ List list = new List();
+ FillCollectionFromDataReader(list, reader);
+ return list;
+ }
+
+ public static List CreateListFromDataSet(DataSet ds)
+ {
+ List list = new List();
+ FillCollectionFromDataSet(list, ds);
+ return list;
+ }
+
+ public static void FillCollectionFromDataReader(List 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(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(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 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 GetTypePropertiesHash(Type type)
+ {
+ Dictionary hash = new Dictionary();
+ 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
+
+ ///
+ /// This function is used to determine whether IDataReader contains a Column.
+ ///
+ /// Name of the column.
+ /// The schema that decribes result-set contains.
+ /// True, when required column exists in the . Otherwise, false.
+ ///
+ /// The followin example shows how to look for the "Role" column in the .
+ ///
+ /// IDataReader reader = ....
+ /// if (!IsColumnExists("Role", reader.GetSchemaTable())
+ /// {
+ /// continue;
+ /// }
+ ///
+ /// object roleValue = reader["Role"];
+ ///
+ ///
+ 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
+ }
+}
\ No newline at end of file
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Common/SecurityContext.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Common/SecurityContext.cs
similarity index 100%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Common/SecurityContext.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Common/SecurityContext.cs
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Common/ServiceProviderProxy.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Common/ServiceProviderProxy.cs
similarity index 100%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Common/ServiceProviderProxy.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Common/ServiceProviderProxy.cs
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Common/ServiceUsernameTokenManager.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Common/ServiceUsernameTokenManager.cs
similarity index 100%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Common/ServiceUsernameTokenManager.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Common/ServiceUsernameTokenManager.cs
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Common/UsernameAssertion.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Common/UsernameAssertion.cs
similarity index 100%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Common/UsernameAssertion.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Common/UsernameAssertion.cs
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Common/Utils.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Common/Utils.cs
similarity index 100%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Common/Utils.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Common/Utils.cs
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Data/DataProvider.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Data/DataProvider.cs
similarity index 82%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Data/DataProvider.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Data/DataProvider.cs
index 0aaf98a5..ef0f1995 100644
--- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Data/DataProvider.cs
+++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Data/DataProvider.cs
@@ -43,9 +43,9 @@ namespace WebsitePanel.EnterpriseServer
///
public static class DataProvider
{
-
+
static string EnterpriseServerRegistryPath = "SOFTWARE\\WebsitePanel\\EnterpriseServer";
-
+
private static string ConnectionString
{
get
@@ -77,35 +77,35 @@ namespace WebsitePanel.EnterpriseServer
{
return "";
}
- }
+ }
- #region System Settings
+ #region System Settings
- public static IDataReader GetSystemSettings(string settingsName)
- {
- return SqlHelper.ExecuteReader(
- ConnectionString,
- CommandType.StoredProcedure,
- "GetSystemSettings",
- new SqlParameter("@SettingsName", settingsName)
- );
- }
+ public static IDataReader GetSystemSettings(string settingsName)
+ {
+ return SqlHelper.ExecuteReader(
+ ConnectionString,
+ CommandType.StoredProcedure,
+ "GetSystemSettings",
+ new SqlParameter("@SettingsName", settingsName)
+ );
+ }
- public static void SetSystemSettings(string settingsName, string xml)
- {
- SqlHelper.ExecuteNonQuery(
- ConnectionString,
- CommandType.StoredProcedure,
- "SetSystemSettings",
- new SqlParameter("@SettingsName", settingsName),
- new SqlParameter("@Xml", xml)
- );
- }
+ public static void SetSystemSettings(string settingsName, string xml)
+ {
+ SqlHelper.ExecuteNonQuery(
+ ConnectionString,
+ CommandType.StoredProcedure,
+ "SetSystemSettings",
+ new SqlParameter("@SettingsName", settingsName),
+ new SqlParameter("@Xml", xml)
+ );
+ }
- #endregion
+ #endregion
- #region Users
- public static bool CheckUserExists(string username)
+ #region Users
+ public static bool CheckUserExists(string username)
{
SqlParameter prmExists = new SqlParameter("@Exists", SqlDbType.Bit);
prmExists.Direction = ParameterDirection.Output;
@@ -1296,11 +1296,11 @@ namespace WebsitePanel.EnterpriseServer
public static IDataReader GetServiceItemTypes()
{
- return SqlHelper.ExecuteReader (
- ConnectionString,
- CommandType.StoredProcedure,
- "GetServiceItemTypes"
- );
+ return SqlHelper.ExecuteReader(
+ ConnectionString,
+ CommandType.StoredProcedure,
+ "GetServiceItemTypes"
+ );
}
#endregion
@@ -1836,6 +1836,179 @@ namespace WebsitePanel.EnterpriseServer
#endregion
#region Scheduler
+
+ public static IDataReader GetBackgroundTask(string taskId)
+ {
+ return SqlHelper.ExecuteReader(ConnectionString, CommandType.StoredProcedure,
+ ObjectQualifier + "GetBackgroundTask",
+ new SqlParameter("@taskId", taskId));
+ }
+
+ public static IDataReader GetScheduleBackgroundTasks(int scheduleId)
+ {
+ return SqlHelper.ExecuteReader(ConnectionString, CommandType.StoredProcedure,
+ ObjectQualifier + "GetScheduleBackgroundTasks",
+ new SqlParameter("@scheduleId", scheduleId));
+ }
+
+ public static IDataReader GetBackgroundTasks(int actorId)
+ {
+ return SqlHelper.ExecuteReader(ConnectionString, CommandType.StoredProcedure,
+ ObjectQualifier + "GetBackgroundTasks",
+ new SqlParameter("@actorId", actorId));
+ }
+
+ public static IDataReader GetBackgroundTasks(Guid guid)
+ {
+ return SqlHelper.ExecuteReader(ConnectionString, CommandType.StoredProcedure,
+ ObjectQualifier + "GetThreadBackgroundTasks",
+ new SqlParameter("@guid", guid));
+ }
+
+ public static IDataReader GetProcessBackgroundTasks(BackgroundTaskStatus status)
+ {
+ return SqlHelper.ExecuteReader(ConnectionString, CommandType.StoredProcedure,
+ ObjectQualifier + "GetProcessBackgroundTasks",
+ new SqlParameter("@status", (int)status));
+ }
+
+ public static IDataReader GetBackgroundTopTask(Guid guid)
+ {
+ return SqlHelper.ExecuteReader(ConnectionString, CommandType.StoredProcedure,
+ ObjectQualifier + "GetBackgroundTopTask",
+ new SqlParameter("@guid", guid));
+ }
+
+ public static int AddBackgroundTask(Guid guid, string taskId, int scheduleId, int packageId, int userId,
+ int effectiveUserId, string taskName, int itemId, string itemName, DateTime startDate,
+ int indicatorCurrent, int indicatorMaximum, int maximumExecutionTime, string source,
+ int severity, bool completed, bool notifyOnComplete, BackgroundTaskStatus status)
+ {
+ SqlParameter prmId = new SqlParameter("@BackgroundTaskID", SqlDbType.Int);
+ prmId.Direction = ParameterDirection.Output;
+
+ SqlHelper.ExecuteNonQuery(ConnectionString, CommandType.StoredProcedure,
+ ObjectQualifier + "AddBackgroundTask",
+ prmId,
+ new SqlParameter("@guid", guid),
+ new SqlParameter("@taskId", taskId),
+ new SqlParameter("@scheduleId", scheduleId),
+ new SqlParameter("@packageId", packageId),
+ new SqlParameter("@userId", userId),
+ new SqlParameter("@effectiveUserId", effectiveUserId),
+ new SqlParameter("@taskName", taskName),
+ new SqlParameter("@itemId", itemId),
+ new SqlParameter("@itemName", itemName),
+ new SqlParameter("@startDate", startDate),
+ new SqlParameter("@indicatorCurrent", indicatorCurrent),
+ new SqlParameter("@indicatorMaximum", indicatorMaximum),
+ new SqlParameter("@maximumExecutionTime", maximumExecutionTime),
+ new SqlParameter("@source", source),
+ new SqlParameter("@severity", severity),
+ new SqlParameter("@completed", completed),
+ new SqlParameter("@notifyOnComplete", notifyOnComplete),
+ new SqlParameter("@status", status));
+
+ // read identity
+ return Convert.ToInt32(prmId.Value);
+ }
+
+ public static void AddBackgroundTaskLog(int taskId, DateTime date, string exceptionStackTrace,
+ bool innerTaskStart, int severity, string text, int textIdent, string xmlParameters)
+ {
+ SqlHelper.ExecuteNonQuery(ConnectionString, CommandType.StoredProcedure,
+ ObjectQualifier + "AddBackgroundTaskLog",
+ new SqlParameter("@taskId", taskId),
+ new SqlParameter("@date", date),
+ new SqlParameter("@exceptionStackTrace", exceptionStackTrace),
+ new SqlParameter("@innerTaskStart", innerTaskStart),
+ new SqlParameter("@severity", severity),
+ new SqlParameter("@text", text),
+ new SqlParameter("@textIdent", textIdent),
+ new SqlParameter("@xmlParameters", xmlParameters));
+ }
+
+ public static IDataReader GetBackgroundTaskLogs(int taskId, DateTime startLogTime)
+ {
+ return SqlHelper.ExecuteReader(ConnectionString, CommandType.StoredProcedure,
+ ObjectQualifier + "GetBackgroundTaskLogs",
+ new SqlParameter("@taskId", taskId),
+ new SqlParameter("@startLogTime", startLogTime));
+ }
+
+ public static void UpdateBackgroundTask(Guid guid, int taskId, int scheduleId, int packageId, string taskName, int itemId,
+ string itemName, DateTime finishDate, int indicatorCurrent, int indicatorMaximum, int maximumExecutionTime,
+ string source, int severity, bool completed, bool notifyOnComplete, BackgroundTaskStatus status)
+ {
+ SqlHelper.ExecuteNonQuery(ConnectionString, CommandType.StoredProcedure,
+ ObjectQualifier + "UpdateBackgroundTask",
+ new SqlParameter("@Guid", guid),
+ new SqlParameter("@taskId", taskId),
+ new SqlParameter("@scheduleId", scheduleId),
+ new SqlParameter("@packageId", packageId),
+ new SqlParameter("@taskName", taskName),
+ new SqlParameter("@itemId", itemId),
+ new SqlParameter("@itemName", itemName),
+ new SqlParameter("@finishDate",
+ finishDate == DateTime.MinValue
+ ? DBNull.Value
+ : (object) finishDate),
+ new SqlParameter("@indicatorCurrent", indicatorCurrent),
+ new SqlParameter("@indicatorMaximum", indicatorMaximum),
+ new SqlParameter("@maximumExecutionTime", maximumExecutionTime),
+ new SqlParameter("@source", source),
+ new SqlParameter("@severity", severity),
+ new SqlParameter("@completed", completed),
+ new SqlParameter("@notifyOnComplete", notifyOnComplete),
+ new SqlParameter("@status", (int)status));
+
+ }
+
+ public static IDataReader GetBackgroundTaskParams(int taskId)
+ {
+ return SqlHelper.ExecuteReader(ConnectionString, CommandType.StoredProcedure,
+ ObjectQualifier + "GetBackgroundTaskParams",
+ new SqlParameter("@taskId", taskId));
+ }
+
+ public static void AddBackgroundTaskParam(int taskId, string name, string value, string typeName)
+ {
+ SqlHelper.ExecuteNonQuery(ConnectionString, CommandType.StoredProcedure,
+ ObjectQualifier + "AddBackgroundTaskParam",
+ new SqlParameter("@taskId", taskId),
+ new SqlParameter("@name", name),
+ new SqlParameter("@value", value),
+ new SqlParameter("@typeName", typeName));
+ }
+
+ public static void DeleteBackgroundTaskParams(int taskId)
+ {
+ SqlHelper.ExecuteNonQuery(ConnectionString, CommandType.StoredProcedure,
+ ObjectQualifier + "DeleteBackgroundTaskParams",
+ new SqlParameter("@taskId", taskId));
+ }
+
+ public static void AddBackgroundTaskStack(int taskId)
+ {
+ SqlHelper.ExecuteNonQuery(ConnectionString, CommandType.StoredProcedure,
+ ObjectQualifier + "AddBackgroundTaskStack",
+ new SqlParameter("@taskId", taskId));
+ }
+
+ public static void DeleteBackgroundTasks(Guid guid)
+ {
+ SqlHelper.ExecuteNonQuery(ConnectionString, CommandType.StoredProcedure,
+ ObjectQualifier + "DeleteBackgroundTasks",
+ new SqlParameter("@guid", guid));
+ }
+
+ public static void DeleteBackgroundTask(int taskId)
+ {
+ SqlHelper.ExecuteNonQuery(ConnectionString, CommandType.StoredProcedure,
+ ObjectQualifier + "DeleteBackgroundTask",
+ new SqlParameter("@id", taskId));
+ }
+
public static IDataReader GetScheduleTasks(int actorId)
{
return SqlHelper.ExecuteReader(ConnectionString, CommandType.StoredProcedure,
@@ -1901,17 +2074,17 @@ namespace WebsitePanel.EnterpriseServer
new SqlParameter("@scheduleId", scheduleId));
}
- ///
- /// Loads view configuration for the task with specified id.
- ///
- /// Task id which points to task for which view configuration will be loaded.
- /// View configuration for the task with supplied id.
- public static IDataReader GetScheduleTaskViewConfigurations(string taskId)
- {
- return SqlHelper.ExecuteReader(ConnectionString, CommandType.StoredProcedure,
- ObjectQualifier + "GetScheduleTaskViewConfigurations",
- new SqlParameter("@taskId", taskId));
- }
+ ///
+ /// Loads view configuration for the task with specified id.
+ ///
+ /// Task id which points to task for which view configuration will be loaded.
+ /// View configuration for the task with supplied id.
+ public static IDataReader GetScheduleTaskViewConfigurations(string taskId)
+ {
+ return SqlHelper.ExecuteReader(ConnectionString, CommandType.StoredProcedure,
+ ObjectQualifier + "GetScheduleTaskViewConfigurations",
+ new SqlParameter("@taskId", taskId));
+ }
public static int AddSchedule(int actorId, string taskId, int packageId,
string scheduleName, string scheduleTypeId, int interval,
@@ -1945,11 +2118,12 @@ namespace WebsitePanel.EnterpriseServer
// read identity
return Convert.ToInt32(prmId.Value);
}
+
public static void UpdateSchedule(int actorId, int scheduleId, string taskId,
string scheduleName, string scheduleTypeId, int interval,
DateTime fromTime, DateTime toTime, DateTime startTime,
- DateTime lastRun, DateTime nextRun, bool enabled, string priorityId, int historiesNumber,
- int maxExecutionTime, int weekMonthDay, string xmlParameters)
+ DateTime lastRun, DateTime nextRun, bool enabled, string priorityId,
+ int historiesNumber, int maxExecutionTime, int weekMonthDay, string xmlParameters)
{
SqlHelper.ExecuteNonQuery(ConnectionString, CommandType.StoredProcedure,
ObjectQualifier + "UpdateSchedule",
@@ -1971,6 +2145,7 @@ namespace WebsitePanel.EnterpriseServer
new SqlParameter("@weekMonthDay", weekMonthDay),
new SqlParameter("@xmlParameters", xmlParameters));
}
+
public static void DeleteSchedule(int actorId, int scheduleId)
{
SqlHelper.ExecuteNonQuery(ConnectionString, CommandType.StoredProcedure,
@@ -2146,7 +2321,7 @@ namespace WebsitePanel.EnterpriseServer
}
#endregion
- #region Exchange Server
+ #region Exchange Server
public static int AddExchangeAccount(int itemId, int accountType, string accountName,
@@ -2178,42 +2353,42 @@ namespace WebsitePanel.EnterpriseServer
}
- public static void AddExchangeAccountEmailAddress(int accountId, string emailAddress)
- {
- SqlHelper.ExecuteNonQuery(
- ConnectionString,
- CommandType.StoredProcedure,
- "AddExchangeAccountEmailAddress",
- new SqlParameter("@AccountID", accountId),
- new SqlParameter("@EmailAddress", emailAddress)
- );
- }
+ public static void AddExchangeAccountEmailAddress(int accountId, string emailAddress)
+ {
+ SqlHelper.ExecuteNonQuery(
+ ConnectionString,
+ CommandType.StoredProcedure,
+ "AddExchangeAccountEmailAddress",
+ new SqlParameter("@AccountID", accountId),
+ new SqlParameter("@EmailAddress", emailAddress)
+ );
+ }
- public static void AddExchangeOrganization(int itemId, string organizationId)
- {
- SqlHelper.ExecuteNonQuery(
- ConnectionString,
- CommandType.StoredProcedure,
- "AddExchangeOrganization",
- new SqlParameter("@ItemID", itemId),
- new SqlParameter("@OrganizationID", organizationId)
- );
- }
+ public static void AddExchangeOrganization(int itemId, string organizationId)
+ {
+ SqlHelper.ExecuteNonQuery(
+ ConnectionString,
+ CommandType.StoredProcedure,
+ "AddExchangeOrganization",
+ new SqlParameter("@ItemID", itemId),
+ new SqlParameter("@OrganizationID", organizationId)
+ );
+ }
- public static void AddExchangeOrganizationDomain(int itemId, int domainId, bool isHost)
- {
- SqlHelper.ExecuteNonQuery(
- ConnectionString,
- CommandType.StoredProcedure,
- "AddExchangeOrganizationDomain",
- new SqlParameter("@ItemID", itemId),
- new SqlParameter("@DomainID", domainId),
- new SqlParameter("@IsHost", isHost)
- );
- }
+ public static void AddExchangeOrganizationDomain(int itemId, int domainId, bool isHost)
+ {
+ SqlHelper.ExecuteNonQuery(
+ ConnectionString,
+ CommandType.StoredProcedure,
+ "AddExchangeOrganizationDomain",
+ new SqlParameter("@ItemID", itemId),
+ new SqlParameter("@DomainID", domainId),
+ new SqlParameter("@IsHost", isHost)
+ );
+ }
public static void ChangeExchangeAcceptedDomainType(int itemId, int domainId, int domainTypeId)
- {
+ {
SqlHelper.ExecuteNonQuery(
ConnectionString,
CommandType.StoredProcedure,
@@ -2224,134 +2399,134 @@ namespace WebsitePanel.EnterpriseServer
);
}
- public static IDataReader GetExchangeOrganizationStatistics(int itemId)
- {
- return SqlHelper.ExecuteReader(
- ConnectionString,
- CommandType.StoredProcedure,
- "GetExchangeOrganizationStatistics",
- new SqlParameter("@ItemID", itemId)
- );
- }
+ public static IDataReader GetExchangeOrganizationStatistics(int itemId)
+ {
+ return SqlHelper.ExecuteReader(
+ ConnectionString,
+ CommandType.StoredProcedure,
+ "GetExchangeOrganizationStatistics",
+ new SqlParameter("@ItemID", itemId)
+ );
+ }
public static void DeleteUserEmailAddresses(int accountId, string primaryAddress)
{
SqlHelper.ExecuteNonQuery(
ConnectionString,
CommandType.StoredProcedure,
- "DeleteUserEmailAddresses",
+ "DeleteUserEmailAddresses",
new SqlParameter("@AccountID", accountId),
new SqlParameter("@PrimaryEmailAddress", primaryAddress)
);
}
-
+
public static void DeleteExchangeAccount(int itemId, int accountId)
- {
- SqlHelper.ExecuteNonQuery(
- ConnectionString,
- CommandType.StoredProcedure,
- "DeleteExchangeAccount",
- new SqlParameter("@ItemID", itemId),
- new SqlParameter("@AccountID", accountId)
- );
- }
+ {
+ SqlHelper.ExecuteNonQuery(
+ ConnectionString,
+ CommandType.StoredProcedure,
+ "DeleteExchangeAccount",
+ new SqlParameter("@ItemID", itemId),
+ new SqlParameter("@AccountID", accountId)
+ );
+ }
- public static void DeleteExchangeAccountEmailAddress(int accountId, string emailAddress)
- {
- SqlHelper.ExecuteNonQuery(
- ConnectionString,
- CommandType.StoredProcedure,
- "DeleteExchangeAccountEmailAddress",
- new SqlParameter("@AccountID", accountId),
- new SqlParameter("@EmailAddress", emailAddress)
- );
- }
+ public static void DeleteExchangeAccountEmailAddress(int accountId, string emailAddress)
+ {
+ SqlHelper.ExecuteNonQuery(
+ ConnectionString,
+ CommandType.StoredProcedure,
+ "DeleteExchangeAccountEmailAddress",
+ new SqlParameter("@AccountID", accountId),
+ new SqlParameter("@EmailAddress", emailAddress)
+ );
+ }
- public static void DeleteExchangeOrganization(int itemId)
- {
- SqlHelper.ExecuteNonQuery(
- ConnectionString,
- CommandType.StoredProcedure,
- "DeleteExchangeOrganization",
- new SqlParameter("@ItemID", itemId)
- );
- }
+ public static void DeleteExchangeOrganization(int itemId)
+ {
+ SqlHelper.ExecuteNonQuery(
+ ConnectionString,
+ CommandType.StoredProcedure,
+ "DeleteExchangeOrganization",
+ new SqlParameter("@ItemID", itemId)
+ );
+ }
- public static void DeleteExchangeOrganizationDomain(int itemId, int domainId)
- {
- SqlHelper.ExecuteNonQuery(
- ConnectionString,
- CommandType.StoredProcedure,
- "DeleteExchangeOrganizationDomain",
- new SqlParameter("@ItemId", itemId),
- new SqlParameter("@DomainID", domainId)
- );
- }
+ public static void DeleteExchangeOrganizationDomain(int itemId, int domainId)
+ {
+ SqlHelper.ExecuteNonQuery(
+ ConnectionString,
+ CommandType.StoredProcedure,
+ "DeleteExchangeOrganizationDomain",
+ new SqlParameter("@ItemId", itemId),
+ new SqlParameter("@DomainID", domainId)
+ );
+ }
- public static bool ExchangeAccountEmailAddressExists(string emailAddress)
- {
- SqlParameter outParam = new SqlParameter("@Exists", SqlDbType.Bit);
- outParam.Direction = ParameterDirection.Output;
+ public static bool ExchangeAccountEmailAddressExists(string emailAddress)
+ {
+ SqlParameter outParam = new SqlParameter("@Exists", SqlDbType.Bit);
+ outParam.Direction = ParameterDirection.Output;
- SqlHelper.ExecuteNonQuery(
- ConnectionString,
- CommandType.StoredProcedure,
- "ExchangeAccountEmailAddressExists",
- new SqlParameter("@EmailAddress", emailAddress),
- outParam
- );
+ SqlHelper.ExecuteNonQuery(
+ ConnectionString,
+ CommandType.StoredProcedure,
+ "ExchangeAccountEmailAddressExists",
+ new SqlParameter("@EmailAddress", emailAddress),
+ outParam
+ );
- return Convert.ToBoolean(outParam.Value);
- }
+ return Convert.ToBoolean(outParam.Value);
+ }
public static bool ExchangeOrganizationDomainExists(int domainId)
- {
- SqlParameter outParam = new SqlParameter("@Exists", SqlDbType.Bit);
- outParam.Direction = ParameterDirection.Output;
+ {
+ SqlParameter outParam = new SqlParameter("@Exists", SqlDbType.Bit);
+ outParam.Direction = ParameterDirection.Output;
- SqlHelper.ExecuteNonQuery(
- ConnectionString,
- CommandType.StoredProcedure,
- "ExchangeOrganizationDomainExists",
- new SqlParameter("@DomainID", domainId),
- outParam
- );
+ SqlHelper.ExecuteNonQuery(
+ ConnectionString,
+ CommandType.StoredProcedure,
+ "ExchangeOrganizationDomainExists",
+ new SqlParameter("@DomainID", domainId),
+ outParam
+ );
- return Convert.ToBoolean(outParam.Value);
- }
+ return Convert.ToBoolean(outParam.Value);
+ }
- public static bool ExchangeOrganizationExists(string organizationId)
- {
- SqlParameter outParam = new SqlParameter("@Exists", SqlDbType.Bit);
- outParam.Direction = ParameterDirection.Output;
+ public static bool ExchangeOrganizationExists(string organizationId)
+ {
+ SqlParameter outParam = new SqlParameter("@Exists", SqlDbType.Bit);
+ outParam.Direction = ParameterDirection.Output;
- SqlHelper.ExecuteNonQuery(
- ConnectionString,
- CommandType.StoredProcedure,
- "ExchangeOrganizationExists",
- new SqlParameter("@OrganizationID", organizationId),
- outParam
- );
+ SqlHelper.ExecuteNonQuery(
+ ConnectionString,
+ CommandType.StoredProcedure,
+ "ExchangeOrganizationExists",
+ new SqlParameter("@OrganizationID", organizationId),
+ outParam
+ );
- return Convert.ToBoolean(outParam.Value);
- }
+ return Convert.ToBoolean(outParam.Value);
+ }
- public static bool ExchangeAccountExists(string accountName)
- {
- SqlParameter outParam = new SqlParameter("@Exists", SqlDbType.Bit);
- outParam.Direction = ParameterDirection.Output;
+ public static bool ExchangeAccountExists(string accountName)
+ {
+ SqlParameter outParam = new SqlParameter("@Exists", SqlDbType.Bit);
+ outParam.Direction = ParameterDirection.Output;
- SqlHelper.ExecuteNonQuery(
- ConnectionString,
- CommandType.StoredProcedure,
- "ExchangeAccountExists",
- new SqlParameter("@AccountName", accountName),
- outParam
- );
+ SqlHelper.ExecuteNonQuery(
+ ConnectionString,
+ CommandType.StoredProcedure,
+ "ExchangeAccountExists",
+ new SqlParameter("@AccountName", accountName),
+ outParam
+ );
- return Convert.ToBoolean(outParam.Value);
- }
+ return Convert.ToBoolean(outParam.Value);
+ }
public static void UpdateExchangeAccount(int accountId, string accountName, ExchangeAccountType accountType,
string displayName, string primaryEmailAddress, bool mailEnabledPublicFolder,
@@ -2385,16 +2560,16 @@ namespace WebsitePanel.EnterpriseServer
new SqlParameter("@UserPrincipalName", userPrincipalName));
}
- public static IDataReader GetExchangeAccount(int itemId, int accountId)
- {
- return SqlHelper.ExecuteReader(
- ConnectionString,
- CommandType.StoredProcedure,
- "GetExchangeAccount",
- new SqlParameter("@ItemID", itemId),
- new SqlParameter("@AccountID", accountId)
- );
- }
+ public static IDataReader GetExchangeAccount(int itemId, int accountId)
+ {
+ return SqlHelper.ExecuteReader(
+ ConnectionString,
+ CommandType.StoredProcedure,
+ "GetExchangeAccount",
+ new SqlParameter("@ItemID", itemId),
+ new SqlParameter("@AccountID", accountId)
+ );
+ }
public static IDataReader GetExchangeAccountByAccountName(int itemId, string accountName)
{
@@ -2419,37 +2594,37 @@ namespace WebsitePanel.EnterpriseServer
}
- public static IDataReader GetExchangeAccountEmailAddresses(int accountId)
- {
- return SqlHelper.ExecuteReader(
- ConnectionString,
- CommandType.StoredProcedure,
- "GetExchangeAccountEmailAddresses",
- new SqlParameter("@AccountID", accountId)
- );
- }
+ public static IDataReader GetExchangeAccountEmailAddresses(int accountId)
+ {
+ return SqlHelper.ExecuteReader(
+ ConnectionString,
+ CommandType.StoredProcedure,
+ "GetExchangeAccountEmailAddresses",
+ new SqlParameter("@AccountID", accountId)
+ );
+ }
+
+ public static IDataReader GetExchangeOrganizationDomains(int itemId)
+ {
+ return SqlHelper.ExecuteReader(
+ ConnectionString,
+ CommandType.StoredProcedure,
+ "GetExchangeOrganizationDomains",
+ new SqlParameter("@ItemID", itemId)
+ );
+ }
- public static IDataReader GetExchangeOrganizationDomains(int itemId)
- {
- return SqlHelper.ExecuteReader(
- ConnectionString,
- CommandType.StoredProcedure,
- "GetExchangeOrganizationDomains",
- new SqlParameter("@ItemID", itemId)
- );
- }
-
public static IDataReader GetExchangeAccounts(int itemId, int accountType)
- {
- return SqlHelper.ExecuteReader(
- ConnectionString,
- CommandType.StoredProcedure,
- "GetExchangeAccounts",
- new SqlParameter("@ItemID", itemId),
- new SqlParameter("@AccountType", accountType)
- );
- }
+ {
+ return SqlHelper.ExecuteReader(
+ ConnectionString,
+ CommandType.StoredProcedure,
+ "GetExchangeAccounts",
+ new SqlParameter("@ItemID", itemId),
+ new SqlParameter("@AccountType", accountType)
+ );
+ }
public static IDataReader GetExchangeMailboxes(int itemId)
{
@@ -2461,9 +2636,9 @@ namespace WebsitePanel.EnterpriseServer
);
}
- public static DataSet GetExchangeAccountsPaged(int actorId, int itemId, string accountTypes,
+ public static DataSet GetExchangeAccountsPaged(int actorId, int itemId, string accountTypes,
string filterColumn, string filterValue, string sortColumn, int startRow, int maximumRows)
- {
+ {
// check input parameters
string[] types = accountTypes.Split(',');
for (int i = 0; i < types.Length; i++)
@@ -2480,41 +2655,41 @@ namespace WebsitePanel.EnterpriseServer
string searchTypes = String.Join(",", types);
- return SqlHelper.ExecuteDataset(
- ConnectionString,
- CommandType.StoredProcedure,
- "GetExchangeAccountsPaged",
- new SqlParameter("@ActorID", actorId),
- new SqlParameter("@ItemID", itemId),
+ return SqlHelper.ExecuteDataset(
+ ConnectionString,
+ CommandType.StoredProcedure,
+ "GetExchangeAccountsPaged",
+ new SqlParameter("@ActorID", actorId),
+ new SqlParameter("@ItemID", itemId),
new SqlParameter("@AccountTypes", searchTypes),
- new SqlParameter("@FilterColumn", VerifyColumnName(filterColumn)),
- new SqlParameter("@FilterValue", VerifyColumnValue(filterValue)),
- new SqlParameter("@SortColumn", VerifyColumnName(sortColumn)),
- new SqlParameter("@StartRow", startRow),
- new SqlParameter("@MaximumRows", maximumRows)
- );
- }
+ new SqlParameter("@FilterColumn", VerifyColumnName(filterColumn)),
+ new SqlParameter("@FilterValue", VerifyColumnValue(filterValue)),
+ new SqlParameter("@SortColumn", VerifyColumnName(sortColumn)),
+ new SqlParameter("@StartRow", startRow),
+ new SqlParameter("@MaximumRows", maximumRows)
+ );
+ }
- public static IDataReader SearchExchangeAccounts(int actorId, int itemId, bool includeMailboxes,
+ public static IDataReader SearchExchangeAccounts(int actorId, int itemId, bool includeMailboxes,
bool includeContacts, bool includeDistributionLists, bool includeRooms, bool includeEquipment,
string filterColumn, string filterValue, string sortColumn)
- {
- return SqlHelper.ExecuteReader(
- ConnectionString,
- CommandType.StoredProcedure,
- "SearchExchangeAccounts",
- new SqlParameter("@ActorID", actorId),
- new SqlParameter("@ItemID", itemId),
- new SqlParameter("@IncludeMailboxes", includeMailboxes),
- new SqlParameter("@IncludeContacts", includeContacts),
- new SqlParameter("@IncludeDistributionLists", includeDistributionLists),
+ {
+ return SqlHelper.ExecuteReader(
+ ConnectionString,
+ CommandType.StoredProcedure,
+ "SearchExchangeAccounts",
+ new SqlParameter("@ActorID", actorId),
+ new SqlParameter("@ItemID", itemId),
+ new SqlParameter("@IncludeMailboxes", includeMailboxes),
+ new SqlParameter("@IncludeContacts", includeContacts),
+ new SqlParameter("@IncludeDistributionLists", includeDistributionLists),
new SqlParameter("@IncludeRooms", includeRooms),
new SqlParameter("@IncludeEquipment", includeEquipment),
- new SqlParameter("@FilterColumn", VerifyColumnName(filterColumn)),
- new SqlParameter("@FilterValue", VerifyColumnValue(filterValue)),
- new SqlParameter("@SortColumn", VerifyColumnName(sortColumn))
- );
- }
+ new SqlParameter("@FilterColumn", VerifyColumnName(filterColumn)),
+ new SqlParameter("@FilterValue", VerifyColumnValue(filterValue)),
+ new SqlParameter("@SortColumn", VerifyColumnName(sortColumn))
+ );
+ }
public static IDataReader SearchExchangeAccount(int actorId, int accountType, string primaryEmailAddress)
{
@@ -2528,7 +2703,7 @@ namespace WebsitePanel.EnterpriseServer
);
}
- #endregion
+ #endregion
#region Exchange Mailbox Plans
public static int AddExchangeMailboxPlan(int itemID, string mailboxPlan, bool enableActiveSync, bool enableIMAP, bool enableMAPI, bool enableOWA, bool enablePOP,
@@ -2562,11 +2737,11 @@ namespace WebsitePanel.EnterpriseServer
new SqlParameter("@ProhibitSendReceivePct", prohibitSendReceivePct),
new SqlParameter("@HideFromAddressBook", hideFromAddressBook),
new SqlParameter("@MailboxPlanType", mailboxPlanType),
- new SqlParameter("@AllowLitigationHold",enabledLitigationHold),
+ new SqlParameter("@AllowLitigationHold", enabledLitigationHold),
new SqlParameter("@RecoverableItemsWarningPct", recoverabelItemsWarning),
- new SqlParameter("@RecoverableItemsSpace",recoverabelItemsSpace),
- new SqlParameter("@LitigationHoldUrl",litigationHoldUrl),
- new SqlParameter("@LitigationHoldMsg",litigationHoldMsg)
+ new SqlParameter("@RecoverableItemsSpace", recoverabelItemsSpace),
+ new SqlParameter("@LitigationHoldUrl", litigationHoldUrl),
+ new SqlParameter("@LitigationHoldMsg", litigationHoldMsg)
);
return Convert.ToInt32(outParam.Value);
@@ -2604,8 +2779,8 @@ namespace WebsitePanel.EnterpriseServer
new SqlParameter("@AllowLitigationHold", enabledLitigationHold),
new SqlParameter("@RecoverableItemsWarningPct", recoverabelItemsWarning),
new SqlParameter("@RecoverableItemsSpace", recoverabelItemsSpace),
- new SqlParameter("@LitigationHoldUrl",litigationHoldUrl),
- new SqlParameter("@LitigationHoldMsg",litigationHoldMsg)
+ new SqlParameter("@LitigationHoldUrl", litigationHoldUrl),
+ new SqlParameter("@LitigationHoldMsg", litigationHoldMsg)
);
}
@@ -2685,16 +2860,16 @@ namespace WebsitePanel.EnterpriseServer
{
SqlHelper.ExecuteNonQuery(ConnectionString, CommandType.StoredProcedure, "DeleteOrganizationUsers", new SqlParameter("@ItemID", itemId));
}
-
+
public static int GetItemIdByOrganizationId(string id)
- {
- object obj =SqlHelper.ExecuteScalar(ConnectionString, CommandType.StoredProcedure, "GetItemIdByOrganizationId",
+ {
+ object obj = SqlHelper.ExecuteScalar(ConnectionString, CommandType.StoredProcedure, "GetItemIdByOrganizationId",
new SqlParameter("@OrganizationId", id));
return (obj == null || DBNull.Value == obj) ? 0 : (int)obj;
-
+
}
-
+
public static IDataReader GetOrganizationStatistics(int itemId)
{
return SqlHelper.ExecuteReader(
@@ -2703,7 +2878,7 @@ namespace WebsitePanel.EnterpriseServer
"GetOrganizationStatistics",
new SqlParameter("@ItemID", itemId)
);
- }
+ }
public static IDataReader SearchOrganizationAccounts(int actorId, int itemId,
string filterColumn, string filterValue, string sortColumn, bool includeMailboxes)
@@ -2724,7 +2899,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion
#region CRM
-
+
public static int GetCRMUsersCount(int itemId, string name, string email)
{
SqlParameter[] sqlParams = new SqlParameter[]
@@ -2734,19 +2909,19 @@ namespace WebsitePanel.EnterpriseServer
GetFilterSqlParam("@Email", email),
};
- return (int) SqlHelper.ExecuteScalar(ConnectionString, CommandType.StoredProcedure, "GetCRMUsersCount", sqlParams);
+ return (int)SqlHelper.ExecuteScalar(ConnectionString, CommandType.StoredProcedure, "GetCRMUsersCount", sqlParams);
}
-
+
private static SqlParameter GetFilterSqlParam(string paramName, string value)
{
if (string.IsNullOrEmpty(value))
return new SqlParameter(paramName, DBNull.Value);
- return new SqlParameter(paramName, value);
+ return new SqlParameter(paramName, value);
}
- public static IDataReader GetCrmUsers(int itemId, string sortColumn, string sortDirection, string name, string email, int startRow, int count )
+ public static IDataReader GetCrmUsers(int itemId, string sortColumn, string sortDirection, string name, string email, int startRow, int count)
{
SqlParameter[] sqlParams = new SqlParameter[]
{
@@ -2759,7 +2934,7 @@ namespace WebsitePanel.EnterpriseServer
new SqlParameter("Count", count)
};
-
+
return SqlHelper.ExecuteReader(
ConnectionString,
CommandType.StoredProcedure,
@@ -2769,7 +2944,7 @@ namespace WebsitePanel.EnterpriseServer
public static IDataReader GetCRMOrganizationUsers(int itemId)
{
return SqlHelper.ExecuteReader(ConnectionString, CommandType.StoredProcedure, "GetCRMOrganizationUsers",
- new SqlParameter[] {new SqlParameter("@ItemID", itemId)});
+ new SqlParameter[] { new SqlParameter("@ItemID", itemId) });
}
public static void CreateCRMUser(int itemId, Guid crmId, Guid businessUnitId)
@@ -2781,7 +2956,7 @@ namespace WebsitePanel.EnterpriseServer
new SqlParameter("@CrmUserID", crmId),
new SqlParameter("@BusinessUnitId", businessUnitId)
});
-
+
}
@@ -2793,14 +2968,13 @@ namespace WebsitePanel.EnterpriseServer
new SqlParameter("@AccountID", itemId)
});
return reader;
-
+
}
public static int GetCrmUserCount(int itemId)
{
- return (int)SqlHelper.ExecuteScalar(ConnectionString, CommandType.StoredProcedure, "GetOrganizationCRMUserCount",
- new SqlParameter[]
- { new SqlParameter("@ItemID",itemId)});
+ return (int)SqlHelper.ExecuteScalar(ConnectionString, CommandType.StoredProcedure, "GetOrganizationCRMUserCount",
+ new SqlParameter[] { new SqlParameter("@ItemID", itemId) });
}
public static void DeleteCrmOrganization(int organizationId)
@@ -2808,8 +2982,8 @@ namespace WebsitePanel.EnterpriseServer
SqlHelper.ExecuteScalar(ConnectionString, CommandType.StoredProcedure, "DeleteCRMOrganization",
new SqlParameter[] { new SqlParameter("@ItemID", organizationId) });
}
-
- #endregion
+
+ #endregion
#region VPS - Virtual Private Servers
@@ -2830,8 +3004,8 @@ namespace WebsitePanel.EnterpriseServer
}
#endregion
- public static IDataReader GetVirtualMachinesForPCPaged(int actorId, int packageId, string filterColumn, string filterValue,
- string sortColumn, int startRow, int maximumRows, bool recursive)
+ public static IDataReader GetVirtualMachinesForPCPaged(int actorId, int packageId, string filterColumn, string filterValue,
+ string sortColumn, int startRow, int maximumRows, bool recursive)
{
IDataReader reader = SqlHelper.ExecuteReader(ConnectionString, CommandType.StoredProcedure,
"GetVirtualMachinesPagedForPC",
@@ -3027,7 +3201,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion
#region BlackBerry
-
+
public static void AddBlackBerryUser(int accountId)
{
SqlHelper.ExecuteNonQuery(ConnectionString,
@@ -3038,8 +3212,8 @@ namespace WebsitePanel.EnterpriseServer
new SqlParameter("@AccountID", accountId)
});
}
-
-
+
+
public static bool CheckBlackBerryUserExists(int accountId)
{
int res = (int)SqlHelper.ExecuteScalar(ConnectionString, CommandType.StoredProcedure, "CheckBlackBerryUserExists",
@@ -3091,7 +3265,7 @@ namespace WebsitePanel.EnterpriseServer
{
new SqlParameter("@AccountID", accountId)
});
-
+
}
#endregion
@@ -3178,142 +3352,142 @@ namespace WebsitePanel.EnterpriseServer
#endregion
- #region SSL
- public static int AddSSLRequest(int actorId, int packageId, int siteID, int userID, string friendlyname, string hostname, string csr, int csrLength, string distinguishedName, bool isRenewal, int previousID)
- {
- SqlParameter prmId = new SqlParameter("@SSLID", SqlDbType.Int);
- prmId.Direction = ParameterDirection.Output;
- SqlHelper.ExecuteNonQuery(ConnectionString, CommandType.StoredProcedure,
- ObjectQualifier + "AddSSLRequest", prmId,
- new SqlParameter("@ActorId", actorId),
- new SqlParameter("@PackageId", packageId),
- new SqlParameter("@UserID", userID),
- new SqlParameter("@WebSiteID", siteID),
- new SqlParameter("@FriendlyName", friendlyname),
- new SqlParameter("@HostName", hostname),
- new SqlParameter("@CSR", csr),
- new SqlParameter("@CSRLength", csrLength),
- new SqlParameter("@DistinguishedName", distinguishedName),
- new SqlParameter("@IsRenewal", isRenewal),
- new SqlParameter("@PreviousId", previousID)
- );
- return Convert.ToInt32(prmId.Value);
+ #region SSL
+ public static int AddSSLRequest(int actorId, int packageId, int siteID, int userID, string friendlyname, string hostname, string csr, int csrLength, string distinguishedName, bool isRenewal, int previousID)
+ {
+ SqlParameter prmId = new SqlParameter("@SSLID", SqlDbType.Int);
+ prmId.Direction = ParameterDirection.Output;
+ SqlHelper.ExecuteNonQuery(ConnectionString, CommandType.StoredProcedure,
+ ObjectQualifier + "AddSSLRequest", prmId,
+ new SqlParameter("@ActorId", actorId),
+ new SqlParameter("@PackageId", packageId),
+ new SqlParameter("@UserID", userID),
+ new SqlParameter("@WebSiteID", siteID),
+ new SqlParameter("@FriendlyName", friendlyname),
+ new SqlParameter("@HostName", hostname),
+ new SqlParameter("@CSR", csr),
+ new SqlParameter("@CSRLength", csrLength),
+ new SqlParameter("@DistinguishedName", distinguishedName),
+ new SqlParameter("@IsRenewal", isRenewal),
+ new SqlParameter("@PreviousId", previousID)
+ );
+ return Convert.ToInt32(prmId.Value);
- }
+ }
- public static void CompleteSSLRequest(int actorId, int packageId, int id, string certificate, string distinguishedName, string serialNumber, byte[] hash, DateTime validFrom, DateTime expiryDate)
- {
- SqlHelper.ExecuteNonQuery(ConnectionString, CommandType.StoredProcedure,
- ObjectQualifier + "CompleteSSLRequest",
- new SqlParameter("@ActorID", actorId),
- new SqlParameter("@PackageID", packageId),
- new SqlParameter("@ID", id),
- new SqlParameter("@DistinguishedName", distinguishedName),
- new SqlParameter("@Certificate", certificate),
- new SqlParameter("@SerialNumber", serialNumber),
- new SqlParameter("@Hash", Convert.ToBase64String(hash)),
- new SqlParameter("@ValidFrom", validFrom),
- new SqlParameter("@ExpiryDate", expiryDate));
+ public static void CompleteSSLRequest(int actorId, int packageId, int id, string certificate, string distinguishedName, string serialNumber, byte[] hash, DateTime validFrom, DateTime expiryDate)
+ {
+ SqlHelper.ExecuteNonQuery(ConnectionString, CommandType.StoredProcedure,
+ ObjectQualifier + "CompleteSSLRequest",
+ new SqlParameter("@ActorID", actorId),
+ new SqlParameter("@PackageID", packageId),
+ new SqlParameter("@ID", id),
+ new SqlParameter("@DistinguishedName", distinguishedName),
+ new SqlParameter("@Certificate", certificate),
+ new SqlParameter("@SerialNumber", serialNumber),
+ new SqlParameter("@Hash", Convert.ToBase64String(hash)),
+ new SqlParameter("@ValidFrom", validFrom),
+ new SqlParameter("@ExpiryDate", expiryDate));
- }
+ }
- public static void AddPFX(int actorId, int packageId, int siteID, int userID, string hostname, string friendlyName, string distinguishedName, int csrLength, string serialNumber, DateTime validFrom, DateTime expiryDate)
- {
- SqlHelper.ExecuteNonQuery(ConnectionString, CommandType.StoredProcedure,
- ObjectQualifier + "AddPFX",
- new SqlParameter("@ActorId", actorId),
- new SqlParameter("@PackageId", packageId),
- new SqlParameter("@UserID", userID),
- new SqlParameter("@WebSiteID", siteID),
- new SqlParameter("@FriendlyName", friendlyName),
- new SqlParameter("@HostName", hostname),
- new SqlParameter("@CSRLength", csrLength),
- new SqlParameter("@DistinguishedName", distinguishedName),
- new SqlParameter("@SerialNumber", serialNumber),
- new SqlParameter("@ValidFrom", validFrom),
- new SqlParameter("@ExpiryDate", expiryDate));
+ public static void AddPFX(int actorId, int packageId, int siteID, int userID, string hostname, string friendlyName, string distinguishedName, int csrLength, string serialNumber, DateTime validFrom, DateTime expiryDate)
+ {
+ SqlHelper.ExecuteNonQuery(ConnectionString, CommandType.StoredProcedure,
+ ObjectQualifier + "AddPFX",
+ new SqlParameter("@ActorId", actorId),
+ new SqlParameter("@PackageId", packageId),
+ new SqlParameter("@UserID", userID),
+ new SqlParameter("@WebSiteID", siteID),
+ new SqlParameter("@FriendlyName", friendlyName),
+ new SqlParameter("@HostName", hostname),
+ new SqlParameter("@CSRLength", csrLength),
+ new SqlParameter("@DistinguishedName", distinguishedName),
+ new SqlParameter("@SerialNumber", serialNumber),
+ new SqlParameter("@ValidFrom", validFrom),
+ new SqlParameter("@ExpiryDate", expiryDate));
- }
+ }
- public static DataSet GetSSL(int actorId, int packageId, int id)
- {
- return SqlHelper.ExecuteDataset(ConnectionString, CommandType.StoredProcedure,
- ObjectQualifier + "GetSSL",
- new SqlParameter("@SSLID", id));
+ public static DataSet GetSSL(int actorId, int packageId, int id)
+ {
+ return SqlHelper.ExecuteDataset(ConnectionString, CommandType.StoredProcedure,
+ ObjectQualifier + "GetSSL",
+ new SqlParameter("@SSLID", id));
- }
+ }
- public static DataSet GetCertificatesForSite(int actorId, int packageId, int siteId)
- {
- return SqlHelper.ExecuteDataset(ConnectionString, CommandType.StoredProcedure,
- ObjectQualifier + "GetCertificatesForSite",
- new SqlParameter("@ActorId", actorId),
- new SqlParameter("@PackageId", packageId),
- new SqlParameter("@websiteid", siteId));
+ public static DataSet GetCertificatesForSite(int actorId, int packageId, int siteId)
+ {
+ return SqlHelper.ExecuteDataset(ConnectionString, CommandType.StoredProcedure,
+ ObjectQualifier + "GetCertificatesForSite",
+ new SqlParameter("@ActorId", actorId),
+ new SqlParameter("@PackageId", packageId),
+ new SqlParameter("@websiteid", siteId));
- }
+ }
- public static DataSet GetPendingCertificates(int actorId, int packageId, int id, bool recursive)
- {
- return SqlHelper.ExecuteDataset(ConnectionString, CommandType.StoredProcedure,
- ObjectQualifier + "GetPendingSSLForWebsite",
- new SqlParameter("@ActorId", actorId),
- new SqlParameter("@PackageId", packageId),
- new SqlParameter("@websiteid", id),
- new SqlParameter("@Recursive", recursive));
+ public static DataSet GetPendingCertificates(int actorId, int packageId, int id, bool recursive)
+ {
+ return SqlHelper.ExecuteDataset(ConnectionString, CommandType.StoredProcedure,
+ ObjectQualifier + "GetPendingSSLForWebsite",
+ new SqlParameter("@ActorId", actorId),
+ new SqlParameter("@PackageId", packageId),
+ new SqlParameter("@websiteid", id),
+ new SqlParameter("@Recursive", recursive));
- }
+ }
- public static IDataReader GetSSLCertificateByID(int actorId, int id)
- {
- return SqlHelper.ExecuteReader(ConnectionString, CommandType.StoredProcedure,
- ObjectQualifier + "GetSSLCertificateByID",
- new SqlParameter("@ActorId", actorId),
- new SqlParameter("@ID", id));
- }
+ public static IDataReader GetSSLCertificateByID(int actorId, int id)
+ {
+ return SqlHelper.ExecuteReader(ConnectionString, CommandType.StoredProcedure,
+ ObjectQualifier + "GetSSLCertificateByID",
+ new SqlParameter("@ActorId", actorId),
+ new SqlParameter("@ID", id));
+ }
- public static int CheckSSL(int siteID, bool renewal)
- {
- SqlParameter prmId = new SqlParameter("@Result", SqlDbType.Int);
- prmId.Direction = ParameterDirection.Output;
+ public static int CheckSSL(int siteID, bool renewal)
+ {
+ SqlParameter prmId = new SqlParameter("@Result", SqlDbType.Int);
+ prmId.Direction = ParameterDirection.Output;
- SqlHelper.ExecuteNonQuery(ConnectionString, CommandType.StoredProcedure,
- ObjectQualifier + "CheckSSL",
- prmId,
- new SqlParameter("@siteID", siteID),
- new SqlParameter("@Renewal", renewal));
+ SqlHelper.ExecuteNonQuery(ConnectionString, CommandType.StoredProcedure,
+ ObjectQualifier + "CheckSSL",
+ prmId,
+ new SqlParameter("@siteID", siteID),
+ new SqlParameter("@Renewal", renewal));
- return Convert.ToInt32(prmId.Value);
- }
+ return Convert.ToInt32(prmId.Value);
+ }
- public static IDataReader GetSiteCert(int actorId, int siteID)
- {
- return SqlHelper.ExecuteReader(ConnectionString, CommandType.StoredProcedure,
- ObjectQualifier + "GetSSLCertificateByID",
- new SqlParameter("@ActorId", actorId),
- new SqlParameter("@ID", siteID));
- }
+ public static IDataReader GetSiteCert(int actorId, int siteID)
+ {
+ return SqlHelper.ExecuteReader(ConnectionString, CommandType.StoredProcedure,
+ ObjectQualifier + "GetSSLCertificateByID",
+ new SqlParameter("@ActorId", actorId),
+ new SqlParameter("@ID", siteID));
+ }
- public static void DeleteCertificate(int actorId, int packageId, int id)
- {
- SqlHelper.ExecuteNonQuery(ConnectionString, CommandType.StoredProcedure,
- ObjectQualifier + "DeleteCertificate",
- new SqlParameter("@ActorID", actorId),
- new SqlParameter("@PackageID", packageId),
- new SqlParameter("@id", id));
- }
+ public static void DeleteCertificate(int actorId, int packageId, int id)
+ {
+ SqlHelper.ExecuteNonQuery(ConnectionString, CommandType.StoredProcedure,
+ ObjectQualifier + "DeleteCertificate",
+ new SqlParameter("@ActorID", actorId),
+ new SqlParameter("@PackageID", packageId),
+ new SqlParameter("@id", id));
+ }
- public static bool CheckSSLExistsForWebsite(int siteId)
- {
- SqlParameter prmId = new SqlParameter("@Result", SqlDbType.Bit);
- prmId.Direction = ParameterDirection.Output;
- SqlHelper.ExecuteNonQuery(ConnectionString, CommandType.StoredProcedure,
- ObjectQualifier + "CheckSSLExistsForWebsite", prmId,
- new SqlParameter("@siteID", siteId),
- new SqlParameter("@SerialNumber", ""));
- return Convert.ToBoolean(prmId.Value);
- }
- #endregion
+ public static bool CheckSSLExistsForWebsite(int siteId)
+ {
+ SqlParameter prmId = new SqlParameter("@Result", SqlDbType.Bit);
+ prmId.Direction = ParameterDirection.Output;
+ SqlHelper.ExecuteNonQuery(ConnectionString, CommandType.StoredProcedure,
+ ObjectQualifier + "CheckSSLExistsForWebsite", prmId,
+ new SqlParameter("@siteID", siteId),
+ new SqlParameter("@SerialNumber", ""));
+ return Convert.ToBoolean(prmId.Value);
+ }
+ #endregion
#region Lync
@@ -3470,7 +3644,7 @@ namespace WebsitePanel.EnterpriseServer
new SqlParameter("@IsDefault", lyncUserPlan.IsDefault)
);
}
-
+
public static void DeleteLyncUserPlan(int lyncUserPlanId)
{
SqlHelper.ExecuteNonQuery(
@@ -3588,11 +3762,11 @@ namespace WebsitePanel.EnterpriseServer
FROM Providers
WHERE ProviderName = @ProviderName",
new SqlParameter("@ProviderName", providerName));
-
+
reader.Read();
- providerId = (int) reader["ProviderID"];
- groupId = (int) reader["GroupID"];
+ providerId = (int)reader["ProviderID"];
+ groupId = (int)reader["GroupID"];
}
@@ -3663,7 +3837,7 @@ namespace WebsitePanel.EnterpriseServer
GetHeliconZooProviderAndGroup("HeliconZoo", out providerId, out groupId);
- IDataReader reader = SqlHelper.ExecuteReader(ConnectionString, CommandType.Text,
+ IDataReader reader = SqlHelper.ExecuteReader(ConnectionString, CommandType.Text,
@"SELECT HostingPlanQuotas.QuotaID, Quotas.QuotaName, Quotas.QuotaDescription
FROM HostingPlanQuotas
INNER JOIN Packages ON HostingPlanQuotas.PlanID = Packages.PlanID
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Data/EcommerceProvider.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Data/EcommerceProvider.cs
similarity index 100%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Data/EcommerceProvider.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Data/EcommerceProvider.cs
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Data/SQLHelper.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Data/SQLHelper.cs
similarity index 100%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Data/SQLHelper.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Data/SQLHelper.cs
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/DatabaseServers/DatabaseServerController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/DatabaseServers/DatabaseServerController.cs
similarity index 96%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/DatabaseServers/DatabaseServerController.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/DatabaseServers/DatabaseServerController.cs
index 26a3fac9..99e2d55d 100644
--- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/DatabaseServers/DatabaseServerController.cs
+++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/DatabaseServers/DatabaseServerController.cs
@@ -200,8 +200,8 @@ namespace WebsitePanel.EnterpriseServer
if (packageCheck < 0) return packageCheck;
// place log record
- TaskManager.StartTask("SQL_DATABASE", "UPDATE", origItem.Name);
- TaskManager.ItemId = item.Id;
+ TaskManager.StartTask("SQL_DATABASE", "UPDATE", origItem.Name, item.Id);
+
TaskManager.WriteParameter("Provider", origItem.GroupName);
try
@@ -237,9 +237,7 @@ namespace WebsitePanel.EnterpriseServer
return BusinessErrorCodes.ERROR_MSSQL_DATABASES_PACKAGE_ITEM_NOT_FOUND;
// place log record
- TaskManager.StartTask("SQL_DATABASE", "DELETE", origItem.Name);
- TaskManager.ItemId = itemId;
- TaskManager.WriteParameter("Provider", origItem.GroupName);
+ TaskManager.StartTask("SQL_DATABASE", "DELETE", origItem.Name, itemId, new BackgroundTaskParameter("Provider", origItem.GroupName));
try
{
@@ -305,8 +303,7 @@ namespace WebsitePanel.EnterpriseServer
return null;
// place log record
- TaskManager.StartTask("SQL_DATABASE", "BACKUP", item.Name);
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("SQL_DATABASE", "BACKUP", item.Name, itemId);
try
{
@@ -398,8 +395,7 @@ namespace WebsitePanel.EnterpriseServer
if (packageCheck < 0) return packageCheck;
// place log record
- TaskManager.StartTask("SQL_DATABASE", "RESTORE", item.Name);
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("SQL_DATABASE", "RESTORE", item.Name, itemId);
try
{
@@ -468,8 +464,7 @@ namespace WebsitePanel.EnterpriseServer
return BusinessErrorCodes.ERROR_MSSQL_DATABASES_PACKAGE_ITEM_NOT_FOUND;
// place log record
- TaskManager.StartTask("SQL_DATABASE", "TRUNCATE", origItem.Name);
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("SQL_DATABASE", "TRUNCATE", origItem.Name, itemId);
try
{
@@ -701,8 +696,7 @@ namespace WebsitePanel.EnterpriseServer
if (packageCheck < 0) return packageCheck;
// place log record
- TaskManager.StartTask("SQL_USER", "UPDATE", origItem.Name);
- TaskManager.ItemId = item.Id;
+ TaskManager.StartTask("SQL_USER", "UPDATE", origItem.Name, item.Id);
try
{
@@ -746,8 +740,7 @@ namespace WebsitePanel.EnterpriseServer
return BusinessErrorCodes.ERROR_MSSQL_USERS_PACKAGE_ITEM_NOT_FOUND;
// place log record
- TaskManager.StartTask("SQL_USER", "DELETE", origItem.Name);
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("SQL_USER", "DELETE", origItem.Name, itemId);
try
{
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/DnsServers/DnsServerController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/DnsServers/DnsServerController.cs
similarity index 97%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/DnsServers/DnsServerController.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/DnsServers/DnsServerController.cs
index de9aa5fd..10d4bbea 100644
--- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/DnsServers/DnsServerController.cs
+++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/DnsServers/DnsServerController.cs
@@ -214,12 +214,10 @@ namespace WebsitePanel.EnterpriseServer
//
if (zoneItem != null)
{
- TaskManager.StartTask("DNS_ZONE", "DELETE", zoneItem.Name);
+ TaskManager.StartTask("DNS_ZONE", "DELETE", zoneItem.Name, zoneItemId);
//
try
{
- //
- TaskManager.ItemId = zoneItemId;
// delete DNS zone
DNSServer dns = new DNSServer();
ServiceProviderProxy.Init(dns, zoneItem.ServiceId);
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Ecommerce/CategoryController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Ecommerce/CategoryController.cs
similarity index 100%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Ecommerce/CategoryController.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Ecommerce/CategoryController.cs
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Ecommerce/ContractSystem/ContractController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Ecommerce/ContractSystem/ContractController.cs
similarity index 96%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Ecommerce/ContractSystem/ContractController.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Ecommerce/ContractSystem/ContractController.cs
index 05920e1a..1fcab30c 100644
--- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Ecommerce/ContractSystem/ContractController.cs
+++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Ecommerce/ContractSystem/ContractController.cs
@@ -84,8 +84,10 @@ namespace WebsitePanel.Ecommerce.EnterpriseServer.ContractSystem
//
result.Succeed = true;
result.SetProperty("ContractId", contractId);
+
// Add contract object
- ES.TaskManager.TaskParameters[SystemTaskParams.PARAM_CONTRACT] = GetContract(contractId);
+ ES.TaskManager.UpdateParam(SystemTaskParams.PARAM_CONTRACT, GetContract(contractId));
+
//
return result;
}
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Ecommerce/Helpers.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Ecommerce/Helpers.cs
similarity index 100%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Ecommerce/Helpers.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Ecommerce/Helpers.cs
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Ecommerce/InvoiceController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Ecommerce/InvoiceController.cs
similarity index 94%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Ecommerce/InvoiceController.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Ecommerce/InvoiceController.cs
index bd06bd04..65ccd06e 100644
--- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Ecommerce/InvoiceController.cs
+++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Ecommerce/InvoiceController.cs
@@ -224,10 +224,15 @@ namespace WebsitePanel.Ecommerce.EnterpriseServer
InvoiceController.UpdateInvoice(invoice.InvoiceId, invoice.InvoiceNumber, invoice.DueDate,
invoice.Total, invoice.SubTotal, invoice.TaxationId, invoice.TaxAmount, invoice.Currency);
//
- ES.TaskManager.TaskParameters[SystemTaskParams.PARAM_CONTRACT] = contract;
- ES.TaskManager.TaskParameters[SystemTaskParams.PARAM_INVOICE] = invoice;
- ES.TaskManager.TaskParameters[SystemTaskParams.PARAM_INVOICE_LINES] = invoiceLines;
- ES.TaskManager.TaskParameters[SystemTaskParams.PARAM_EXTRA_ARGS] = extraArgs;
+
+ Hashtable parameters = new Hashtable();
+
+ parameters.Add(SystemTaskParams.PARAM_CONTRACT, contract);
+ parameters.Add(SystemTaskParams.PARAM_INVOICE, invoice);
+ parameters.Add(SystemTaskParams.PARAM_INVOICE_LINES, invoiceLines);
+ parameters.Add(SystemTaskParams.PARAM_EXTRA_ARGS, extraArgs);
+
+ TaskManager.UpdateParams(parameters);
//
return result;
}
@@ -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(
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);
//
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Ecommerce/MiscController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Ecommerce/MiscController.cs
similarity index 100%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Ecommerce/MiscController.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Ecommerce/MiscController.cs
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Ecommerce/PaymentGatewayController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Ecommerce/PaymentGatewayController.cs
similarity index 100%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Ecommerce/PaymentGatewayController.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Ecommerce/PaymentGatewayController.cs
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Ecommerce/Provisioning/DomainNameController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Ecommerce/Provisioning/DomainNameController.cs
similarity index 100%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Ecommerce/Provisioning/DomainNameController.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Ecommerce/Provisioning/DomainNameController.cs
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Ecommerce/Provisioning/HostingAddonController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Ecommerce/Provisioning/HostingAddonController.cs
similarity index 100%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Ecommerce/Provisioning/HostingAddonController.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Ecommerce/Provisioning/HostingAddonController.cs
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Ecommerce/Provisioning/HostingPackageController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Ecommerce/Provisioning/HostingPackageController.cs
similarity index 96%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Ecommerce/Provisioning/HostingPackageController.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Ecommerce/Provisioning/HostingPackageController.cs
index 196c6f88..dca4232f 100644
--- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Ecommerce/Provisioning/HostingPackageController.cs
+++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Ecommerce/Provisioning/HostingPackageController.cs
@@ -162,7 +162,8 @@ namespace WebsitePanel.Ecommerce.EnterpriseServer
TaskManager.WriteParameter(USERNAME_PARAM, context.ConsumerInfo[ContractAccount.USERNAME]);
TaskManager.WriteParameter(SVC_PARAM, context.ServiceInfo.ServiceName);
TaskManager.WriteParameter(SVC_ID_PARAM, context.ServiceInfo.ServiceId);
- TaskManager.TaskParameters[SystemTaskParams.PARAM_SEND_EMAIL] = context.SendEmail;
+
+ TaskManager.UpdateParam(SystemTaskParams.PARAM_SEND_EMAIL, context.SendEmail);
// 0. Do security checks
if (!CheckOperationClientPermissions(result))
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Ecommerce/Provisioning/IServiceProvisioning.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Ecommerce/Provisioning/IServiceProvisioning.cs
similarity index 100%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Ecommerce/Provisioning/IServiceProvisioning.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Ecommerce/Provisioning/IServiceProvisioning.cs
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Ecommerce/Provisioning/ProvisioningContext.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Ecommerce/Provisioning/ProvisioningContext.cs
similarity index 100%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Ecommerce/Provisioning/ProvisioningContext.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Ecommerce/Provisioning/ProvisioningContext.cs
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Ecommerce/Provisioning/ServiceProvisioningBase.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Ecommerce/Provisioning/ServiceProvisioningBase.cs
similarity index 92%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Ecommerce/Provisioning/ServiceProvisioningBase.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Ecommerce/Provisioning/ServiceProvisioningBase.cs
index 50673c48..1988b103 100644
--- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Ecommerce/Provisioning/ServiceProvisioningBase.cs
+++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Ecommerce/Provisioning/ServiceProvisioningBase.cs
@@ -235,10 +235,13 @@ namespace WebsitePanel.Ecommerce.EnterpriseServer
protected void SetOutboundParameters(ProvisioningContext context)
{
// set task outbound parameters
- TaskManager.TaskParameters[SystemTaskParams.PARAM_SERVICE] = context.ServiceInfo;
- TaskManager.TaskParameters[SystemTaskParams.PARAM_CONTRACT] = context.ContractInfo;
- TaskManager.TaskParameters[SystemTaskParams.PARAM_CONTRACT_ACCOUNT] = context.ConsumerInfo;
- TaskManager.TaskParameters[SystemTaskParams.PARAM_SEND_EMAIL] = context.SendEmail;
+ Hashtable parameters = new Hashtable();
+ parameters.Add(SystemTaskParams.PARAM_SERVICE, context.ServiceInfo);
+ parameters.Add(SystemTaskParams.PARAM_CONTRACT, context.ContractInfo);
+ parameters.Add(SystemTaskParams.PARAM_CONTRACT_ACCOUNT, context.ConsumerInfo);
+ parameters.Add(SystemTaskParams.PARAM_SEND_EMAIL, context.SendEmail);
+
+ TaskManager.UpdateParams(parameters);
}
}
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Ecommerce/ServiceController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Ecommerce/ServiceController.cs
similarity index 100%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Ecommerce/ServiceController.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Ecommerce/ServiceController.cs
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Ecommerce/ServiceHandlers/ServiceHandlerController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Ecommerce/ServiceHandlers/ServiceHandlerController.cs
similarity index 100%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Ecommerce/ServiceHandlers/ServiceHandlerController.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Ecommerce/ServiceHandlers/ServiceHandlerController.cs
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Ecommerce/StorefrontController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Ecommerce/StorefrontController.cs
similarity index 100%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Ecommerce/StorefrontController.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Ecommerce/StorefrontController.cs
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Ecommerce/StorehouseController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Ecommerce/StorehouseController.cs
similarity index 95%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Ecommerce/StorehouseController.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Ecommerce/StorehouseController.cs
index 737fdb5c..6ea4ddc6 100644
--- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Ecommerce/StorehouseController.cs
+++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Ecommerce/StorehouseController.cs
@@ -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;
}
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Ecommerce/SystemPluginController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Ecommerce/SystemPluginController.cs
similarity index 96%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Ecommerce/SystemPluginController.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Ecommerce/SystemPluginController.cs
index c9f01256..e93e8cf4 100644
--- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Ecommerce/SystemPluginController.cs
+++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Ecommerce/SystemPluginController.cs
@@ -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);
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Ecommerce/TaskEventHandlers/SendEmailNotification.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Ecommerce/TaskEventHandlers/SendEmailNotification.cs
similarity index 81%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Ecommerce/TaskEventHandlers/SendEmailNotification.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Ecommerce/TaskEventHandlers/SendEmailNotification.cs
index d13af554..114c09e6 100644
--- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Ecommerce/TaskEventHandlers/SendEmailNotification.cs
+++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Ecommerce/TaskEventHandlers/SendEmailNotification.cs
@@ -45,9 +45,11 @@ namespace WebsitePanel.Ecommerce.EnterpriseServer.TaskEventHandlers
///
public override void OnComplete()
{
- if (!TaskManager.HasErrors)
+ BackgroundTask topTask = 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 invoiceLines = (List)TaskManager.TaskParameters[SystemTaskParams.PARAM_INVOICE_LINES];
- KeyValueBunch extraArgs = (KeyValueBunch)TaskManager.TaskParameters[SystemTaskParams.PARAM_EXTRA_ARGS];
+ Contract contract = (Contract)topTask.GetParamValue(SystemTaskParams.PARAM_CONTRACT);
+ Invoice invoice = (Invoice)topTask.GetParamValue(SystemTaskParams.PARAM_INVOICE);
+ List invoiceLines = (List)topTask.GetParamValue(SystemTaskParams.PARAM_INVOICE_LINES);
+ KeyValueBunch extraArgs = (KeyValueBunch)topTask.GetParamValue(SystemTaskParams.PARAM_EXTRA_ARGS);
// modify invoice direct url
if (extraArgs != null && !String.IsNullOrEmpty(extraArgs["InvoiceDirectURL"]))
extraArgs["InvoiceDirectURL"] += "&InvoiceId=" + invoice.InvoiceId;
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Ecommerce/TaskEventHandlers/SystemTriggersAgent.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Ecommerce/TaskEventHandlers/SystemTriggersAgent.cs
similarity index 82%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Ecommerce/TaskEventHandlers/SystemTriggersAgent.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Ecommerce/TaskEventHandlers/SystemTriggersAgent.cs
index 1ce637c4..b7b8efec 100644
--- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Ecommerce/TaskEventHandlers/SystemTriggersAgent.cs
+++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Ecommerce/TaskEventHandlers/SystemTriggersAgent.cs
@@ -44,9 +44,11 @@ namespace WebsitePanel.Ecommerce.EnterpriseServer.TaskEventHandlers
public override void OnComplete()
{
- if (!TaskManager.HasErrors)
+ BackgroundTask topTask = 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)
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Ecommerce/TriggerSystem/CommonTrigger.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Ecommerce/TriggerSystem/CommonTrigger.cs
similarity index 100%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Ecommerce/TriggerSystem/CommonTrigger.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Ecommerce/TriggerSystem/CommonTrigger.cs
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Ecommerce/TriggerSystem/TriggerController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Ecommerce/TriggerSystem/TriggerController.cs
similarity index 100%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Ecommerce/TriggerSystem/TriggerController.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Ecommerce/TriggerSystem/TriggerController.cs
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/ExchangeServer/ExchangeServerController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/ExchangeServer/ExchangeServerController.cs
similarity index 94%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/ExchangeServer/ExchangeServerController.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/ExchangeServer/ExchangeServerController.cs
index d034cabb..e296c57e 100644
--- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/ExchangeServer/ExchangeServerController.cs
+++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/ExchangeServer/ExchangeServerController.cs
@@ -171,8 +171,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion
// place log record
- TaskManager.StartTask("EXCHANGE", "GET_ORG_STATS");
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("EXCHANGE", "GET_ORG_STATS", itemId);
try
{
@@ -260,8 +259,7 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck;
// place log record
- TaskManager.StartTask("EXCHANGE", "CALCULATE_DISKSPACE");
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("EXCHANGE", "CALCULATE_DISKSPACE", itemId);
try
{
@@ -348,8 +346,7 @@ namespace WebsitePanel.EnterpriseServer
private static int ExtendToExchangeOrganization(ref Organization org)
{
// place log record
- TaskManager.StartTask("EXCHANGE", "CREATE_ORG", org.Name);
- TaskManager.TaskParameters["Organization ID"] = org.OrganizationId;
+ TaskManager.StartTask("EXCHANGE", "CREATE_ORG", org.Name, new BackgroundTaskParameter("Organization ID", org.OrganizationId));
try
{
@@ -575,8 +572,7 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck;
// place log record
- TaskManager.StartTask("EXCHANGE", "DELETE_ORG");
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("EXCHANGE", "DELETE_ORG", itemId);
try
{
@@ -613,8 +609,7 @@ namespace WebsitePanel.EnterpriseServer
public static Organization GetOrganizationStorageLimits(int itemId)
{
// place log record
- TaskManager.StartTask("EXCHANGE", "GET_ORG_LIMITS");
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("EXCHANGE", "GET_ORG_LIMITS", itemId);
try
{
@@ -638,8 +633,7 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck;
// place log record
- TaskManager.StartTask("EXCHANGE", "SET_ORG_LIMITS");
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("EXCHANGE", "SET_ORG_LIMITS", itemId);
try
{
@@ -724,8 +718,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion
// place log record
- TaskManager.StartTask("EXCHANGE", "GET_MAILBOXES_STATS");
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("EXCHANGE", "GET_MAILBOXES_STATS", itemId);
try
{
@@ -753,8 +746,7 @@ namespace WebsitePanel.EnterpriseServer
public static ExchangeMailboxStatistics GetMailboxStatistics(int itemId, int accountId)
{
// place log record
- TaskManager.StartTask("EXCHANGE", "GET_MAILBOX_STATS");
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("EXCHANGE", "GET_MAILBOX_STATS", itemId);
try
{
@@ -818,8 +810,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion
// place log record
- TaskManager.StartTask("EXCHANGE", "GET_FOLDERS_STATS");
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("EXCHANGE", "GET_FOLDERS_STATS", itemId);
try
{
@@ -865,8 +856,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion
// place log record
- TaskManager.StartTask("EXCHANGE", "GET_ACTIVESYNC_POLICY");
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("EXCHANGE", "GET_ACTIVESYNC_POLICY", itemId);
try
{
@@ -917,8 +907,7 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck;
// place log record
- TaskManager.StartTask("EXCHANGE", "SET_ACTIVESYNC_POLICY");
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("EXCHANGE", "SET_ACTIVESYNC_POLICY", itemId);
try
{
@@ -1171,8 +1160,7 @@ namespace WebsitePanel.EnterpriseServer
public static bool CheckAccountCredentials(int itemId, string email, string password)
{
// place log record
- TaskManager.StartTask("EXCHANGE", "AUTHENTICATE", email);
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("EXCHANGE", "AUTHENTICATE", email, itemId);
try
{
@@ -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 parameters = new List();
+ parameters.Add(new BackgroundTaskParameter("Domain ID", domainId));
+ parameters.Add(new BackgroundTaskParameter("Domain Type", domainType.ToString()));
+
+ TaskManager.StartTask("EXCHANGE", "CHANGE_DOMAIN_TYPE", itemId, parameters);
try
{
@@ -1527,9 +1515,7 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck;
// place log record
- TaskManager.StartTask("EXCHANGE", "DELETE_DOMAIN");
- TaskManager.TaskParameters["Domain ID"] = domainId;
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("EXCHANGE", "DELETE_DOMAIN", itemId, new BackgroundTaskParameter("Domain ID", domainId));
try
{
@@ -1632,8 +1618,8 @@ namespace WebsitePanel.EnterpriseServer
// place log record
- TaskManager.StartTask("EXCHANGE", "CREATE_MAILBOX");
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("EXCHANGE", "CREATE_MAILBOX", itemId);
+
bool userCreated = false;
Organization org = null;
try
@@ -1824,8 +1810,7 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck;
// place log record
- TaskManager.StartTask("EXCHANGE", "DISABLE_MAILBOX");
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("EXCHANGE", "DISABLE_MAILBOX", itemId);
try
{
@@ -1873,8 +1858,7 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck;
// place log record
- TaskManager.StartTask("EXCHANGE", "DELETE_MAILBOX");
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("EXCHANGE", "DELETE_MAILBOX", itemId);
try
{
@@ -1953,8 +1937,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion
// place log record
- TaskManager.StartTask("EXCHANGE", "GET_MAILBOX_GENERAL");
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("EXCHANGE", "GET_MAILBOX_GENERAL", itemId);
try
{
@@ -1989,8 +1972,7 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck;
// place log record
- TaskManager.StartTask("EXCHANGE", "UPDATE_MAILBOX_GENERAL");
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("EXCHANGE", "UPDATE_MAILBOX_GENERAL", itemId);
try
{
@@ -2036,8 +2018,7 @@ namespace WebsitePanel.EnterpriseServer
public static ExchangeEmailAddress[] GetMailboxEmailAddresses(int itemId, int accountId)
{
// place log record
- TaskManager.StartTask("EXCHANGE", "GET_MAILBOX_ADDRESSES");
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("EXCHANGE", "GET_MAILBOX_ADDRESSES", itemId);
try
{
@@ -2060,8 +2041,7 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck;
// place log record
- TaskManager.StartTask("EXCHANGE", "ADD_MAILBOX_ADDRESS");
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("EXCHANGE", "ADD_MAILBOX_ADDRESS", itemId);
try
{
@@ -2123,8 +2103,7 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck;
// place log record
- TaskManager.StartTask("EXCHANGE", "SET_PRIMARY_MAILBOX_ADDRESS");
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("EXCHANGE", "SET_PRIMARY_MAILBOX_ADDRESS", itemId);
try
{
@@ -2183,8 +2162,7 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck;
// place log record
- TaskManager.StartTask("EXCHANGE", "DELETE_MAILBOX_ADDRESSES");
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("EXCHANGE", "DELETE_MAILBOX_ADDRESSES", itemId);
try
{
@@ -2238,8 +2216,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion
// place log record
- TaskManager.StartTask("EXCHANGE", "GET_MAILBOX_MAILFLOW");
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("EXCHANGE", "GET_MAILBOX_MAILFLOW", itemId);
try
{
@@ -2278,8 +2255,7 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck;
// place log record
- TaskManager.StartTask("EXCHANGE", "UPDATE_MAILBOX_MAILFLOW");
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("EXCHANGE", "UPDATE_MAILBOX_MAILFLOW", itemId);
try
{
@@ -2331,8 +2307,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion
// place log record
- TaskManager.StartTask("EXCHANGE", "GET_MAILBOX_ADVANCED");
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("EXCHANGE", "GET_MAILBOX_ADVANCED", itemId);
try
{
@@ -2368,8 +2343,7 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck;
// place log record
- TaskManager.StartTask("EXCHANGE", "UPDATE_MAILBOX_GENERAL");
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("EXCHANGE", "UPDATE_MAILBOX_GENERAL", itemId);
try
{
@@ -2539,8 +2513,7 @@ namespace WebsitePanel.EnterpriseServer
public static ExchangeMailbox GetMailboxPermissions(int itemId, int accountId)
{
// place log record
- TaskManager.StartTask("EXCHANGE", "GET_MAILBOX_PERMISSIONS");
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("EXCHANGE", "GET_MAILBOX_PERMISSIONS", itemId);
try
{
@@ -2576,8 +2549,7 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck;
// place log record
- TaskManager.StartTask("EXCHANGE", "SET_MAILBOX_PERMISSIONS");
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("EXCHANGE", "SET_MAILBOX_PERMISSIONS", itemId);
try
{
@@ -2625,8 +2597,7 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck;
// place log record
- TaskManager.StartTask("EXCHANGE", "SET_MAILBOXPLAN");
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("EXCHANGE", "SET_MAILBOXPLAN", itemId);
try
{
@@ -2736,8 +2707,7 @@ namespace WebsitePanel.EnterpriseServer
public static List GetExchangeMailboxPlans(int itemId)
{
// place log record
- TaskManager.StartTask("EXCHANGE", "GET_EXCHANGE_MAILBOXPLANS");
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("EXCHANGE", "GET_EXCHANGE_MAILBOXPLANS", itemId);
try
{
@@ -2819,8 +2789,7 @@ namespace WebsitePanel.EnterpriseServer
{
// place log record
- TaskManager.StartTask("EXCHANGE", "GET_EXCHANGE_MAILBOXPLAN");
- TaskManager.ItemId = mailboxPlanId;
+ TaskManager.StartTask("EXCHANGE", "GET_EXCHANGE_MAILBOXPLAN", mailboxPlanId);
try
{
@@ -2840,8 +2809,7 @@ namespace WebsitePanel.EnterpriseServer
public static int AddExchangeMailboxPlan(int itemID, ExchangeMailboxPlan mailboxPlan)
{
// place log record
- TaskManager.StartTask("EXCHANGE", "ADD_EXCHANGE_MAILBOXPLAN");
- TaskManager.ItemId = itemID;
+ TaskManager.StartTask("EXCHANGE", "ADD_EXCHANGE_MAILBOXPLAN", itemID);
try
{
@@ -2910,8 +2878,7 @@ namespace WebsitePanel.EnterpriseServer
public static int UpdateExchangeMailboxPlan(int itemID, ExchangeMailboxPlan mailboxPlan)
{
// place log record
- TaskManager.StartTask("EXCHANGE", "UPDATE_EXCHANGE_MAILBOXPLAN");
- TaskManager.ItemId = itemID;
+ TaskManager.StartTask("EXCHANGE", "UPDATE_EXCHANGE_MAILBOXPLAN", itemID);
try
{
@@ -2983,8 +2950,7 @@ namespace WebsitePanel.EnterpriseServer
public static int DeleteExchangeMailboxPlan(int itemID, int mailboxPlanId)
{
- TaskManager.StartTask("EXCHANGE", "DELETE_EXCHANGE_MAILBOXPLAN");
- TaskManager.ItemId = itemID;
+ TaskManager.StartTask("EXCHANGE", "DELETE_EXCHANGE_MAILBOXPLAN", itemID);
try
{
@@ -3005,8 +2971,7 @@ namespace WebsitePanel.EnterpriseServer
public static void SetOrganizationDefaultExchangeMailboxPlan(int itemId, int mailboxPlanId)
{
- TaskManager.StartTask("EXCHANGE", "SET_EXCHANGE_MAILBOXPLAN");
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("EXCHANGE", "SET_EXCHANGE_MAILBOXPLAN", itemId);
try
{
@@ -3046,8 +3011,7 @@ namespace WebsitePanel.EnterpriseServer
return BusinessErrorCodes.ERROR_EXCHANGE_CONTACTS_QUOTA_LIMIT;
// place log record
- TaskManager.StartTask("EXCHANGE", "CREATE_CONTACT");
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("EXCHANGE", "CREATE_CONTACT", itemId);
try
{
@@ -3114,10 +3078,9 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck;
// place log record
- TaskManager.StartTask("EXCHANGE", "DELETE_CONTACT");
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("EXCHANGE", "DELETE_CONTACT", itemId);
- try
+ try
{
// load organization
Organization org = GetOrganization(itemId);
@@ -3170,8 +3133,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion
// place log record
- TaskManager.StartTask("EXCHANGE", "GET_CONTACT_GENERAL");
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("EXCHANGE", "GET_CONTACT_GENERAL", itemId);
try
{
@@ -3211,8 +3173,7 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck;
// place log record
- TaskManager.StartTask("EXCHANGE", "UPDATE_CONTACT_GENERAL");
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("EXCHANGE", "UPDATE_CONTACT_GENERAL", itemId);
try
{
@@ -3292,8 +3253,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion
// place log record
- TaskManager.StartTask("EXCHANGE", "GET_CONTACT_MAILFLOW");
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("EXCHANGE", "GET_CONTACT_MAILFLOW", itemId);
try
{
@@ -3331,8 +3291,7 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck;
// place log record
- TaskManager.StartTask("EXCHANGE", "UPDATE_CONTACT_MAILFLOW");
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("EXCHANGE", "UPDATE_CONTACT_MAILFLOW", itemId);
try
{
@@ -3384,8 +3343,7 @@ namespace WebsitePanel.EnterpriseServer
return BusinessErrorCodes.ERROR_EXCHANGE_DLISTS_QUOTA_LIMIT;
// place log record
- TaskManager.StartTask("EXCHANGE", "CREATE_DISTR_LIST");
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("EXCHANGE", "CREATE_DISTR_LIST", itemId);
try
{
@@ -3465,8 +3423,7 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck;
// place log record
- TaskManager.StartTask("EXCHANGE", "DELETE_DISTR_LIST");
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("EXCHANGE", "DELETE_DISTR_LIST", itemId);
try
{
@@ -3520,8 +3477,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion
// place log record
- TaskManager.StartTask("EXCHANGE", "GET_DISTR_LIST_GENERAL");
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("EXCHANGE", "GET_DISTR_LIST_GENERAL", itemId);
try
{
@@ -3558,8 +3514,7 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck;
// place log record
- TaskManager.StartTask("EXCHANGE", "UPDATE_DISTR_LIST_GENERAL");
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("EXCHANGE", "UPDATE_DISTR_LIST_GENERAL", itemId);
try
{
@@ -3621,8 +3576,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion
// place log record
- TaskManager.StartTask("EXCHANGE", "GET_DISTR_LIST_MAILFLOW");
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("EXCHANGE", "GET_DISTR_LIST_MAILFLOW", itemId);
try
{
@@ -3660,8 +3614,7 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck;
// place log record
- TaskManager.StartTask("EXCHANGE", "UPDATE_DISTR_LIST_MAILFLOW");
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("EXCHANGE", "UPDATE_DISTR_LIST_MAILFLOW", itemId);
try
{
@@ -3707,8 +3660,7 @@ namespace WebsitePanel.EnterpriseServer
public static ExchangeEmailAddress[] GetDistributionListEmailAddresses(int itemId, int accountId)
{
// place log record
- TaskManager.StartTask("EXCHANGE", "GET_DISTR_LIST_ADDRESSES");
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("EXCHANGE", "GET_DISTR_LIST_ADDRESSES", itemId);
try
{
@@ -3731,8 +3683,7 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck;
// place log record
- TaskManager.StartTask("EXCHANGE", "ADD_DISTR_LIST_ADDRESS");
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("EXCHANGE", "ADD_DISTR_LIST_ADDRESS", itemId);
try
{
@@ -3786,8 +3737,7 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck;
// place log record
- TaskManager.StartTask("EXCHANGE", "SET_PRIMARY_DISTR_LIST_ADDRESS");
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("EXCHANGE", "SET_PRIMARY_DISTR_LIST_ADDRESS", itemId);
try
{
@@ -3839,8 +3789,7 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck;
// place log record
- TaskManager.StartTask("EXCHANGE", "DELETE_DISTR_LIST_ADDRESSES");
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("EXCHANGE", "DELETE_DISTR_LIST_ADDRESSES", itemId);
try
{
@@ -4020,8 +3969,7 @@ namespace WebsitePanel.EnterpriseServer
return BusinessErrorCodes.ERROR_EXCHANGE_PFOLDERS_QUOTA_LIMIT;
// place log record
- TaskManager.StartTask("EXCHANGE", "CREATE_PUBLIC_FOLDER");
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("EXCHANGE", "CREATE_PUBLIC_FOLDER", itemId);
try
{
@@ -4128,8 +4076,7 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck;
// place log record
- TaskManager.StartTask("EXCHANGE", "DELETE_PUBLIC_FOLDER");
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("EXCHANGE", "DELETE_PUBLIC_FOLDER", itemId);
try
{
@@ -4178,8 +4125,7 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck;
// place log record
- TaskManager.StartTask("EXCHANGE", "ENABLE_MAIL_PUBLIC_FOLDER");
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("EXCHANGE", "ENABLE_MAIL_PUBLIC_FOLDER", itemId);
try
{
@@ -4245,8 +4191,7 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck;
// place log record
- TaskManager.StartTask("EXCHANGE", "DISABLE_MAIL_PUBLIC_FOLDER");
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("EXCHANGE", "DISABLE_MAIL_PUBLIC_FOLDER", itemId);
try
{
@@ -4318,8 +4263,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion
// place log record
- TaskManager.StartTask("EXCHANGE", "GET_PUBLIC_FOLDER_GENERAL");
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("EXCHANGE", "GET_PUBLIC_FOLDER_GENERAL", itemId);
try
{
@@ -4357,8 +4301,7 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck;
// place log record
- TaskManager.StartTask("EXCHANGE", "UPDATE_PUBLIC_FOLDER_GENERAL");
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("EXCHANGE", "UPDATE_PUBLIC_FOLDER_GENERAL", itemId);
try
{
@@ -4431,8 +4374,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion
// place log record
- TaskManager.StartTask("EXCHANGE", "GET_PUBLIC_FOLDER_MAILFLOW");
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("EXCHANGE", "GET_PUBLIC_FOLDER_MAILFLOW", itemId);
try
{
@@ -4470,8 +4412,7 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck;
// place log record
- TaskManager.StartTask("EXCHANGE", "UPDATE_PUBLIC_FOLDER_MAILFLOW");
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("EXCHANGE", "UPDATE_PUBLIC_FOLDER_MAILFLOW", itemId);
try
{
@@ -4511,8 +4452,7 @@ namespace WebsitePanel.EnterpriseServer
public static ExchangeEmailAddress[] GetPublicFolderEmailAddresses(int itemId, int accountId)
{
// place log record
- TaskManager.StartTask("EXCHANGE", "GET_PUBLIC_FOLDER_ADDRESSES");
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("EXCHANGE", "GET_PUBLIC_FOLDER_ADDRESSES", itemId);
try
{
@@ -4535,8 +4475,7 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck;
// place log record
- TaskManager.StartTask("EXCHANGE", "ADD_PUBLIC_FOLDER_ADDRESS");
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("EXCHANGE", "ADD_PUBLIC_FOLDER_ADDRESS", itemId);
try
{
@@ -4587,8 +4526,7 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck;
// place log record
- TaskManager.StartTask("EXCHANGE", "SET_PRIMARY_PUBLIC_FOLDER_ADDRESS");
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("EXCHANGE", "SET_PRIMARY_PUBLIC_FOLDER_ADDRESS", itemId);
try
{
@@ -4636,8 +4574,7 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck;
// place log record
- TaskManager.StartTask("EXCHANGE", "DELETE_PUBLIC_FOLDER_ADDRESSES");
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("EXCHANGE", "DELETE_PUBLIC_FOLDER_ADDRESSES", itemId);
try
{
@@ -4817,8 +4754,7 @@ namespace WebsitePanel.EnterpriseServer
public static ExchangeMobileDevice[] GetMobileDevices(int itemId, int accountId)
{
// place log record
- TaskManager.StartTask("EXCHANGE", "GET_MOBILE_DEVICES");
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("EXCHANGE", "GET_MOBILE_DEVICES", itemId);
try
{
@@ -4848,8 +4784,7 @@ namespace WebsitePanel.EnterpriseServer
public static ExchangeMobileDevice GetMobileDevice(int itemId, string deviceId)
{
// place log record
- TaskManager.StartTask("EXCHANGE", "GET_MOBILE_DEVICE");
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("EXCHANGE", "GET_MOBILE_DEVICE", itemId);
try
{
@@ -4876,8 +4811,7 @@ namespace WebsitePanel.EnterpriseServer
public static void WipeDataFromDevice(int itemId, string deviceId)
{
// place log record
- TaskManager.StartTask("EXCHANGE", "WIPE_DATA_FROM_DEVICE");
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("EXCHANGE", "WIPE_DATA_FROM_DEVICE", itemId);
try
{
@@ -4904,8 +4838,7 @@ namespace WebsitePanel.EnterpriseServer
public static void CancelRemoteWipeRequest(int itemId, string deviceId)
{
// place log record
- TaskManager.StartTask("EXCHANGE", "CANCEL_REMOTE_WIPE_REQUEST");
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("EXCHANGE", "CANCEL_REMOTE_WIPE_REQUEST", itemId);
try
{
@@ -4932,8 +4865,7 @@ namespace WebsitePanel.EnterpriseServer
public static void RemoveDevice(int itemId, string deviceId)
{
// place log record
- TaskManager.StartTask("EXCHANGE", "REMOVE_DEVICE");
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("EXCHANGE", "REMOVE_DEVICE", itemId);
try
{
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Files/FilesController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Files/FilesController.cs
similarity index 94%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Files/FilesController.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Files/FilesController.cs
index e9dc8e48..74dd8d78 100644
--- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Files/FilesController.cs
+++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Files/FilesController.cs
@@ -169,8 +169,7 @@ namespace WebsitePanel.EnterpriseServer
if (packageCheck < 0) return packageCheck;
// place log record
- TaskManager.StartTask("FILES", "UPDATE_BINARY_CONTENT", path);
- TaskManager.ItemId = packageId;
+ TaskManager.StartTask("FILES", "UPDATE_BINARY_CONTENT", path, packageId);
try
{
@@ -204,8 +203,7 @@ namespace WebsitePanel.EnterpriseServer
if (packageCheck < 0) return packageCheck;
// place log record
- TaskManager.StartTask("FILES", "UPDATE_BINARY_CONTENT", path);
- TaskManager.ItemId = packageId;
+ TaskManager.StartTask("FILES", "UPDATE_BINARY_CONTENT", path, packageId);
try
{
@@ -260,8 +258,8 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck;
// place log record
- TaskManager.StartTask("FILES", "DELETE_FILES");
- TaskManager.ItemId = packageId;
+ TaskManager.StartTask("FILES", "DELETE_FILES", packageId);
+
if (files != null)
{
foreach (string file in files)
@@ -302,8 +300,7 @@ namespace WebsitePanel.EnterpriseServer
if (packageCheck < 0) return packageCheck;
// place log record
- TaskManager.StartTask("FILES", "CREATE_FILE", path);
- TaskManager.ItemId = packageId;
+ TaskManager.StartTask("FILES", "CREATE_FILE", path, packageId);
try
{
@@ -356,8 +353,7 @@ namespace WebsitePanel.EnterpriseServer
if (packageCheck < 0) return packageCheck;
// place log record
- TaskManager.StartTask("FILES", "CREATE_FOLDER", path);
- TaskManager.ItemId = packageId;
+ TaskManager.StartTask("FILES", "CREATE_FOLDER", path, packageId);
try
{
@@ -396,8 +392,7 @@ namespace WebsitePanel.EnterpriseServer
if (!DirectoryExists(packageId, destFolder)) return BusinessErrorCodes.ERROR_FILE_DEST_FOLDER_NONEXISTENT;
// place log record
- TaskManager.StartTask("FILES", "COPY_FILES");
- TaskManager.ItemId = packageId;
+ TaskManager.StartTask("FILES", "COPY_FILES", packageId);
TaskManager.WriteParameter("Destination folder", destFolder);
if (files != null)
{
@@ -455,8 +450,8 @@ namespace WebsitePanel.EnterpriseServer
if (!DirectoryExists(packageId, destFolder)) return BusinessErrorCodes.ERROR_FILE_DEST_FOLDER_NONEXISTENT;
// place log record
- TaskManager.StartTask("FILES", "MOVE_FILES");
- TaskManager.ItemId = packageId;
+ TaskManager.StartTask("FILES", "MOVE_FILES", packageId);
+
TaskManager.WriteParameter("Destination folder", destFolder);
if (files != null)
{
@@ -514,8 +509,8 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck;
// place log record
- TaskManager.StartTask("FILES", "RENAME_FILE", oldPath);
- TaskManager.ItemId = packageId;
+ TaskManager.StartTask("FILES", "RENAME_FILE", oldPath, packageId);
+
TaskManager.WriteParameter("New name", newPath);
try
@@ -551,8 +546,8 @@ namespace WebsitePanel.EnterpriseServer
if (packageCheck < 0) return null;
// place log record
- TaskManager.StartTask("FILES", "UNZIP_FILES");
- TaskManager.ItemId = packageId;
+ TaskManager.StartTask("FILES", "UNZIP_FILES", packageId);
+
if (files != null)
{
foreach (string file in files)
@@ -596,8 +591,8 @@ namespace WebsitePanel.EnterpriseServer
if (packageCheck < 0) return packageCheck;
// place log record
- TaskManager.StartTask("FILES", "ZIP_FILES", archivePath);
- TaskManager.ItemId = packageId;
+ TaskManager.StartTask("FILES", "ZIP_FILES", archivePath, packageId);
+
if (files != null)
{
foreach (string file in files)
@@ -647,8 +642,8 @@ namespace WebsitePanel.EnterpriseServer
if (packageCheck < 0) return packageCheck;
// place log record
- TaskManager.StartTask("FILES", "ZIP_FILES", archivePath);
- TaskManager.ItemId = packageId;
+ TaskManager.StartTask("FILES", "ZIP_FILES", archivePath, packageId);
+
if (files != null)
{
foreach (string file in files)
@@ -706,8 +701,7 @@ namespace WebsitePanel.EnterpriseServer
if (packageCheck < 0) return packageCheck;
// place log record
- TaskManager.StartTask("FILES", "CREATE_ACCESS_DATABASE", dbPath);
- TaskManager.ItemId = packageId;
+ TaskManager.StartTask("FILES", "CREATE_ACCESS_DATABASE", dbPath, packageId);
try
{
@@ -737,8 +731,7 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck;
// place log record
- TaskManager.StartTask("SPACE", "CALCULATE_DISKSPACE");
- TaskManager.ItemId = packageId;
+ TaskManager.StartTask("SPACE", "CALCULATE_DISKSPACE", packageId);
try
{
@@ -813,8 +806,7 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck;
// place log record
- TaskManager.StartTask("FILES", "SET_PERMISSIONS", path);
- TaskManager.ItemId = packageId;
+ TaskManager.StartTask("FILES", "SET_PERMISSIONS", path, packageId);
try
{
@@ -925,8 +917,7 @@ namespace WebsitePanel.EnterpriseServer
if (packageCheck < 0) return packageCheck;
// place log record
- TaskManager.StartTask("FILES", "SET_QUOTA_ON_FOLDER", path);
- TaskManager.ItemId = packageId;
+ TaskManager.StartTask("FILES", "SET_QUOTA_ON_FOLDER", path, packageId);
try
{
@@ -1046,8 +1037,7 @@ namespace WebsitePanel.EnterpriseServer
if (packageCheck < 0) return packageCheck;
// place log record
- TaskManager.StartTask("FILES", "DELETE_DIRECTORY_RECURSIVE", rootPath);
- TaskManager.ItemId = packageId;
+ TaskManager.StartTask("FILES", "DELETE_DIRECTORY_RECURSIVE", rootPath, packageId);
try
{
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/FtpServers/FtpServerController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/FtpServers/FtpServerController.cs
similarity index 96%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/FtpServers/FtpServerController.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/FtpServers/FtpServerController.cs
index 4c174bf0..25541268 100644
--- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/FtpServers/FtpServerController.cs
+++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/FtpServers/FtpServerController.cs
@@ -215,8 +215,8 @@ namespace WebsitePanel.EnterpriseServer
if (packageCheck < 0) return packageCheck;
// place log record
- TaskManager.StartTask("FTP_ACCOUNT", "UPDATE", origItem.Name);
- TaskManager.ItemId = item.Id;
+ TaskManager.StartTask("FTP_ACCOUNT", "UPDATE", origItem.Name, item.Id);
+
TaskManager.WriteParameter("Folder", item.Folder);
TaskManager.WriteParameter("CanRead", item.CanRead);
TaskManager.WriteParameter("CanWrite", item.CanWrite);
@@ -279,8 +279,7 @@ namespace WebsitePanel.EnterpriseServer
return BusinessErrorCodes.ERROR_FTP_PACKAGE_ITEM_NOT_FOUND;
// place log record
- TaskManager.StartTask("FTP_ACCOUNT", "DELETE", origItem.Name);
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("FTP_ACCOUNT", "DELETE", origItem.Name, itemId);
try
{
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/HeliconZoo/HeliconZooController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/HeliconZoo/HeliconZooController.cs
similarity index 100%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/HeliconZoo/HeliconZooController.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/HeliconZoo/HeliconZooController.cs
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/HostedSolution/BlackBerryController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/HostedSolution/BlackBerryController.cs
similarity index 100%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/HostedSolution/BlackBerryController.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/HostedSolution/BlackBerryController.cs
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/HostedSolution/CRMController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/HostedSolution/CRMController.cs
similarity index 100%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/HostedSolution/CRMController.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/HostedSolution/CRMController.cs
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/HostedSolution/LyncController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/HostedSolution/LyncController.cs
similarity index 95%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/HostedSolution/LyncController.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/HostedSolution/LyncController.cs
index a72d5b59..e78b8a10 100644
--- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/HostedSolution/LyncController.cs
+++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/HostedSolution/LyncController.cs
@@ -419,8 +419,7 @@ namespace WebsitePanel.EnterpriseServer.Code.HostedSolution
if (accountCheck < 0) return accountCheck;
// place log record
- TaskManager.StartTask("LYNC", "DELETE_ORG");
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("LYNC", "DELETE_ORG", itemId);
try
{
@@ -622,8 +621,7 @@ namespace WebsitePanel.EnterpriseServer.Code.HostedSolution
public static List GetLyncUserPlans(int itemId)
{
// place log record
- TaskManager.StartTask("LYNC", "GET_LYNC_LYNCUSERPLANS");
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("LYNC", "GET_LYNC_LYNCUSERPLANS", itemId);
try
{
@@ -705,8 +703,7 @@ namespace WebsitePanel.EnterpriseServer.Code.HostedSolution
{
// place log record
- TaskManager.StartTask("LYNC", "GET_LYNC_LYNCUSERPLAN");
- TaskManager.ItemId = lyncUserPlanId;
+ TaskManager.StartTask("LYNC", "GET_LYNC_LYNCUSERPLAN", lyncUserPlanId);
try
{
@@ -729,8 +726,7 @@ namespace WebsitePanel.EnterpriseServer.Code.HostedSolution
if (accountCheck < 0) return accountCheck;
// place log record
- TaskManager.StartTask("LYNC", "ADD_LYNC_LYNCUSERPLAN");
- TaskManager.ItemId = itemID;
+ TaskManager.StartTask("LYNC", "ADD_LYNC_LYNCUSERPLAN", itemID);
try
{
@@ -770,8 +766,7 @@ namespace WebsitePanel.EnterpriseServer.Code.HostedSolution
if (accountCheck < 0) return accountCheck;
// place log record
- TaskManager.StartTask("LYNC", "ADD_LYNC_LYNCUSERPLAN");
- TaskManager.ItemId = itemID;
+ TaskManager.StartTask("LYNC", "ADD_LYNC_LYNCUSERPLAN", itemID);
try
{
@@ -809,8 +804,7 @@ namespace WebsitePanel.EnterpriseServer.Code.HostedSolution
int accountCheck = SecurityContext.CheckAccount(DemandAccount.NotDemo | DemandAccount.IsActive);
if (accountCheck < 0) return accountCheck;
- TaskManager.StartTask("LYNC", "DELETE_LYNC_LYNCPLAN");
- TaskManager.ItemId = itemID;
+ TaskManager.StartTask("LYNC", "DELETE_LYNC_LYNCPLAN", itemID);
try
{
@@ -834,8 +828,7 @@ namespace WebsitePanel.EnterpriseServer.Code.HostedSolution
int accountCheck = SecurityContext.CheckAccount(DemandAccount.NotDemo | DemandAccount.IsActive);
if (accountCheck < 0) return accountCheck;
- TaskManager.StartTask("LYNC", "SET_LYNC_LYNCUSERPLAN");
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("LYNC", "SET_LYNC_LYNCUSERPLAN", itemId);
try
{
@@ -861,8 +854,7 @@ namespace WebsitePanel.EnterpriseServer.Code.HostedSolution
public static LyncFederationDomain[] GetFederationDomains(int itemId)
{
// place log record
- TaskManager.StartTask("LYNC", "GET_LYNC_FEDERATIONDOMAINS");
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("LYNC", "GET_LYNC_FEDERATIONDOMAINS", itemId);
LyncFederationDomain[] lyncFederationDomains = null;
@@ -889,10 +881,11 @@ namespace WebsitePanel.EnterpriseServer.Code.HostedSolution
public static LyncUserResult AddFederationDomain(int itemId, string domainName, string proxyFqdn)
{
- LyncUserResult res = TaskManager.StartResultTask("LYNC", "ADD_LYNC_FEDERATIONDOMAIN");
- TaskManager.ItemId = itemId;
- TaskManager.TaskParameters["domainName"] = domainName;
- TaskManager.TaskParameters["proxyFqdn"] = proxyFqdn;
+ List parameters = new List();
+ parameters.Add(new BackgroundTaskParameter("domainName", domainName));
+ parameters.Add(new BackgroundTaskParameter("proxyFqdn", proxyFqdn));
+
+ LyncUserResult res = TaskManager.StartResultTask("LYNC", "ADD_LYNC_FEDERATIONDOMAIN", itemId, parameters);
int accountCheck = SecurityContext.CheckAccount(DemandAccount.NotDemo | DemandAccount.IsActive);
@@ -966,9 +959,7 @@ namespace WebsitePanel.EnterpriseServer.Code.HostedSolution
public static LyncUserResult RemoveFederationDomain(int itemId, string domainName)
{
- LyncUserResult res = TaskManager.StartResultTask("LYNC", "REMOVE_LYNC_FEDERATIONDOMAIN");
- TaskManager.ItemId = itemId;
- TaskManager.TaskParameters["domainName"] = domainName;
+ LyncUserResult res = TaskManager.StartResultTask("LYNC", "REMOVE_LYNC_FEDERATIONDOMAIN", itemId, new BackgroundTaskParameter("domainName", domainName));
int accountCheck = SecurityContext.CheckAccount(DemandAccount.NotDemo | DemandAccount.IsActive);
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/HostedSolution/LyncControllerAsync.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/HostedSolution/LyncControllerAsync.cs
similarity index 100%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/HostedSolution/LyncControllerAsync.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/HostedSolution/LyncControllerAsync.cs
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/HostedSolution/OCSController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/HostedSolution/OCSController.cs
similarity index 100%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/HostedSolution/OCSController.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/HostedSolution/OCSController.cs
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/HostedSolution/OrganizationController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/HostedSolution/OrganizationController.cs
similarity index 95%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/HostedSolution/OrganizationController.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/HostedSolution/OrganizationController.cs
index e8eb4767..95d5da6f 100644
--- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/HostedSolution/OrganizationController.cs
+++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/HostedSolution/OrganizationController.cs
@@ -291,9 +291,11 @@ namespace WebsitePanel.EnterpriseServer
return errorCode;
// place log record
- TaskManager.StartTask("ORGANIZATION", "CREATE_ORG", organizationName);
- TaskManager.TaskParameters["Organization ID"] = organizationId;
- TaskManager.TaskParameters["DomainName"] = domainName;
+ List parameters = new List();
+ parameters.Add(new BackgroundTaskParameter("Organization ID", organizationId));
+ parameters.Add(new BackgroundTaskParameter("DomainName", domainName));
+
+ TaskManager.StartTask("ORGANIZATION", "CREATE_ORG", organizationName, parameters);
try
{
@@ -411,9 +413,7 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck;
// place log record
- TaskManager.StartTask("ORGANIZATION", "DELETE_DOMAIN");
- TaskManager.TaskParameters["Domain ID"] = domainId;
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("ORGANIZATION", "DELETE_DOMAIN", itemId, new BackgroundTaskParameter("Domain ID", domainId));
try
{
@@ -586,8 +586,7 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck;
// place log record
- TaskManager.StartTask("ORGANIZATION", "DELETE_ORG");
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("ORGANIZATION", "DELETE_ORG", itemId);
try
{
@@ -869,8 +868,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion
// place log record
- TaskManager.StartTask("ORGANIZATION", "GET_ORG_STATS");
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("ORGANIZATION", "GET_ORG_STATS", itemId);
try
{
@@ -1022,8 +1020,7 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck;
// place log record
- TaskManager.StartTask("ORGANIZATION", "CHANGE_DOMAIN_TYPE", domainId);
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("ORGANIZATION", "CHANGE_DOMAIN_TYPE", domainId, itemId);
try
{
@@ -1060,8 +1057,7 @@ namespace WebsitePanel.EnterpriseServer
return BusinessErrorCodes.ERROR_EXCHANGE_DOMAINS_QUOTA_LIMIT;
// place log record
- TaskManager.StartTask("ORGANIZATION", "ADD_DOMAIN", domainName);
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("ORGANIZATION", "ADD_DOMAIN", domainName, itemId);
try
{
@@ -1291,8 +1287,8 @@ namespace WebsitePanel.EnterpriseServer
// place log record
- TaskManager.StartTask("ORGANIZATION", "CREATE_USER");
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("ORGANIZATION", "CREATE_USER", itemId);
+
TaskManager.Write("Organization ID :" + itemId);
TaskManager.Write("name :" + name);
TaskManager.Write("domain :" + domain);
@@ -1414,8 +1410,8 @@ namespace WebsitePanel.EnterpriseServer
// place log record
- TaskManager.StartTask("ORGANIZATION", "IMPORT_USER");
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("ORGANIZATION", "IMPORT_USER", itemId);
+
TaskManager.Write("Organization ID :" + itemId);
TaskManager.Write("account :" + accountName);
TaskManager.Write("name :" + name);
@@ -1572,8 +1568,7 @@ namespace WebsitePanel.EnterpriseServer
if (accountCheck < 0) return accountCheck;
// place log record
- TaskManager.StartTask("ORGANIZATION", "DELETE_USER");
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("ORGANIZATION", "DELETE_USER", itemId);
try
{
@@ -1676,8 +1671,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion
// place log record
- TaskManager.StartTask("ORGANIZATION", "GET_USER_GENERAL");
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("ORGANIZATION", "GET_USER_GENERAL", itemId);
OrganizationUser account = null;
Organization org = null;
@@ -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;
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/HostedSolution/ReportController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/HostedSolution/ReportController.cs
similarity index 100%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/HostedSolution/ReportController.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/HostedSolution/ReportController.cs
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Log/AuditLog.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Log/AuditLog.cs
similarity index 96%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Log/AuditLog.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Log/AuditLog.cs
index ec012ecf..0b1a62e1 100644
--- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Log/AuditLog.cs
+++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Log/AuditLog.cs
@@ -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)
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/MailServers/MailServerController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/MailServers/MailServerController.cs
similarity index 94%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/MailServers/MailServerController.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/MailServers/MailServerController.cs
index a911b077..d7923702 100644
--- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/MailServers/MailServerController.cs
+++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/MailServers/MailServerController.cs
@@ -191,8 +191,7 @@ namespace WebsitePanel.EnterpriseServer
return BusinessErrorCodes.ERROR_MAIL_ACCOUNT_MAX_MAILBOX_SIZE_LIMIT;
// place log record
- TaskManager.StartTask("MAIL_ACCOUNT", "UPDATE", origItem.Name);
- TaskManager.ItemId = item.Id;
+ TaskManager.StartTask("MAIL_ACCOUNT", "UPDATE", origItem.Name, item.Id);
try
{
@@ -245,8 +244,7 @@ namespace WebsitePanel.EnterpriseServer
return BusinessErrorCodes.ERROR_MAIL_ACCOUNTS_PACKAGE_ITEM_NOT_FOUND;
// place log record
- TaskManager.StartTask("MAIL_ACCOUNT", "DELETE", origItem.Name);
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("MAIL_ACCOUNT", "DELETE", origItem.Name, itemId);
try
{
@@ -402,7 +400,7 @@ namespace WebsitePanel.EnterpriseServer
item.ServiceId = serviceId;
int itemId = PackageController.AddPackageItem(item);
- TaskManager.ItemId = itemId;
+ TaskManager.ItemId = itemId;
return itemId;
}
@@ -432,8 +430,7 @@ namespace WebsitePanel.EnterpriseServer
if (packageCheck < 0) return packageCheck;
// place log record
- TaskManager.StartTask("MAIL_FORWARDING", "UPDATE", origItem.Name);
- TaskManager.ItemId = item.Id;
+ TaskManager.StartTask("MAIL_FORWARDING", "UPDATE", origItem.Name, item.Id);
try
{
@@ -477,8 +474,7 @@ namespace WebsitePanel.EnterpriseServer
return BusinessErrorCodes.ERROR_MAIL_FORWARDINGS_PACKAGE_ITEM_NOT_FOUND;
// place log record
- TaskManager.StartTask("MAIL_FORWARDING", "DELETE", origItem.Name);
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("MAIL_FORWARDING", "DELETE", origItem.Name, itemId);
try
{
@@ -638,8 +634,7 @@ namespace WebsitePanel.EnterpriseServer
return BusinessErrorCodes.ERROR_MAIL_GROUPS_RECIPIENTS_LIMIT;
// place log record
- TaskManager.StartTask("MAIL_GROUP", "UPDATE", origItem.Name);
- TaskManager.ItemId = item.Id;
+ TaskManager.StartTask("MAIL_GROUP", "UPDATE", origItem.Name, item.Id);
try
{
@@ -679,8 +674,7 @@ namespace WebsitePanel.EnterpriseServer
return BusinessErrorCodes.ERROR_MAIL_GROUPS_PACKAGE_ITEM_NOT_FOUND;
// place log record
- TaskManager.StartTask("MAIL_GROUP", "DELETE", origItem.Name);
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("MAIL_GROUP", "DELETE", origItem.Name, itemId);
try
{
@@ -889,8 +883,7 @@ namespace WebsitePanel.EnterpriseServer
return BusinessErrorCodes.ERROR_MAIL_LISTS_RECIPIENTS_LIMIT;
// place log record
- TaskManager.StartTask("MAIL_LIST", "UPDATE", origItem.Name);
- TaskManager.ItemId = item.Id;
+ TaskManager.StartTask("MAIL_LIST", "UPDATE", origItem.Name, item.Id);
try
{
@@ -938,8 +931,7 @@ namespace WebsitePanel.EnterpriseServer
return BusinessErrorCodes.ERROR_MAIL_LISTS_PACKAGE_ITEM_NOT_FOUND;
// place log record
- TaskManager.StartTask("MAIL_LIST", "DELETE", origItem.Name);
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("MAIL_LIST", "DELETE", origItem.Name, itemId);
try
{
@@ -1073,7 +1065,8 @@ namespace WebsitePanel.EnterpriseServer
}
TaskManager.ItemId = itemId;
- return itemId;
+
+ return itemId;
}
catch (Exception ex)
{
@@ -1101,8 +1094,7 @@ namespace WebsitePanel.EnterpriseServer
if (packageCheck < 0) return packageCheck;
// place log record
- TaskManager.StartTask("MAIL_DOMAIN", "UPDATE", origItem.Name);
- TaskManager.ItemId = item.Id;
+ TaskManager.StartTask("MAIL_DOMAIN", "UPDATE", origItem.Name, item.Id);
// get service
MailServer mail = new MailServer();
@@ -1148,8 +1140,7 @@ namespace WebsitePanel.EnterpriseServer
return BusinessErrorCodes.ERROR_MAIL_DOMAIN_IS_NOT_EMPTY; // mail domain is not empty
// place log record
- TaskManager.StartTask("MAIL_DOMAIN", "DELETE", origItem.Name);
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("MAIL_DOMAIN", "DELETE", origItem.Name, itemId);
try
{
@@ -1222,10 +1213,9 @@ namespace WebsitePanel.EnterpriseServer
return BusinessErrorCodes.ERROR_DOMAIN_PACKAGE_ITEM_NOT_FOUND;
// place log record
- TaskManager.StartTask("MAIL_DOMAIN", "ADD_POINTER", mailDomain.Name);
- TaskManager.ItemId = itemId;
- TaskManager.TaskParameters["Domain ID"] = domain.DomainId;
- TaskManager.WriteParameter("Domain pointer", domain.DomainName);
+ TaskManager.StartTask("MAIL_DOMAIN", "ADD_POINTER", mailDomain.Name, itemId, new BackgroundTaskParameter("Domain ID", domain.DomainId));
+
+ TaskManager.WriteParameter("Domain pointer", domain.DomainName);
try
{
@@ -1277,10 +1267,12 @@ namespace WebsitePanel.EnterpriseServer
return BusinessErrorCodes.ERROR_DOMAIN_PACKAGE_ITEM_NOT_FOUND;
// place log record
- TaskManager.StartTask("MAIL_DOMAIN", "DELETE_POINTER", mailDomain.Name);
- TaskManager.ItemId = itemId;
- TaskManager.TaskParameters["Domain ID"] = domain.DomainId;
- TaskManager.WriteParameter("Domain pointer", domain.DomainName);
+
+ List parameters = new List();
+ parameters.Add(new BackgroundTaskParameter("Domain ID", domain.DomainId));
+ parameters.Add(new BackgroundTaskParameter("Domain pointer", domain.DomainName));
+
+ TaskManager.StartTask("MAIL_DOMAIN", "DELETE_POINTER", mailDomain.Name, itemId, parameters);
try
{
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/MailServers/QuotaLimit.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/MailServers/QuotaLimit.cs
similarity index 100%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/MailServers/QuotaLimit.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/MailServers/QuotaLimit.cs
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/OperatingSystems/OperatingSystemController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/OperatingSystems/OperatingSystemController.cs
similarity index 95%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/OperatingSystems/OperatingSystemController.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/OperatingSystems/OperatingSystemController.cs
index 238ec360..10a79b04 100644
--- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/OperatingSystems/OperatingSystemController.cs
+++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/OperatingSystems/OperatingSystemController.cs
@@ -191,8 +191,7 @@ namespace WebsitePanel.EnterpriseServer
if (packageCheck < 0) return packageCheck;
// place log record
- TaskManager.StartTask("ODBC_DSN", "UPDATE", origItem.Name);
- TaskManager.ItemId = item.Id;
+ TaskManager.StartTask("ODBC_DSN", "UPDATE", origItem.Name, item.Id);
try
{
@@ -265,8 +264,7 @@ namespace WebsitePanel.EnterpriseServer
return BusinessErrorCodes.ERROR_OS_DSN_PACKAGE_ITEM_NOT_FOUND;
// place log record
- TaskManager.StartTask("ODBC_DSN", "DELETE", origItem.Name);
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("ODBC_DSN", "DELETE", origItem.Name, itemId);
try
{
@@ -316,8 +314,7 @@ namespace WebsitePanel.EnterpriseServer
ServerInfo server = ServerController.GetServerById(serverId);
// place log record
- TaskManager.StartTask("SERVER", "RESET_TERMINAL_SESSION", sessionId);
- TaskManager.ItemId = serverId;
+ TaskManager.StartTask("SERVER", "RESET_TERMINAL_SESSION", sessionId, serverId);
try
{
@@ -352,8 +349,7 @@ namespace WebsitePanel.EnterpriseServer
ServerInfo server = ServerController.GetServerById(serverId);
// place log record
- TaskManager.StartTask("SERVER", "TERMINATE_SYSTEM_PROCESS", pid);
- TaskManager.ItemId = serverId;
+ TaskManager.StartTask("SERVER", "TERMINATE_SYSTEM_PROCESS", pid, serverId);
try
{
@@ -388,8 +384,7 @@ namespace WebsitePanel.EnterpriseServer
ServerInfo server = ServerController.GetServerById(serverId);
// place log record
- TaskManager.StartTask("SERVER", "CHANGE_WINDOWS_SERVICE_STATUS", id);
- TaskManager.ItemId = serverId;
+ TaskManager.StartTask("SERVER", "CHANGE_WINDOWS_SERVICE_STATUS", id, serverId);
TaskManager.WriteParameter("New Status", status);
try
@@ -555,8 +550,7 @@ namespace WebsitePanel.EnterpriseServer
| DemandAccount.IsActive);
if (accountCheck < 0) return accountCheck;
- TaskManager.StartTask("SERVER", "CLEAR_EVENT_LOG", logName);
- TaskManager.ItemId = serverId;
+ TaskManager.StartTask("SERVER", "CLEAR_EVENT_LOG", logName, serverId);
try
{
@@ -587,8 +581,7 @@ namespace WebsitePanel.EnterpriseServer
ServerInfo server = ServerController.GetServerById(serverId);
// place log record
- TaskManager.StartTask("SERVER", "REBOOT");
- TaskManager.ItemId = serverId;
+ TaskManager.StartTask("SERVER", "REBOOT", serverId);
try
{
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Packages/PackageAsyncWorker.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Packages/PackageAsyncWorker.cs
similarity index 100%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Packages/PackageAsyncWorker.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Packages/PackageAsyncWorker.cs
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Packages/PackageController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Packages/PackageController.cs
similarity index 97%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Packages/PackageController.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Packages/PackageController.cs
index 3363a13f..b8532151 100644
--- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Packages/PackageController.cs
+++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Packages/PackageController.cs
@@ -617,8 +617,12 @@ namespace WebsitePanel.EnterpriseServer
}
}
- TaskManager.ItemId = result.Result;
- TaskManager.TaskParameters["SendLetter"] = sendLetter;
+ BackgroundTask topTask = 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
{
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Packages/ServiceItemsPaged.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Packages/ServiceItemsPaged.cs
similarity index 100%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Packages/ServiceItemsPaged.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Packages/ServiceItemsPaged.cs
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Properties/AssemblyInfo.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Properties/AssemblyInfo.cs
new file mode 100644
index 00000000..3fd65c77
--- /dev/null
+++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Properties/AssemblyInfo.cs
@@ -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")]
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Provisioning/BackupAsyncWorker.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Provisioning/BackupAsyncWorker.cs
similarity index 100%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Provisioning/BackupAsyncWorker.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Provisioning/BackupAsyncWorker.cs
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Provisioning/BackupController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Provisioning/BackupController.cs
similarity index 95%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Provisioning/BackupController.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Provisioning/BackupController.cs
index a580954a..23d8864c 100644
--- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Provisioning/BackupController.cs
+++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Provisioning/BackupController.cs
@@ -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 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;
}
}
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Provisioning/IBackupController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Provisioning/IBackupController.cs
similarity index 100%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Provisioning/IBackupController.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Provisioning/IBackupController.cs
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Provisioning/IImportController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Provisioning/IImportController.cs
similarity index 100%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Provisioning/IImportController.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Provisioning/IImportController.cs
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Provisioning/ImportAsyncWorker.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Provisioning/ImportAsyncWorker.cs
similarity index 100%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Provisioning/ImportAsyncWorker.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Provisioning/ImportAsyncWorker.cs
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Provisioning/ImportController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Provisioning/ImportController.cs
similarity index 97%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Provisioning/ImportController.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Provisioning/ImportController.cs
index fef786d4..aaa74100 100644
--- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Provisioning/ImportController.cs
+++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Provisioning/ImportController.cs
@@ -171,8 +171,7 @@ namespace WebsitePanel.EnterpriseServer
{
PackageInfo package = PackageController.GetPackage(packageId);
- TaskManager.StartTask(taskId, "IMPORT", "IMPORT", package.PackageName);
- TaskManager.ItemId = packageId;
+ TaskManager.StartTask(taskId, "IMPORT", "IMPORT", package.PackageName, packageId);
TaskManager.IndicatorMaximum = items.Length;
TaskManager.IndicatorCurrent = 0;
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/SchedulerTasks/ActivatePaidInvoicesTask.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/ActivatePaidInvoicesTask.cs
similarity index 100%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/SchedulerTasks/ActivatePaidInvoicesTask.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/ActivatePaidInvoicesTask.cs
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/SchedulerTasks/BackupDatabaseTask.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/BackupDatabaseTask.cs
similarity index 86%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/SchedulerTasks/BackupDatabaseTask.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/BackupDatabaseTask.cs
index fd545c4e..9a871c66 100644
--- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/SchedulerTasks/BackupDatabaseTask.cs
+++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/BackupDatabaseTask.cs
@@ -46,11 +46,13 @@ namespace WebsitePanel.EnterpriseServer
// - BACKUP_NAME
// - ZIP_BACKUP
- string databaseGroup = (string)TaskManager.TaskParameters["DATABASE_GROUP"];
- string databaseName = (string)TaskManager.TaskParameters["DATABASE_NAME"];
- string backupFolder = (string)TaskManager.TaskParameters["BACKUP_FOLDER"];
- string backupName = (string)TaskManager.TaskParameters["BACKUP_NAME"];
- string strZipBackup = (string)TaskManager.TaskParameters["ZIP_BACKUP"];
+ BackgroundTask topTask = 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)
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/SchedulerTasks/BackupTask.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/BackupTask.cs
similarity index 81%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/SchedulerTasks/BackupTask.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/BackupTask.cs
index 8d04180d..92a30c81 100644
--- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/SchedulerTasks/BackupTask.cs
+++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/BackupTask.cs
@@ -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
///
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);
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/SchedulerTasks/CalculateExchangeDiskspaceTask.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/CalculateExchangeDiskspaceTask.cs
similarity index 95%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/SchedulerTasks/CalculateExchangeDiskspaceTask.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/CalculateExchangeDiskspaceTask.cs
index 1a8909a9..b6e477cc 100644
--- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/SchedulerTasks/CalculateExchangeDiskspaceTask.cs
+++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/CalculateExchangeDiskspaceTask.cs
@@ -46,7 +46,7 @@ namespace WebsitePanel.EnterpriseServer
public void CalculateDiskspace()
{
// get all space organizations recursively
- List items = ExchangeServerController.GetExchangeOrganizations(TaskManager.PackageId, true);
+ List items = ExchangeServerController.GetExchangeOrganizations(TaskManager.TopTask.PackageId, true);
foreach (Organization item in items)
{
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/SchedulerTasks/CalculatePackagesBandwidthTask.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/CalculatePackagesBandwidthTask.cs
similarity index 97%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/SchedulerTasks/CalculatePackagesBandwidthTask.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/CalculatePackagesBandwidthTask.cs
index ccb91d16..995415f9 100644
--- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/SchedulerTasks/CalculatePackagesBandwidthTask.cs
+++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/CalculatePackagesBandwidthTask.cs
@@ -51,7 +51,7 @@ namespace WebsitePanel.EnterpriseServer
public void CalculateBandwidth()
{
// get all owned packages
- List packages = PackageController.GetPackagePackages(TaskManager.PackageId, true);
+ List packages = PackageController.GetPackagePackages(TaskManager.TopTask.PackageId, true);
TaskManager.Write("Packages to calculate: " + packages.Count.ToString());
foreach (PackageInfo package in packages)
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/SchedulerTasks/CalculatePackagesDiskspaceTask.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/CalculatePackagesDiskspaceTask.cs
similarity index 97%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/SchedulerTasks/CalculatePackagesDiskspaceTask.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/CalculatePackagesDiskspaceTask.cs
index 7a744cf9..200648cc 100644
--- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/SchedulerTasks/CalculatePackagesDiskspaceTask.cs
+++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/CalculatePackagesDiskspaceTask.cs
@@ -52,7 +52,7 @@ namespace WebsitePanel.EnterpriseServer
public void CalculateDiskspace()
{
// get all owned packages
- List packages = PackageController.GetPackagePackages(TaskManager.PackageId, true);
+ List packages = PackageController.GetPackagePackages(TaskManager.TopTask.PackageId, true);
TaskManager.Write("Packages to calculate: " + packages.Count.ToString());
foreach (PackageInfo package in packages)
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/SchedulerTasks/CancelOverdueInvoicesTask.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/CancelOverdueInvoicesTask.cs
similarity index 100%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/SchedulerTasks/CancelOverdueInvoicesTask.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/CancelOverdueInvoicesTask.cs
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/SchedulerTasks/CheckWebSiteTask.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/CheckWebSiteTask.cs
similarity index 84%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/SchedulerTasks/CheckWebSiteTask.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/CheckWebSiteTask.cs
index c16812d9..574e3d26 100644
--- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/SchedulerTasks/CheckWebSiteTask.cs
+++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/CheckWebSiteTask.cs
@@ -57,17 +57,19 @@ namespace WebsitePanel.EnterpriseServer
// - MAIL_SUBJECT
// - MAIL_BODY
- // get input parameters
- string url = (string)TaskManager.TaskParameters["URL"];
- string username = (string)TaskManager.TaskParameters["USERNAME"];
- string password = (string)TaskManager.TaskParameters["PASSWORD"];
- string strResponseStatus = (string)TaskManager.TaskParameters["RESPONSE_STATUS"];
- string responseContains = (string)TaskManager.TaskParameters["RESPONSE_CONTAIN"];
- string responseNotContains = (string)TaskManager.TaskParameters["RESPONSE_DOESNT_CONTAIN"];
+ BackgroundTask topTask = 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))
{
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/SchedulerTasks/FTPFilesTask.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/FTPFilesTask.cs
similarity index 83%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/SchedulerTasks/FTPFilesTask.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/FTPFilesTask.cs
index b069aa07..1738f145 100644
--- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/SchedulerTasks/FTPFilesTask.cs
+++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/FTPFilesTask.cs
@@ -46,12 +46,14 @@ namespace WebsitePanel.EnterpriseServer
// - FTP_PASSWORD
// - FTP_FOLDER
+ BackgroundTask topTask = 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 });
}
}
}
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/SchedulerTasks/GenerateInvoicesTask.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/GenerateInvoicesTask.cs
similarity index 100%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/SchedulerTasks/GenerateInvoicesTask.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/GenerateInvoicesTask.cs
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/SchedulerTasks/HostedSolutionReport.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/HostedSolutionReport.cs
similarity index 87%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/SchedulerTasks/HostedSolutionReport.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/HostedSolutionReport.cs
index b82436df..fedeb3e8 100644
--- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/SchedulerTasks/HostedSolutionReport.cs
+++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/HostedSolutionReport.cs
@@ -51,16 +51,18 @@ namespace WebsitePanel.EnterpriseServer
{
try
{
- bool isExchange = Utils.ParseBool(TaskManager.TaskParameters[EXCHANGE_REPORT], false);
- bool isSharePoint = Utils.ParseBool(TaskManager.TaskParameters[SHAREPOINT_REPORT], false);
- bool isLync = Utils.ParseBool(TaskManager.TaskParameters[LYNC_REPORT], false);
- bool isCRM = Utils.ParseBool(TaskManager.TaskParameters[CRM_REPORT], false);
- bool isOrganization = Utils.ParseBool(TaskManager.TaskParameters[ORGANIZATION_REPORT], false);
+ BackgroundTask topTask = 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);
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/SchedulerTasks/NotifyOverusedDatabasesTask.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/NotifyOverusedDatabasesTask.cs
similarity index 86%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/SchedulerTasks/NotifyOverusedDatabasesTask.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/NotifyOverusedDatabasesTask.cs
index 5aae6dff..b38e5f38 100644
--- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/SchedulerTasks/NotifyOverusedDatabasesTask.cs
+++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/NotifyOverusedDatabasesTask.cs
@@ -44,25 +44,27 @@ namespace WebsitePanel.EnterpriseServer
// - DISKSPACE_OVERUSED
// - BANDWIDTH_OVERUSED
+ BackgroundTask topTask = TaskManager.TopTask;
+
// get the list of all packages
- List packages = PackageController.GetPackagePackages(TaskManager.PackageId, false);
+ List packages = PackageController.GetPackagePackages(topTask.PackageId, false);
TaskManager.Write("Packages to verify: " + packages.Count.ToString());
- bool checkMSSQL = (String.Compare((string)TaskManager.TaskParameters["MSSQL_OVERUSED"], "true", true) == 0);
- bool checkMySQL = (String.Compare((string)TaskManager.TaskParameters["MYSQL_OVERUSED"], "true", true) == 0);
+ bool checkMSSQL = (String.Compare((string)topTask.GetParamValue("MSSQL_OVERUSED"), "true", true) == 0);
+ bool checkMySQL = (String.Compare((string)topTask.GetParamValue("MYSQL_OVERUSED"), "true", true) == 0);
- bool sendWarningEmail = Convert.ToBoolean(TaskManager.TaskParameters["SEND_WARNING_EMAIL"]);
- bool sendOverusedEmail = Convert.ToBoolean(TaskManager.TaskParameters["SEND_OVERUSED_EMAIL"]);
- int warningUsageThreshold = Convert.ToInt32(TaskManager.TaskParameters["WARNING_USAGE_THRESHOLD"]);
- int overusedUsageThreshold = Convert.ToInt32(TaskManager.TaskParameters["OVERUSED_USAGE_THRESHOLD"]);
- string warningMailFrom = Convert.ToString(TaskManager.TaskParameters["WARNING_MAIL_FROM"]);
- string warningMailBcc = Convert.ToString(TaskManager.TaskParameters["WARNING_MAIL_BCC"]);
- string warningMailSubject = Convert.ToString(TaskManager.TaskParameters["WARNING_MAIL_SUBJECT"]);
- string warningMailBody = Convert.ToString(TaskManager.TaskParameters["WARNING_MAIL_BODY"]);
- string overusedMailFrom = Convert.ToString(TaskManager.TaskParameters["OVERUSED_MAIL_FROM"]);
- string overusedMailBcc = Convert.ToString(TaskManager.TaskParameters["OVERUSED_MAIL_BCC"]);
- string overusedMailSubject = Convert.ToString(TaskManager.TaskParameters["OVERUSED_MAIL_SUBJECT"]);
- string overusedMailBody = Convert.ToString(TaskManager.TaskParameters["OVERUSED_MAIL_BODY"]);
+ bool sendWarningEmail = Convert.ToBoolean(topTask.GetParamValue("SEND_WARNING_EMAIL"));
+ bool sendOverusedEmail = Convert.ToBoolean(topTask.GetParamValue("SEND_OVERUSED_EMAIL"));
+ int warningUsageThreshold = Convert.ToInt32(topTask.GetParamValue("WARNING_USAGE_THRESHOLD"));
+ int overusedUsageThreshold = Convert.ToInt32(topTask.GetParamValue("OVERUSED_USAGE_THRESHOLD"));
+ string warningMailFrom = Convert.ToString(topTask.GetParamValue("WARNING_MAIL_FROM"));
+ string warningMailBcc = Convert.ToString(topTask.GetParamValue("WARNING_MAIL_BCC"));
+ string warningMailSubject = Convert.ToString(topTask.GetParamValue("WARNING_MAIL_SUBJECT"));
+ string warningMailBody = Convert.ToString(topTask.GetParamValue("WARNING_MAIL_BODY"));
+ string overusedMailFrom = Convert.ToString(topTask.GetParamValue("OVERUSED_MAIL_FROM"));
+ string overusedMailBcc = Convert.ToString(topTask.GetParamValue("OVERUSED_MAIL_BCC"));
+ string overusedMailSubject = Convert.ToString(topTask.GetParamValue("OVERUSED_MAIL_SUBJECT"));
+ string overusedMailBody = Convert.ToString(topTask.GetParamValue("OVERUSED_MAIL_BODY"));
int overusedPackages = 0;
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/SchedulerTasks/RunPaymentQueueTask.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/RunPaymentQueueTask.cs
similarity index 100%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/SchedulerTasks/RunPaymentQueueTask.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/RunPaymentQueueTask.cs
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/SchedulerTasks/RunSystemCommandTask.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/RunSystemCommandTask.cs
similarity index 88%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/SchedulerTasks/RunSystemCommandTask.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/RunSystemCommandTask.cs
index 3dba9938..e05bf145 100644
--- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/SchedulerTasks/RunSystemCommandTask.cs
+++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/RunSystemCommandTask.cs
@@ -42,10 +42,12 @@ namespace WebsitePanel.EnterpriseServer
// - SERVER_NAME
// - EXECUTABLE_PATH
+ BackgroundTask topTask = 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 = "";
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/SchedulerTasks/SendMailNotificationTask.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/SendMailNotificationTask.cs
similarity index 86%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/SchedulerTasks/SendMailNotificationTask.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/SendMailNotificationTask.cs
index 57e722ea..b7a0308f 100644
--- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/SchedulerTasks/SendMailNotificationTask.cs
+++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/SendMailNotificationTask.cs
@@ -42,11 +42,13 @@ namespace WebsitePanel.EnterpriseServer
// - MAIL_SUBJECT
// - MAIL_BODY
+ BackgroundTask topTask = 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))
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/SchedulerTasks/SuspendOverdueInvoicesTask.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/SuspendOverdueInvoicesTask.cs
similarity index 100%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/SchedulerTasks/SuspendOverdueInvoicesTask.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/SuspendOverdueInvoicesTask.cs
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/SchedulerTasks/SuspendOverusedPackagesTask.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/SuspendOverusedPackagesTask.cs
similarity index 83%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/SchedulerTasks/SuspendOverusedPackagesTask.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/SuspendOverusedPackagesTask.cs
index 5fa58ce9..e7201be1 100644
--- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/SchedulerTasks/SuspendOverusedPackagesTask.cs
+++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/SuspendOverusedPackagesTask.cs
@@ -43,27 +43,29 @@ namespace WebsitePanel.EnterpriseServer
// - DISKSPACE_OVERUSED
// - BANDWIDTH_OVERUSED
+ BackgroundTask topTask = TaskManager.TopTask;
+
// get the list of all packages
- List packages = PackageController.GetPackagePackages(TaskManager.PackageId, false);
+ List packages = PackageController.GetPackagePackages(topTask.PackageId, false);
TaskManager.Write("Packages to verify: " + packages.Count.ToString());
- bool checkDiskspace = (String.Compare((string)TaskManager.TaskParameters["DISKSPACE_OVERUSED"], "true", true) == 0);
- bool checkBandwidth = (String.Compare((string)TaskManager.TaskParameters["BANDWIDTH_OVERUSED"], "true", true) == 0);
+ bool checkDiskspace = (String.Compare((string)topTask.GetParamValue("DISKSPACE_OVERUSED"), "true", true) == 0);
+ bool checkBandwidth = (String.Compare((string)topTask.GetParamValue("BANDWIDTH_OVERUSED"), "true", true) == 0);
- bool suspendOverused = Convert.ToBoolean(TaskManager.TaskParameters["SUSPEND_OVERUSED"]);
+ bool suspendOverused = Convert.ToBoolean(topTask.GetParamValue("SUSPEND_OVERUSED"));
- bool sendWarningEmail = Convert.ToBoolean(TaskManager.TaskParameters["SEND_WARNING_EMAIL"]);
- bool sendSuspensionEmail = Convert.ToBoolean(TaskManager.TaskParameters["SEND_SUSPENSION_EMAIL"]);
- int warningUsageThreshold = Convert.ToInt32(TaskManager.TaskParameters["WARNING_USAGE_THRESHOLD"]);
- int suspensionUsageThreshold = Convert.ToInt32(TaskManager.TaskParameters["SUSPENSION_USAGE_THRESHOLD"]);
- string warningMailFrom = Convert.ToString(TaskManager.TaskParameters["WARNING_MAIL_FROM"]);
- string warningMailBcc = Convert.ToString(TaskManager.TaskParameters["WARNING_MAIL_BCC"]);
- string warningMailSubject = Convert.ToString(TaskManager.TaskParameters["WARNING_MAIL_SUBJECT"]);
- string warningMailBody = Convert.ToString(TaskManager.TaskParameters["WARNING_MAIL_BODY"]);
- string suspensionMailFrom = Convert.ToString(TaskManager.TaskParameters["SUSPENSION_MAIL_FROM"]);
- string suspensionMailBcc = Convert.ToString(TaskManager.TaskParameters["SUSPENSION_MAIL_BCC"]);
- string suspensionMailSubject = Convert.ToString(TaskManager.TaskParameters["SUSPENSION_MAIL_SUBJECT"]);
- string suspensionMailBody = Convert.ToString(TaskManager.TaskParameters["SUSPENSION_MAIL_BODY"]);
+ bool sendWarningEmail = Convert.ToBoolean(topTask.GetParamValue("SEND_WARNING_EMAIL"));
+ bool sendSuspensionEmail = Convert.ToBoolean(topTask.GetParamValue("SEND_SUSPENSION_EMAIL"));
+ int warningUsageThreshold = Convert.ToInt32(topTask.GetParamValue("WARNING_USAGE_THRESHOLD"));
+ int suspensionUsageThreshold = Convert.ToInt32(topTask.GetParamValue("SUSPENSION_USAGE_THRESHOLD"));
+ string warningMailFrom = Convert.ToString(topTask.GetParamValue("WARNING_MAIL_FROM"));
+ string warningMailBcc = Convert.ToString(topTask.GetParamValue("WARNING_MAIL_BCC"));
+ string warningMailSubject = Convert.ToString(topTask.GetParamValue("WARNING_MAIL_SUBJECT"));
+ string warningMailBody = Convert.ToString(topTask.GetParamValue("WARNING_MAIL_BODY"));
+ string suspensionMailFrom = Convert.ToString(topTask.GetParamValue("SUSPENSION_MAIL_FROM"));
+ string suspensionMailBcc = Convert.ToString(topTask.GetParamValue("SUSPENSION_MAIL_BCC"));
+ string suspensionMailSubject = Convert.ToString(topTask.GetParamValue("SUSPENSION_MAIL_SUBJECT"));
+ string suspensionMailBody = Convert.ToString(topTask.GetParamValue("SUSPENSION_MAIL_BODY"));
int suspendedPackages = 0;
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/SchedulerTasks/ZipFilesTask.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/ZipFilesTask.cs
similarity index 88%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/SchedulerTasks/ZipFilesTask.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/ZipFilesTask.cs
index 5f93c1ac..20247fee 100644
--- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/SchedulerTasks/ZipFilesTask.cs
+++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/ZipFilesTask.cs
@@ -40,9 +40,11 @@ namespace WebsitePanel.EnterpriseServer
// - FOLDER
// - ZIP_FILE
+ BackgroundTask topTask = 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);
}
}
}
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Scheduling/Scheduler.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Scheduling/Scheduler.cs
similarity index 71%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Scheduling/Scheduler.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Scheduling/Scheduler.cs
index 268391b7..34b9ffbf 100644
--- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Scheduling/Scheduler.cs
+++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Scheduling/Scheduler.cs
@@ -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 scheduledTasks = TaskManager.GetScheduledTasks();
+
return scheduledTasks.ContainsKey(scheduleId);
}
- public static void StartSchedule(SchedulerJob schedule)
- {
- Dictionary scheduledTasks = TaskManager.GetScheduledTasks();
- if (scheduledTasks.ContainsKey(schedule.ScheduleInfo.ScheduleId))
- return;
-
- // run schedule
- RunSchedule(schedule, false);
- }
-
- public static void StopSchedule(SchedulerJob schedule)
- {
- Dictionary 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();
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Scheduling/SchedulerController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Scheduling/SchedulerController.cs
similarity index 84%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Scheduling/SchedulerController.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Scheduling/SchedulerController.cs
index 0fc85004..be434a2e 100644
--- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Scheduling/SchedulerController.cs
+++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Scheduling/SchedulerController.cs
@@ -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;
}
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Scheduling/SchedulerJob.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Scheduling/SchedulerJob.cs
similarity index 87%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Scheduling/SchedulerJob.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Scheduling/SchedulerJob.cs
index c29be3fd..7b9d2efd 100644
--- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Scheduling/SchedulerJob.cs
+++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Scheduling/SchedulerJob.cs
@@ -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 parameters = new List();
foreach (ScheduleTaskParameterInfo prm in scheduleInfo.Parameters)
- TaskManager.TaskParameters[prm.ParameterId] = prm.ParameterValue;
+ {
+ parameters.Add(new BackgroundTaskParameter(prm.ParameterId, prm.ParameterValue));
+ }
+
+ TaskManager.StartTask("SCHEDULER", "RUN_SCHEDULE", scheduleInfo.ScheduleName, scheduleInfo.ScheduleId,
+ scheduleInfo.ScheduleId, scheduleInfo.PackageId, scheduleInfo.MaxExecutionTime,
+ parameters);
// run task
try
@@ -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)
{
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Servers/ServerController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Servers/ServerController.cs
similarity index 95%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Servers/ServerController.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Servers/ServerController.cs
index b1cd15f0..61e838a6 100644
--- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Servers/ServerController.cs
+++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Servers/ServerController.cs
@@ -265,6 +265,7 @@ namespace WebsitePanel.EnterpriseServer
}
TaskManager.ItemId = serverId;
+
TaskManager.CompleteTask();
return serverId;
@@ -277,12 +278,10 @@ namespace WebsitePanel.EnterpriseServer
| DemandAccount.IsAdmin);
if (accountCheck < 0) return accountCheck;
- TaskManager.StartTask("SERVER", "UPDATE");
- TaskManager.ItemId = server.ServerId;
-
// get original server
ServerInfo origServer = GetServerByIdInternal(server.ServerId);
- TaskManager.ItemName = origServer.ServerName;
+
+ TaskManager.StartTask("SERVER", "UPDATE", origServer.ServerName, server.ServerId);
// preserve passwords
server.Password = origServer.Password;
@@ -313,12 +312,10 @@ namespace WebsitePanel.EnterpriseServer
| DemandAccount.IsAdmin);
if (accountCheck < 0) return accountCheck;
- TaskManager.StartTask("SERVER", "UPDATE_PASSWORD");
- TaskManager.ItemId = serverId;
-
// get original server
ServerInfo server = GetServerByIdInternal(serverId);
- TaskManager.ItemName = server.ServerName;
+
+ TaskManager.StartTask("SERVER", "UPDATE_PASSWORD", server.ServerName, serverId);
// set password
server.Password = password;
@@ -341,12 +338,10 @@ namespace WebsitePanel.EnterpriseServer
| DemandAccount.IsAdmin);
if (accountCheck < 0) return accountCheck;
- TaskManager.StartTask("SERVER", "UPDATE_AD_PASSWORD");
- TaskManager.ItemId = serverId;
-
// get original server
ServerInfo server = GetServerByIdInternal(serverId);
- TaskManager.ItemName = server.ServerName;
+
+ TaskManager.StartTask("SERVER", "UPDATE_AD_PASSWORD", server.ServerName, serverId);
// set password
server.ADPassword = adPassword;
@@ -369,12 +364,10 @@ namespace WebsitePanel.EnterpriseServer
| DemandAccount.IsAdmin);
if (accountCheck < 0) return accountCheck;
- TaskManager.StartTask("SERVER", "DELETE");
- TaskManager.ItemId = serverId;
-
// get original server
ServerInfo server = GetServerByIdInternal(serverId);
- TaskManager.ItemName = server.ServerName;
+
+ TaskManager.StartTask("SERVER", "DELETE", server.ServerName, serverId);
try
{
@@ -427,10 +420,9 @@ namespace WebsitePanel.EnterpriseServer
| DemandAccount.IsActive);
if (accountCheck < 0) return accountCheck;
- TaskManager.StartTask("VIRTUAL_SERVER", "ADD_SERVICES");
ServerInfo server = GetServerByIdInternal(serverId);
- TaskManager.ItemId = serverId;
- TaskManager.ItemName = server.ServerName;
+
+ TaskManager.StartTask("VIRTUAL_SERVER", "ADD_SERVICES", server.ServerName, serverId);
// build XML
string xml = BuildXmlFromArray(ids, "services", "service");
@@ -450,10 +442,9 @@ namespace WebsitePanel.EnterpriseServer
| DemandAccount.IsActive);
if (accountCheck < 0) return accountCheck;
- TaskManager.StartTask("VIRTUAL_SERVER", "DELETE_SERVICES");
ServerInfo server = GetServerByIdInternal(serverId);
- TaskManager.ItemId = serverId;
- TaskManager.ItemName = server.ServerName;
+
+ TaskManager.StartTask("VIRTUAL_SERVER", "DELETE_SERVICES", server.ServerName, serverId);
// build XML
string xml = BuildXmlFromArray(ids, "services", "service");
@@ -585,9 +576,8 @@ namespace WebsitePanel.EnterpriseServer
| DemandAccount.IsActive);
if (accountCheck < 0) return accountCheck;
- TaskManager.StartTask("SERVER", "ADD_SERVICE");
- TaskManager.ItemId = service.ServerId;
- TaskManager.ItemName = GetServerByIdInternal(service.ServerId).ServerName;
+ TaskManager.StartTask("SERVER", "ADD_SERVICE", GetServerByIdInternal(service.ServerId).ServerName, service.ServerId);
+
TaskManager.WriteParameter("Service name", service.ServiceName);
TaskManager.WriteParameter("Provider", service.ProviderId);
@@ -641,9 +631,8 @@ namespace WebsitePanel.EnterpriseServer
// load original service
ServiceInfo origService = GetServiceInfo(service.ServiceId);
- TaskManager.StartTask("SERVER", "UPDATE_SERVICE");
- TaskManager.ItemId = origService.ServerId;
- TaskManager.ItemName = GetServerByIdInternal(origService.ServerId).ServerName;
+ TaskManager.StartTask("SERVER", "UPDATE_SERVICE", GetServerByIdInternal(origService.ServerId).ServerName, origService.ServerId);
+
TaskManager.WriteParameter("New service name", service.ServiceName);
DataProvider.UpdateService(service.ServiceId, service.ServiceName,
@@ -663,9 +652,8 @@ namespace WebsitePanel.EnterpriseServer
ServiceInfo service = GetServiceInfoAdmin(serviceId);
- TaskManager.StartTask("SERVER", "DELETE_SERVICE");
- TaskManager.ItemId = service.ServerId;
- TaskManager.ItemName = GetServerByIdInternal(service.ServerId).ServerName;
+ TaskManager.StartTask("SERVER", "DELETE_SERVICE", GetServerByIdInternal(service.ServerId).ServerName, service.ServerId);
+
TaskManager.WriteParameter("Service name", service.ServiceName);
try
@@ -926,8 +914,8 @@ namespace WebsitePanel.EnterpriseServer
#endregion
// start task
- res = TaskManager.StartResultTask("IP_ADDRESS", "ADD");
- TaskManager.ItemName = externalIP;
+ res = TaskManager.StartResultTask("IP_ADDRESS", "ADD", externalIP);
+
TaskManager.WriteParameter("IP Address", externalIP);
TaskManager.WriteParameter("NAT Address", internalIP);
@@ -961,8 +949,8 @@ namespace WebsitePanel.EnterpriseServer
#endregion
// start task
- res = TaskManager.StartResultTask("IP_ADDRESS", "ADD_RANGE");
- TaskManager.ItemName = externalIP;
+ res = TaskManager.StartResultTask("IP_ADDRESS", "ADD_RANGE", externalIP);
+
TaskManager.WriteParameter("IP Address", externalIP);
TaskManager.WriteParameter("End IP Address", endIP);
TaskManager.WriteParameter("NAT Address", internalIP);
@@ -1251,8 +1239,7 @@ namespace WebsitePanel.EnterpriseServer
if (addressesNumber > maxAvailableIPs)
addressesNumber = maxAvailableIPs;
- res = TaskManager.StartResultTask("IP_ADDRESS", "ALLOCATE_PACKAGE_IP");
- TaskManager.PackageId = packageId;
+ res = TaskManager.StartResultTask("IP_ADDRESS", "ALLOCATE_PACKAGE_IP", packageId);
try
{
@@ -1337,8 +1324,8 @@ namespace WebsitePanel.EnterpriseServer
return res;
#endregion
- res = TaskManager.StartResultTask("IP_ADDRESS", "DEALLOCATE_PACKAGE_IP");
- TaskManager.PackageId = packageId;
+ res = TaskManager.StartResultTask("IP_ADDRESS", "DEALLOCATE_PACKAGE_IP", packageId);
+
try
{
foreach (int id in addressId)
@@ -1876,11 +1863,7 @@ namespace WebsitePanel.EnterpriseServer
*/
// place log record
- TaskManager.StartTask("DOMAIN", "ADD", domainName);
- TaskManager.PackageId = packageId;
- TaskManager.TaskParameters["CreateZone"] = createDnsZone;
-
-
+ TaskManager.StartTask("DOMAIN", "ADD", domainName, 0, packageId, new BackgroundTaskParameter("CreateZone", createDnsZone));
// create DNS zone
int zoneItemId = 0;
@@ -1911,6 +1894,7 @@ namespace WebsitePanel.EnterpriseServer
packageId, zoneItemId, domainName, allowSubDomains, 0, 0, isSubDomain, isInstantAlias, isDomainPointer);
TaskManager.ItemId = itemId;
+
TaskManager.CompleteTask();
return itemId;
@@ -2041,8 +2025,7 @@ namespace WebsitePanel.EnterpriseServer
// place log record
DomainInfo origDomain = GetDomain(domain.DomainId);
- TaskManager.StartTask("DOMAIN", "UPDATE", origDomain.DomainName);
- TaskManager.ItemId = domain.DomainId;
+ TaskManager.StartTask("DOMAIN", "UPDATE", origDomain.DomainName, domain.DomainId);
try
{
@@ -2074,8 +2057,7 @@ namespace WebsitePanel.EnterpriseServer
return 0;
// place log record
- TaskManager.StartTask("DOMAIN", "DETACH", domain.DomainName);
- TaskManager.ItemId = domain.DomainId;
+ TaskManager.StartTask("DOMAIN", "DETACH", domain.DomainName, domain.DomainId);
try
{
@@ -2143,8 +2125,7 @@ namespace WebsitePanel.EnterpriseServer
return 0;
// place log record
- TaskManager.StartTask("DOMAIN", "DELETE", domain.DomainName);
- TaskManager.ItemId = domain.DomainId;
+ TaskManager.StartTask("DOMAIN", "DELETE", domain.DomainName, domain.DomainId);
try
{
@@ -2223,8 +2204,7 @@ namespace WebsitePanel.EnterpriseServer
return 0;
// place log record
- TaskManager.StartTask("DOMAIN", "DISABLE_DNS", domain.DomainName);
- TaskManager.ItemId = domain.DomainId;
+ TaskManager.StartTask("DOMAIN", "DISABLE_DNS", domain.DomainName, domain.DomainId);
try
{
@@ -2270,8 +2250,7 @@ namespace WebsitePanel.EnterpriseServer
return 0;
// place log record
- TaskManager.StartTask("DOMAIN", "ENABLE_DNS", domain.DomainName);
- TaskManager.ItemId = domain.DomainId;
+ TaskManager.StartTask("DOMAIN", "ENABLE_DNS", domain.DomainName, domain.DomainId);
try
{
@@ -2475,8 +2454,7 @@ namespace WebsitePanel.EnterpriseServer
return BusinessErrorCodes.ERROR_INSTANT_ALIAS_IS_NOT_CONFIGURED;
// place log record
- TaskManager.StartTask("DOMAIN", "CREATE_INSTANT_ALIAS", domain.DomainName);
- TaskManager.ItemId = domain.DomainId;
+ TaskManager.StartTask("DOMAIN", "CREATE_INSTANT_ALIAS", domain.DomainName, domain.DomainId);
try
{
@@ -2560,8 +2538,7 @@ namespace WebsitePanel.EnterpriseServer
return 0;
// place log record
- TaskManager.StartTask("DOMAIN", "DELETE_INSTANT_ALIAS", domain.DomainName);
- TaskManager.ItemId = domain.DomainId;
+ TaskManager.StartTask("DOMAIN", "DELETE_INSTANT_ALIAS", domain.DomainName, domain.DomainId);
try
{
@@ -2695,8 +2672,7 @@ namespace WebsitePanel.EnterpriseServer
return 0;
// place log record
- TaskManager.StartTask("DNS_ZONE", "ADD_RECORD", domain.DomainName);
- TaskManager.ItemId = domain.ZoneItemId;
+ TaskManager.StartTask("DNS_ZONE", "ADD_RECORD", domain.DomainName, domain.ZoneItemId);
try
{
@@ -2736,8 +2712,7 @@ namespace WebsitePanel.EnterpriseServer
{
// place log record
DomainInfo domain = GetDomain(domainId);
- TaskManager.StartTask("DNS_ZONE", "UPDATE_RECORD", domain.DomainName);
- TaskManager.ItemId = domain.ZoneItemId;
+ TaskManager.StartTask("DNS_ZONE", "UPDATE_RECORD", domain.DomainName, domain.ZoneItemId);
try
{
@@ -2783,8 +2758,7 @@ namespace WebsitePanel.EnterpriseServer
try
{
// place log record
- TaskManager.StartTask("DNS_ZONE", "DELETE_RECORD", domain.DomainName);
- TaskManager.ItemId = domain.ZoneItemId;
+ TaskManager.StartTask("DNS_ZONE", "DELETE_RECORD", domain.DomainName, domain.ZoneItemId);
DNSServer dns = new DNSServer();
ServiceProviderProxy.Init(dns, zoneItem.ServiceId);
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/SharePoint/HostedSharePointServerController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SharePoint/HostedSharePointServerController.cs
similarity index 97%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/SharePoint/HostedSharePointServerController.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SharePoint/HostedSharePointServerController.cs
index eebff84b..886936a1 100644
--- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/SharePoint/HostedSharePointServerController.cs
+++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SharePoint/HostedSharePointServerController.cs
@@ -341,6 +341,7 @@ namespace WebsitePanel.EnterpriseServer.Code.SharePoint
}
TaskManager.ItemId = itemId;
+
return itemId;
}
catch (Exception ex)
@@ -380,8 +381,7 @@ namespace WebsitePanel.EnterpriseServer.Code.SharePoint
string siteName = origItem.Name.Replace(String.Format("{0}://", rootWebApplicationUri.Scheme), String.Empty);
// Log operation.
- TaskManager.StartTask("HOSTEDSHAREPOINT", "DELETE_SITE", origItem.Name);
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("HOSTEDSHAREPOINT", "DELETE_SITE", origItem.Name, itemId);
try
{
@@ -459,8 +459,7 @@ namespace WebsitePanel.EnterpriseServer.Code.SharePoint
}
// Log operation.
- TaskManager.StartTask("HOSTEDSHAREPOINT", "BACKUP_SITE_COLLECTION", origItem.Name);
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("HOSTEDSHAREPOINT", "BACKUP_SITE_COLLECTION", origItem.Name, itemId);
try
{
@@ -550,8 +549,7 @@ namespace WebsitePanel.EnterpriseServer.Code.SharePoint
}
// Log operation.
- TaskManager.StartTask("HOSTEDSHAREPOINT", "BACKUP_SITE_COLLECTION", origItem.Name);
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("HOSTEDSHAREPOINT", "BACKUP_SITE_COLLECTION", origItem.Name, itemId);
try
{
@@ -850,8 +848,7 @@ namespace WebsitePanel.EnterpriseServer.Code.SharePoint
if (accountCheck < 0) return accountCheck;
// place log record
- TaskManager.StartTask("HOSTED_SHAREPOINT", "SET_ORG_LIMITS");
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("HOSTED_SHAREPOINT", "SET_ORG_LIMITS", itemId);
try
{
@@ -923,8 +920,8 @@ namespace WebsitePanel.EnterpriseServer.Code.SharePoint
}
// place log record
- TaskManager.StartTask("HOSTED_SHAREPOINT", "CALCULATE_DISK_SPACE");
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("HOSTED_SHAREPOINT", "CALCULATE_DISK_SPACE", itemId);
+
try
{
Organization org = (Organization)PackageController.GetPackageItem(itemId);
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/SharePoint/SharePointServerController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SharePoint/SharePointServerController.cs
similarity index 96%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/SharePoint/SharePointServerController.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SharePoint/SharePointServerController.cs
index 63382be7..f516bfa6 100644
--- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/SharePoint/SharePointServerController.cs
+++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SharePoint/SharePointServerController.cs
@@ -268,8 +268,7 @@ namespace WebsitePanel.EnterpriseServer
return BusinessErrorCodes.ERROR_SHAREPOINT_PACKAGE_ITEM_NOT_FOUND;
// place log record
- TaskManager.StartTask("SHAREPOINT", "DELETE_SITE", origItem.Name);
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("SHAREPOINT", "DELETE_SITE", origItem.Name, itemId);
try
{
@@ -340,8 +339,7 @@ namespace WebsitePanel.EnterpriseServer
return null;
// place log record
- TaskManager.StartTask("SHAREPOINT", "BACKUP_SITE", item.Name);
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("SHAREPOINT", "BACKUP_SITE", item.Name, itemId);
try
{
@@ -432,8 +430,7 @@ namespace WebsitePanel.EnterpriseServer
if (packageCheck < 0) return packageCheck;
// place log record
- TaskManager.StartTask("SHAREPOINT", "RESTORE_SITE", item.Name);
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("SHAREPOINT", "RESTORE_SITE", item.Name, itemId);
try
{
@@ -520,8 +517,8 @@ namespace WebsitePanel.EnterpriseServer
if (packageCheck < 0) return packageCheck;
// place log record
- TaskManager.StartTask("SHAREPOINT", "INSTALL_WEBPARTS", item.Name);
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("SHAREPOINT", "INSTALL_WEBPARTS", item.Name, itemId);
+
TaskManager.WriteParameter("Package file", packageFile);
try
@@ -592,8 +589,8 @@ namespace WebsitePanel.EnterpriseServer
if (packageCheck < 0) return packageCheck;
// place log record
- TaskManager.StartTask("SHAREPOINT", "UNINSTALL_WEBPARTS", item.Name);
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("SHAREPOINT", "UNINSTALL_WEBPARTS", item.Name, itemId);
+
TaskManager.WriteParameter("Package name", packageName);
try
@@ -736,8 +733,7 @@ namespace WebsitePanel.EnterpriseServer
if (packageCheck < 0) return packageCheck;
// place log record
- TaskManager.StartTask("SHAREPOINT", "UPDATE_USER", origItem.Name);
- TaskManager.ItemId = item.Id;
+ TaskManager.StartTask("SHAREPOINT", "UPDATE_USER", origItem.Name, item.Id);
try
{
@@ -785,8 +781,7 @@ namespace WebsitePanel.EnterpriseServer
return BusinessErrorCodes.ERROR_SHAREPOINT_USERS_PACKAGE_ITEM_NOT_FOUND;
// place log record
- TaskManager.StartTask("SHAREPOINT", "DELETE_USER", origItem.Name);
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("SHAREPOINT", "DELETE_USER", origItem.Name, itemId);
try
{
@@ -925,8 +920,7 @@ namespace WebsitePanel.EnterpriseServer
if (packageCheck < 0) return packageCheck;
// place log record
- TaskManager.StartTask("SHAREPOINT", "UPDATE_GROUP", origItem.Name);
- TaskManager.ItemId = item.Id;
+ TaskManager.StartTask("SHAREPOINT", "UPDATE_GROUP", origItem.Name, item.Id);
try
{
@@ -962,8 +956,7 @@ namespace WebsitePanel.EnterpriseServer
return BusinessErrorCodes.ERROR_SHAREPOINT_GROUPS_PACKAGE_ITEM_NOT_FOUND;
// place log record
- TaskManager.StartTask("SHAREPOINT", "DELETE_GROUP", origItem.Name);
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("SHAREPOINT", "DELETE_GROUP", origItem.Name, itemId);
try
{
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/StatisticsServers/StatisticsServerController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/StatisticsServers/StatisticsServerController.cs
similarity index 96%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/StatisticsServers/StatisticsServerController.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/StatisticsServers/StatisticsServerController.cs
index 1f060c99..29b33e14 100644
--- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/StatisticsServers/StatisticsServerController.cs
+++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/StatisticsServers/StatisticsServerController.cs
@@ -226,8 +226,7 @@ namespace WebsitePanel.EnterpriseServer
item.SiteId = origItem.SiteId;
// place log record
- TaskManager.StartTask("STATS_SITE", "UPDATE", origItem.Name);
- TaskManager.ItemId = origItem.Id;
+ TaskManager.StartTask("STATS_SITE", "UPDATE", origItem.Name, origItem.Id);
try
{
@@ -263,8 +262,7 @@ namespace WebsitePanel.EnterpriseServer
return BusinessErrorCodes.ERROR_STATS_PACKAGE_ITEM_NOT_FOUND;
// place log record
- TaskManager.StartTask("STATS_SITE", "DELETE", origItem.Name);
- TaskManager.ItemId = origItem.Id;
+ TaskManager.StartTask("STATS_SITE", "DELETE", origItem.Name, itemId);
try
{
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/System/SystemController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/System/SystemController.cs
similarity index 94%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/System/SystemController.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/System/SystemController.cs
index 322e30d6..3f010eec 100644
--- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/System/SystemController.cs
+++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/System/SystemController.cs
@@ -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
{
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Tasks/SendEmailNotification.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Tasks/SendEmailNotification.cs
similarity index 76%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Tasks/SendEmailNotification.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Tasks/SendEmailNotification.cs
index 67d246b2..e36eacb6 100644
--- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Tasks/SendEmailNotification.cs
+++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Tasks/SendEmailNotification.cs
@@ -40,23 +40,25 @@ namespace WebsitePanel.EnterpriseServer.Tasks
public override void OnComplete()
{
- if (!TaskManager.HasErrors)
+ BackgroundTask topTask = 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
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Tasks/TaskController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Tasks/TaskController.cs
new file mode 100644
index 00000000..b6207b84
--- /dev/null
+++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Tasks/TaskController.cs
@@ -0,0 +1,243 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Text;
+using System.Xml;
+using System.Xml.Serialization;
+namespace WebsitePanel.EnterpriseServer
+{
+ public class TaskController
+ {
+ public static BackgroundTask GetTask(string taskId)
+ {
+ BackgroundTask task = ObjectUtils.FillObjectFromDataReader(
+ DataProvider.GetBackgroundTask(taskId));
+
+ if (task == null)
+ {
+ return null;
+ }
+
+ task.Params = GetTaskParams(task.Id);
+
+ return task;
+ }
+
+ public static List GetScheduleTasks(int scheduleId)
+ {
+ return ObjectUtils.CreateListFromDataReader(
+ DataProvider.GetScheduleBackgroundTasks(scheduleId));
+ }
+
+ public static List GetTasks()
+ {
+ var user = SecurityContext.User;
+
+ return GetTasks(user.IsPeer ? user.OwnerId : user.UserId);
+ }
+
+ public static List GetTasks(int actorId)
+ {
+ return ObjectUtils.CreateListFromDataReader(
+ DataProvider.GetBackgroundTasks(actorId));
+ }
+
+ public static List GetTasks(Guid guid)
+ {
+ return ObjectUtils.CreateListFromDataReader(
+ DataProvider.GetBackgroundTasks(guid));
+ }
+
+ public static List GetProcessTasks(BackgroundTaskStatus status)
+ {
+ return ObjectUtils.CreateListFromDataReader(
+ DataProvider.GetProcessBackgroundTasks(status));
+ }
+
+ public static BackgroundTask GetTopTask(Guid guid)
+ {
+ BackgroundTask task = ObjectUtils.FillObjectFromDataReader(
+ DataProvider.GetBackgroundTopTask(guid));
+
+ if (task == null)
+ {
+ return null;
+ }
+
+ task.Params = GetTaskParams(task.Id);
+
+ return task;
+ }
+
+ public static int AddTask(BackgroundTask task)
+ {
+ int taskId = DataProvider.AddBackgroundTask(task.Guid, task.TaskId, task.ScheduleId, task.PackageId, task.UserId,
+ task.EffectiveUserId, task.TaskName, task.ItemId, task.ItemName,
+ task.StartDate, task.IndicatorCurrent, task.IndicatorMaximum,
+ task.MaximumExecutionTime, task.Source, task.Severity, task.Completed,
+ task.NotifyOnComplete, task.Status);
+
+ AddTaskParams(taskId, task.Params);
+
+ DataProvider.AddBackgroundTaskStack(taskId);
+
+ return taskId;
+ }
+
+ public static void UpdateTaskWithParams(BackgroundTask task)
+ {
+ if (UpdateTask(task))
+ {
+ UpdateBackgroundTaskParams(task);
+ }
+ }
+
+ public static bool UpdateTask(BackgroundTask task)
+ {
+ if (task.Status == BackgroundTaskStatus.Abort)
+ {
+ DeleteBackgroundTasks(task.Guid);
+
+ return false;
+ }
+
+ if (task.Completed)
+ {
+ DeleteBackgroundTask(task.Id);
+
+ return false;
+ }
+
+ DataProvider.UpdateBackgroundTask(task.Guid, task.Id, task.ScheduleId, task.PackageId, task.TaskName, task.ItemId,
+ task.ItemName, task.FinishDate, task.IndicatorCurrent,
+ task.IndicatorMaximum, task.MaximumExecutionTime, task.Source,
+ task.Severity, task.Completed, task.NotifyOnComplete, task.Status);
+
+ return true;
+ }
+
+ public static void UpdateBackgroundTaskParams(BackgroundTask task)
+ {
+ DataProvider.DeleteBackgroundTaskParams(task.Id);
+
+ AddTaskParams(task.Id, task.Params);
+ }
+
+ public static void DeleteBackgroundTasks(Guid guid)
+ {
+ DataProvider.DeleteBackgroundTasks(guid);
+ }
+
+ public static void DeleteBackgroundTask(int id)
+ {
+ DataProvider.DeleteBackgroundTask(id);
+ }
+
+ public static void AddTaskParams(int taskId, List parameters)
+ {
+ foreach (BackgroundTaskParameter param in SerializeParams(parameters))
+ {
+ DataProvider.AddBackgroundTaskParam(taskId, param.Name, param.SerializerValue, param.TypeName);
+ }
+ }
+
+ public static List GetTaskParams(int taskId)
+ {
+ List parameters = ObjectUtils.CreateListFromDataReader(
+ DataProvider.GetBackgroundTaskParams(taskId));
+
+ return DeserializeParams(parameters);
+ }
+
+ public static void AddLog(BackgroundTaskLogRecord log)
+ {
+ DataProvider.AddBackgroundTaskLog(log.TaskId, log.Date, log.ExceptionStackTrace, log.InnerTaskStart,
+ log.Severity, log.Text, log.TextIdent, BuildParametersXml(log.TextParameters));
+ }
+
+ public static List GetLogs(BackgroundTask task, DateTime startLogTime)
+ {
+ if (startLogTime <= task.StartDate)
+ {
+ startLogTime = task.StartDate;
+ }
+
+ List logs = ObjectUtils.CreateListFromDataReader(
+ DataProvider.GetBackgroundTaskLogs(task.Id, startLogTime));
+
+ foreach (BackgroundTaskLogRecord log in logs)
+ {
+ log.TextParameters = ReBuildParametersXml(log.XmlParameters);
+ }
+
+ return logs;
+ }
+
+ private static List SerializeParams(List parameters)
+ {
+ foreach (BackgroundTaskParameter param in parameters)
+ {
+ var type = param.Value.GetType();
+ param.TypeName = type.FullName;
+
+ XmlSerializer serializer = new XmlSerializer(type);
+ MemoryStream ms = new MemoryStream();
+ serializer.Serialize(ms, param.Value);
+
+ ms.Position = 0;
+ StreamReader sr = new StreamReader(ms);
+
+ param.SerializerValue = sr.ReadToEnd();
+ }
+
+ return parameters;
+ }
+
+ private static List DeserializeParams(List parameters)
+ {
+ foreach (BackgroundTaskParameter param in parameters)
+ {
+ XmlSerializer deserializer = new XmlSerializer(Type.GetType(param.TypeName));
+ StringReader sr = new StringReader(param.SerializerValue);
+
+ param.Value = deserializer.Deserialize(sr);
+ }
+
+ return parameters;
+ }
+
+ private static string BuildParametersXml(string[] parameters)
+ {
+ XmlDocument xmlDoc = new XmlDocument();
+ XmlElement nodeProps = xmlDoc.CreateElement("parameters");
+
+ if (parameters != null)
+ {
+ foreach (string parameter in parameters)
+ {
+ XmlElement nodeProp = xmlDoc.CreateElement("parameter");
+ nodeProp.SetAttribute("value", parameter);
+ nodeProps.AppendChild(nodeProp);
+ }
+ }
+ return nodeProps.OuterXml;
+ }
+
+ private static string[] ReBuildParametersXml(string parameters)
+ {
+ var textParameters = new List();
+
+ var xmlDoc = new XmlDocument();
+ xmlDoc.LoadXml(parameters);
+
+ if (xmlDoc != null)
+ {
+ textParameters.AddRange(from XmlNode xmlParameter in xmlDoc.SelectNodes("parameters/parameter") select xmlParameter.Attributes.GetNamedItem("value").Value);
+ }
+
+ return textParameters.ToArray();
+ }
+ }
+}
+
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Tasks/TaskEventHandler.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Tasks/TaskEventHandler.cs
similarity index 100%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Tasks/TaskEventHandler.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Tasks/TaskEventHandler.cs
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Tasks/TaskManager.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Tasks/TaskManager.cs
new file mode 100644
index 00000000..0e8ebe0b
--- /dev/null
+++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Tasks/TaskManager.cs
@@ -0,0 +1,857 @@
+// 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.Collections.Concurrent;
+using System.IO;
+using System.Threading;
+using System.Collections;
+using System.Collections.Generic;
+using System.Text;
+using System.Web;
+using System.Web.Caching;
+using System.Xml;
+using System.Reflection;
+using WebsitePanel.Providers.Common;
+using System.Diagnostics;
+using System.Linq;
+
+namespace WebsitePanel.EnterpriseServer
+{
+ public class TaskManager
+ {
+ private static Hashtable eventHandlers = null;
+ //using id instead of guid
+ private static ConcurrentDictionary _taskThreadsDictionary = new ConcurrentDictionary();
+
+ // purge timer, used for killing old tasks from the hash
+ static Timer purgeTimer = new Timer(new TimerCallback(PurgeCompletedTasks),
+ null,
+ 60000, // start from 1 minute
+ 60000); // invoke each minute
+
+ public static Guid Guid
+ {
+ get
+ {
+ Guid? guid = (Guid?)Thread.GetData(Thread.GetNamedDataSlot("BackgroundTaskGuid"));
+ if (!guid.HasValue)
+ {
+ guid = Guid.NewGuid();
+ Thread.SetData(Thread.GetNamedDataSlot("BackgroundTaskGuid"), guid.Value);
+ }
+
+ return guid.Value;
+ }
+ }
+
+ public static void StartTask(string source, string taskName)
+ {
+ StartTask(source, taskName, 0);
+ }
+
+ public static void StartTask(string source, string taskName, int itemId)
+ {
+ StartTask(source, taskName, 0, new List());
+ }
+
+ public static void StartTask(string source, string taskName, int itemId, BackgroundTaskParameter parameter)
+ {
+ StartTask(source, taskName, null, itemId, parameter);
+ }
+
+ public static void StartTask(string source, string taskName, int itemId, List parameters)
+ {
+ StartTask(source, taskName, null, itemId, parameters);
+ }
+
+ public static void StartTask(string source, string taskName, object itemName)
+ {
+ StartTask(source, taskName, itemName, 0);
+ }
+
+ public static void StartTask(string source, string taskName, object itemName, int itemId)
+ {
+ StartTask(source, taskName, itemName, itemId, new List());
+ }
+
+ public static void StartTask(string source, string taskName, object itemName, BackgroundTaskParameter parameter)
+ {
+ StartTask(source, taskName, itemName, 0, parameter);
+ }
+
+ public static void StartTask(string source, string taskName, object itemName, List parameters)
+ {
+ StartTask(source, taskName, itemName, 0, parameters);
+ }
+
+ public static void StartTask(string source, string taskName, object itemName, int itemId, BackgroundTaskParameter parameter)
+ {
+ StartTask(source, taskName, itemName, itemId, 0, parameter);
+ }
+
+ public static void StartTask(string source, string taskName, object itemName, int itemId, List parameters)
+ {
+ StartTask(source, taskName, itemName, itemId, 0, 0, -1, parameters);
+ }
+
+ public static void StartTask(string source, string taskName, object itemName, int itemId, int packageId, BackgroundTaskParameter parameter)
+ {
+ List parameters = new List();
+ if (parameter != null)
+ {
+ parameters.Add(parameter);
+ }
+
+ StartTask(source, taskName, itemName, itemId, 0, packageId, -1, parameters);
+ }
+
+ public static void StartTask(string taskId, string source, string taskName, object itemName, int itemId)
+ {
+ StartTask(taskId, source, taskName, itemName, itemId, 0, 0, -1, new List());
+ }
+
+ public static void StartTask(string taskId, string source, string taskName, object itemName, int itemId, int packageId)
+ {
+ StartTask(taskId, source, taskName, itemName, itemId, 0, packageId, -1, new List());
+ }
+
+ public static void StartTask(string source, string taskName, object itemName, int itemId,
+ int scheduleId, int packageId, int maximumExecutionTime, List parameters)
+ {
+ StartTask(null, source, taskName, itemName, itemId, scheduleId, packageId, maximumExecutionTime, parameters);
+ }
+
+ public static void StartTask(string taskId, string source, string taskName, object itemName, int itemId,
+ int scheduleId, int packageId, int maximumExecutionTime, List parameters)
+ {
+ if (String.IsNullOrEmpty(taskId))
+ {
+ taskId = Guid.NewGuid().ToString("N");
+ }
+
+ var user = SecurityContext.User;
+
+ int userId = user.OwnerId == 0
+ ? user.UserId
+ : user.OwnerId;
+
+ int effectiveUserId = user.UserId;
+
+ String itemNameStr = itemName != null
+ ? itemName.ToString()
+ : String.Empty;
+ BackgroundTask task = new BackgroundTask(Guid, taskId, userId, effectiveUserId, source, taskName, itemNameStr,
+ itemId, scheduleId, packageId, maximumExecutionTime, parameters);
+
+
+ List tasks = TaskController.GetTasks(Guid);
+
+ if (tasks.Count > 0)
+ {
+ BackgroundTask rootTask = tasks[0];
+
+ BackgroundTaskLogRecord log = new BackgroundTaskLogRecord(
+ rootTask.Id,
+ tasks.Count - 1,
+ true,
+ String.Format("{0}_{1}", source, taskName),
+ new string[] { itemNameStr });
+
+
+ TaskController.AddLog(log);
+ }
+
+ // call event handler
+ CallTaskEventHandler(task, false);
+
+ AddTaskThread(TaskController.AddTask(task), Thread.CurrentThread);
+ }
+
+ public static void WriteParameter(string parameterName, object parameterValue)
+ {
+ string val = parameterValue != null ? parameterValue.ToString() : "";
+ WriteLogRecord(Guid, 0, parameterName + ": " + val, null, null);
+ }
+
+ public static void Write(string text, params string[] textParameters)
+ {
+ // INFO
+ WriteLogRecord(Guid, 0, text, null, textParameters);
+ }
+
+ public static void WriteWarning(string text, params string[] textParameters)
+ {
+ WriteWarning(Guid, text, textParameters);
+ }
+
+ public static void WriteWarning(Guid guid, string text, params string[] textParameters)
+ {
+ // WARNING
+ WriteLogRecord(guid, 1, text, null, textParameters);
+ }
+
+ public static Exception WriteError(Exception ex)
+ {
+ // ERROR
+ WriteLogRecord(Guid, 2, ex.Message, ex.StackTrace);
+
+ return new Exception((TopTask != null)
+ ? String.Format("Error executing '{0}' task on '{1}' {2}",
+ TopTask.TaskName, TopTask.ItemName, TopTask.Source)
+ : String.Format("Error executing task"), ex);
+ }
+
+ public static void WriteError(Exception ex, string text, params string[] textParameters)
+ {
+ // ERROR
+ string[] prms = new string[] { ex.Message };
+ if (textParameters != null && textParameters.Length > 0)
+ {
+ prms = new string[textParameters.Length + 1];
+ Array.Copy(textParameters, 0, prms, 1, textParameters.Length);
+ prms[0] = ex.Message;
+ }
+
+ WriteLogRecord(Guid, 2, text, ex.Message + "\n" + ex.StackTrace, prms);
+ }
+
+ public static void WriteError(string text, params string[] textParameters)
+ {
+ // ERROR
+ WriteLogRecord(Guid, 2, text, null, textParameters);
+ }
+
+ private static void WriteLogRecord(Guid guid, int severity, string text, string stackTrace, params string[] textParameters)
+ {
+ List tasks = TaskController.GetTasks(guid);
+
+ if (tasks.Count > 0)
+ {
+ BackgroundTask rootTask = tasks[0];
+
+ BackgroundTaskLogRecord log = new BackgroundTaskLogRecord(
+ rootTask.Id,
+ tasks.Count - 1,
+ false,
+ text,
+ stackTrace,
+ textParameters);
+
+ TaskController.AddLog(log);
+
+ if (severity > rootTask.Severity)
+ {
+ rootTask.Severity = severity;
+
+ TaskController.UpdateTask(rootTask);
+ }
+ }
+ }
+
+ public static void CompleteTask()
+ {
+ List tasks = TaskController.GetTasks(Guid);
+
+ if (tasks.Count == 0)
+ return;
+
+ BackgroundTask topTask = tasks[tasks.Count - 1];
+
+ // call event handler
+ CallTaskEventHandler(topTask, true);
+
+ // finish task
+ topTask.FinishDate = DateTime.Now;
+ topTask.Completed = true;
+
+ // write task execution result to database
+ if (tasks.Count == 1) // single task
+ {
+ // write to database
+ AddAuditLog(topTask);
+ }
+
+ TaskController.UpdateTask(topTask);
+ StopProcess(topTask);
+ }
+
+ public static void UpdateParam(String name, Object value)
+ {
+ BackgroundTask topTask = TopTask;
+
+ if (topTask == null)
+ return;
+
+ topTask.UpdateParamValue(name, value);
+
+ TaskController.UpdateTaskWithParams(topTask);
+ }
+
+ public static int ItemId
+ {
+ set
+ {
+ BackgroundTask topTask = TopTask;
+
+ if (topTask == null)
+ return;
+
+ topTask.ItemId = value;
+
+ TaskController.UpdateTask(topTask);
+ }
+ }
+
+ public static String ItemName
+ {
+ set
+ {
+ BackgroundTask topTask = TopTask;
+
+ if (topTask == null)
+ return;
+
+ topTask.ItemName = value;
+
+ TaskController.UpdateTask(topTask);
+ }
+ }
+
+ public static void UpdateParams(Hashtable parameters)
+ {
+ BackgroundTask topTask = TopTask;
+
+ if (topTask == null)
+ return;
+
+ foreach (string key in parameters.Keys)
+ {
+ topTask.UpdateParamValue(key, parameters[key]);
+ }
+
+ TaskController.UpdateTaskWithParams(topTask);
+ }
+
+ static string FormatExecutionLog(BackgroundTask task)
+ {
+ StringWriter sw = new StringWriter();
+ XmlWriter writer = new XmlTextWriter(sw);
+
+ writer.WriteStartElement("log");
+
+ // parameters
+ writer.WriteStartElement("parameters");
+ foreach (BackgroundTaskParameter param in task.Params)
+ {
+ writer.WriteStartElement("parameter");
+ writer.WriteAttributeString("name", param.Name);
+ writer.WriteString(param.Value.ToString());
+
+ writer.WriteEndElement();
+ }
+ writer.WriteEndElement(); // parameters
+
+ // records
+ writer.WriteStartElement("records");
+ foreach (BackgroundTaskLogRecord record in task.Logs)
+ {
+ writer.WriteStartElement("record");
+ writer.WriteAttributeString("severity", record.Severity.ToString());
+ writer.WriteAttributeString("date", record.Date.ToString(System.Globalization.CultureInfo.InvariantCulture));
+ writer.WriteAttributeString("ident", record.TextIdent.ToString());
+
+ // text
+ writer.WriteElementString("text", record.Text);
+
+ // text parameters
+ if (record.TextParameters != null && record.TextParameters.Length > 0)
+ {
+ writer.WriteStartElement("textParameters");
+ foreach (string prm in record.TextParameters)
+ {
+ writer.WriteElementString("value", prm);
+ }
+ writer.WriteEndElement(); // textParameters
+ }
+
+ // stack trace
+ writer.WriteElementString("stackTrace", record.ExceptionStackTrace);
+ writer.WriteEndElement();
+ }
+ writer.WriteEndElement();
+ writer.WriteEndElement();
+
+ return sw.ToString();
+ }
+
+ static void PurgeCompletedTasks(object obj)
+ {
+ List tasks = TaskController.GetTasks(Guid);
+
+ foreach (BackgroundTask task in tasks)
+ {
+ if (task.MaximumExecutionTime != -1
+ && ((TimeSpan)(DateTime.Now - task.StartDate)).TotalSeconds > task.MaximumExecutionTime)
+ {
+ task.Status = BackgroundTaskStatus.Stopping;
+
+ TaskController.UpdateTask(task);
+ }
+ }
+ }
+
+ public static int IndicatorMaximum
+ {
+ set
+ {
+ BackgroundTask topTask = TopTask;
+
+ if (topTask == null)
+ {
+ return;
+ }
+
+ topTask.IndicatorMaximum = value;
+
+ TaskController.UpdateTask(topTask);
+ }
+ }
+
+ public static int IndicatorCurrent
+ {
+ get
+ {
+ return TopTask.IndicatorCurrent;
+ }
+ set
+ {
+ BackgroundTask topTask = TopTask;
+
+ if (topTask == null)
+ {
+ return;
+ }
+
+ topTask.IndicatorCurrent = value;
+
+ TaskController.UpdateTask(topTask);
+ }
+ }
+
+ public static int MaximumExecutionTime
+ {
+ get
+ {
+ return TopTask.MaximumExecutionTime;
+ }
+ set
+ {
+ BackgroundTask topTask = TopTask;
+
+ if (topTask == null)
+ {
+ return;
+ }
+
+ topTask.MaximumExecutionTime = value;
+
+ TaskController.UpdateTask(topTask);
+ }
+ }
+
+ public static bool HasErrors(BackgroundTask task)
+ {
+ return task.Severity == 2;
+ }
+
+ public static BackgroundTask TopTask
+ {
+ get { return TaskController.GetTopTask(Guid); }
+ }
+
+ public static BackgroundTask GetTask(string taskId)
+ {
+ BackgroundTask task = TaskController.GetTask(taskId);
+
+ if (task == null)
+ return null;
+
+ return task;
+ }
+
+ public static BackgroundTask GetTaskWithLogRecords(string taskId, DateTime startLogTime)
+ {
+ BackgroundTask task = GetTask(taskId);
+
+ if (task == null)
+ return null;
+
+ task.Logs = TaskController.GetLogs(task, startLogTime);
+
+ return task;
+ }
+
+ public static Dictionary GetScheduledTasks()
+ {
+ Dictionary scheduledTasks = new Dictionary();
+ try
+ {
+ foreach (BackgroundTask task in TaskController.GetTasks())
+ {
+ if (task.ScheduleId > 0
+ && !task.Completed
+ && (task.Status == BackgroundTaskStatus.Run || task.Status == BackgroundTaskStatus.Starting)
+ && !scheduledTasks.ContainsKey(task.ScheduleId))
+ scheduledTasks.Add(task.ScheduleId, task);
+ }
+ }
+ catch { }
+
+ return scheduledTasks;
+ }
+
+ public static void SetTaskNotifyOnComplete(string taskId)
+ {
+ BackgroundTask task = GetTask(taskId);
+
+ if (task == null)
+ return;
+
+ task.NotifyOnComplete = true;
+ }
+
+ internal static void AddTaskThread(int taskId, Thread taskThread)
+ {
+ if (_taskThreadsDictionary.ContainsKey(taskId))
+ _taskThreadsDictionary[taskId] = taskThread;
+ else
+ _taskThreadsDictionary.AddOrUpdate(taskId, taskThread, (key, oldValue) => taskThread);
+ }
+
+ public static void StopTask(string taskId)
+ {
+ BackgroundTask task = GetTask(taskId);
+
+ if (task == null)
+ {
+ return;
+ }
+
+ task.Status = BackgroundTaskStatus.Abort;
+
+ StopProcess(task);
+
+ if (!HasErrors(task))
+ {
+ task.Severity = 1;
+ }
+
+ task.FinishDate = DateTime.Now;
+
+ WriteWarning(task.Guid, "Task aborted by user");
+
+ AddAuditLog(task);
+
+ TaskController.UpdateTask(task);
+ }
+
+ private static void StopProcess(BackgroundTask task)
+ {
+ if (_taskThreadsDictionary.ContainsKey(task.Id))
+ {
+ if (_taskThreadsDictionary[task.Id] != null)
+ if (_taskThreadsDictionary[task.Id].IsAlive)
+ {
+ if (!task.Completed)
+ _taskThreadsDictionary[task.Id].Abort();
+ _taskThreadsDictionary[task.Id] = null;
+ }
+ Thread deleted;
+ _taskThreadsDictionary.TryRemove(task.Id, out deleted);
+ }
+ }
+
+ private static void AddAuditLog(BackgroundTask task)
+ {
+ task.Logs = TaskController.GetLogs(task, task.StartDate);
+
+ string executionLog = FormatExecutionLog(task);
+
+ UserInfo user = UserController.GetUserInternally(task.EffectiveUserId);
+ string username = user != null ? user.Username : null;
+
+ AuditLog.AddAuditLogRecord(task.TaskId, task.Severity, task.EffectiveUserId,
+ username, task.PackageId, task.ItemId,
+ task.ItemName, task.StartDate, task.FinishDate, task.Source,
+ task.TaskName, executionLog);
+ }
+
+ public static List GetUserTasks(int userId)
+ {
+ List list = new List();
+
+ // try to get user first
+ UserInfo user = UserController.GetUser(userId);
+ if (user == null)
+ return list; // prohibited user
+
+ // get user tasks
+ foreach (BackgroundTask task in TaskController.GetTasks(user.IsPeer ? user.OwnerId : user.UserId))
+ {
+ if (task.UserId == userId && !task.Completed
+ && task.Status == BackgroundTaskStatus.Run)
+ {
+ list.Add(task);
+ }
+ }
+ return list;
+ }
+
+ public static List GetUserCompletedTasks(int userId)
+ {
+ return new List();
+ }
+
+ public static int GetTasksNumber()
+ {
+ return TaskController.GetTasks().Count;
+ }
+
+ #region Private Helpers
+
+ private static void CallTaskEventHandler(BackgroundTask task, bool onComplete)
+ {
+ string[] taskHandlers = GetTaskEventHandlers(task.Source, task.TaskName);
+ if (taskHandlers != null)
+ {
+ foreach (string taskHandler in taskHandlers)
+ {
+ try
+ {
+ Type handlerType = Type.GetType(taskHandler);
+ TaskEventHandler handler = (TaskEventHandler)Activator.CreateInstance(handlerType);
+
+ if (handler != null)
+ {
+ if (onComplete)
+ handler.OnComplete();
+ else
+ handler.OnStart();
+ }
+ }
+ catch (Exception ex)
+ {
+ WriteError(ex, "Error executing task event handler: {0}", ex.Message);
+ }
+ }
+ }
+ }
+
+ private static string[] GetTaskEventHandlers(string source, string taskName)
+ {
+ // load configuration
+ string appRoot = AppDomain.CurrentDomain.BaseDirectory;
+ string path = Path.Combine(appRoot, "TaskEventHandlers.config");
+
+ if (eventHandlers == null)
+ {
+ eventHandlers = Hashtable.Synchronized(new Hashtable());
+
+ // load from XML
+ if (File.Exists(path))
+ {
+ List xmlConfigs = new List();
+ xmlConfigs.Add(new XmlDocument());
+ xmlConfigs[0].Load(path);
+ // Lookup for external references first
+ XmlNodeList xmlReferences = xmlConfigs[0].SelectNodes("//reference");
+ foreach (XmlElement xmlReference in xmlReferences)
+ {
+ string referencePath = Path.Combine(appRoot, xmlReference.GetAttribute("src"));
+ if (File.Exists(referencePath))
+ {
+ XmlDocument xmldoc = new XmlDocument();
+ xmldoc.Load(referencePath);
+ xmlConfigs.Add(xmldoc);
+ }
+ }
+
+ // parse XML
+ foreach (XmlDocument xml in xmlConfigs)
+ {
+ XmlNodeList xmlHandlers = xml.SelectNodes("//handler");
+ foreach (XmlNode xmlHandler in xmlHandlers)
+ {
+ string keyName = xmlHandler.ParentNode.Attributes["source"].Value
+ + xmlHandler.ParentNode.Attributes["name"].Value;
+
+ // get handlers collection
+ List taskHandlers = (List)eventHandlers[keyName];
+ if (taskHandlers == null)
+ {
+ taskHandlers = new List();
+ eventHandlers[keyName] = taskHandlers;
+ }
+
+ string handlerType = xmlHandler.Attributes["type"].Value;
+ taskHandlers.Add(handlerType);
+ }
+ }
+ }
+ }
+
+ string fullTaskName = source + taskName;
+ List handlersList = (List)eventHandlers[fullTaskName];
+ return handlersList == null ? null : handlersList.ToArray();
+ }
+
+ #endregion
+
+
+ #region ResultTasks
+
+ public static void CompleteResultTask(ResultObject res, string errorCode, Exception ex, string errorMessage)
+ {
+ if (res != null)
+ {
+ res.IsSuccess = false;
+
+ if (!string.IsNullOrEmpty(errorCode))
+ res.ErrorCodes.Add(errorCode);
+ }
+
+ if (ex != null)
+ TaskManager.WriteError(ex);
+
+ if (!string.IsNullOrEmpty(errorMessage))
+ TaskManager.WriteError(errorMessage);
+
+ //LogRecord.
+ CompleteTask();
+
+
+ }
+
+ public static void CompleteResultTask(ResultObject res, string errorCode, Exception ex)
+ {
+ CompleteResultTask(res, errorCode, ex, null);
+ }
+
+ public static void CompleteResultTask(ResultObject res, string errorCode)
+ {
+ CompleteResultTask(res, errorCode, null, null);
+ }
+
+ public static void CompleteResultTask(ResultObject res)
+ {
+ CompleteResultTask(res, null);
+ }
+
+ public static void CompleteResultTask()
+ {
+ CompleteResultTask(null);
+ }
+
+ public static T StartResultTask(string source, string taskName) where T : ResultObject, new()
+ {
+ StartTask(source, taskName);
+ T res = new T();
+ res.IsSuccess = true;
+ return res;
+ }
+
+ public static T StartResultTask(string source, string taskName, object itemName) where T : ResultObject, new()
+ {
+ StartTask(source, taskName, itemName);
+ T res = new T();
+ res.IsSuccess = true;
+ return res;
+ }
+
+ public static T StartResultTask(string source, string taskName, object itemName, int packageId) where T : ResultObject, new()
+ {
+ StartTask(source, taskName, itemName, 0, packageId, null);
+ T res = new T();
+ res.IsSuccess = true;
+ return res;
+ }
+
+ public static T StartResultTask(string source, string taskName, int packageId) where T : ResultObject, new()
+ {
+ StartTask(source, taskName, null, 0, packageId, null);
+ T res = new T();
+ res.IsSuccess = true;
+ return res;
+ }
+
+ public static T StartResultTask(string source, string taskName, int itemId, BackgroundTaskParameter parameter) where T : ResultObject, new()
+ {
+ StartTask(source, taskName, itemId, parameter);
+ T res = new T();
+ res.IsSuccess = true;
+ return res;
+ }
+
+ public static T StartResultTask(string source, string taskName, int itemId, List parameters) where T : ResultObject, new()
+ {
+ StartTask(source, taskName, itemId, parameters);
+ T res = new T();
+ res.IsSuccess = true;
+ return res;
+ }
+
+ public static T StartResultTask(string source, string taskName, int itemId, object itemName, int packageId) where T : ResultObject, new()
+ {
+ StartTask(source, taskName, itemName, itemId, packageId, null);
+ T res = new T();
+ res.IsSuccess = true;
+ return res;
+ }
+
+ public static T StartResultTask(string source, string taskName, Guid taskId, object itemName, int packageId) where T : ResultObject, new()
+ {
+ StartTask(taskId.ToString(), source, taskName, itemName, 0, packageId);
+ T res = new T();
+ res.IsSuccess = true;
+ return res;
+ }
+
+ public static T StartResultTask(string source, string taskName, Guid taskId, int itemId, object itemName, int packageId) where T : ResultObject, new()
+ {
+ StartTask(taskId.ToString(), source, taskName, itemName, itemId, packageId);
+ T res = new T();
+ res.IsSuccess = true;
+ return res;
+ }
+
+ #endregion
+
+ }
+}
+
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Users/UserAsyncWorker.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Users/UserAsyncWorker.cs
similarity index 95%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Users/UserAsyncWorker.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Users/UserAsyncWorker.cs
index d5a66597..33cac57d 100644
--- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Users/UserAsyncWorker.cs
+++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Users/UserAsyncWorker.cs
@@ -103,8 +103,7 @@ namespace WebsitePanel.EnterpriseServer
UserInfo user = UserController.GetUserInternally(userId);
// place log record
- TaskManager.StartTask(taskId, "USER", "DELETE", user.Username);
- TaskManager.ItemId = userId;
+ TaskManager.StartTask(taskId, "USER", "DELETE", user.Username, userId);
try
{
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Users/UserController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Users/UserController.cs
similarity index 94%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Users/UserController.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Users/UserController.cs
index ff333445..4f51e249 100644
--- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Users/UserController.cs
+++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Users/UserController.cs
@@ -448,8 +448,12 @@ namespace WebsitePanel.EnterpriseServer
return BusinessErrorCodes.ERROR_USER_ALREADY_EXISTS;
}
- TaskManager.ItemId = userId;
- TaskManager.TaskParameters["SendLetter"] = sendLetter;
+ BackgroundTask topTask = TaskManager.TopTask;
+
+ topTask.ItemId = userId;
+ topTask.UpdateParamValue("SendLetter", sendLetter);
+
+ TaskController.UpdateTaskWithParams(topTask);
return userId;
}
@@ -518,8 +522,7 @@ namespace WebsitePanel.EnterpriseServer
try
{
// start task
- TaskManager.StartTask(taskId, "USER", "UPDATE", user.Username);
- TaskManager.ItemId = user.UserId;
+ TaskManager.StartTask(taskId, "USER", "UPDATE", user.Username, user.UserId);
// check account
int accountCheck = SecurityContext.CheckAccount(DemandAccount.NotDemo);
@@ -637,10 +640,9 @@ namespace WebsitePanel.EnterpriseServer
UserInfo user = GetUserInternally(userId);
// place log record
- TaskManager.StartTask("USER", "CHANGE_PASSWORD", user.Username);
- TaskManager.ItemId = user.UserId;
+ TaskManager.StartTask("USER", "CHANGE_PASSWORD", user.Username, user.UserId);
- try
+ try
{
DataProvider.ChangeUserPassword(SecurityContext.User.UserId, userId,
@@ -675,8 +677,7 @@ namespace WebsitePanel.EnterpriseServer
UserInfo user = GetUserInternally(userId);
// place log record
- TaskManager.StartTask(taskId, "USER", "CHANGE_STATUS", user.Username);
- TaskManager.ItemId = user.UserId;
+ TaskManager.StartTask(taskId, "USER", "CHANGE_STATUS", user.Username, user.UserId);
// update user packages
List packages = new List();
@@ -796,8 +797,7 @@ namespace WebsitePanel.EnterpriseServer
UserInfo user = GetUserInternally(settings.UserId);
// place log record
- TaskManager.StartTask("USER", "UPDATE_SETTINGS", user.Username);
- TaskManager.ItemId = user.UserId;
+ TaskManager.StartTask("USER", "UPDATE_SETTINGS", user.Username, user.UserId);
try
{
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Virtualization/CreateServerAsyncWorker.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Virtualization/CreateServerAsyncWorker.cs
similarity index 100%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Virtualization/CreateServerAsyncWorker.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Virtualization/CreateServerAsyncWorker.cs
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Virtualization/VirtualizationServerController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Virtualization/VirtualizationServerController.cs
similarity index 95%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Virtualization/VirtualizationServerController.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Virtualization/VirtualizationServerController.cs
index ee986ab1..b6dec6b3 100644
--- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Virtualization/VirtualizationServerController.cs
+++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Virtualization/VirtualizationServerController.cs
@@ -583,9 +583,7 @@ namespace WebsitePanel.EnterpriseServer
string summaryLetterEmail)
{
// start task
- TaskManager.StartTask(taskId, "VPS", "CREATE", vm.Name);
- TaskManager.ItemId = vm.Id;
- TaskManager.PackageId = vm.PackageId;
+ TaskManager.StartTask(taskId, "VPS", "CREATE", vm.Name, vm.Id, vm.PackageId);
try
{
@@ -1647,12 +1645,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion
// start task
- res = TaskManager.StartResultTask("VPS", "UPDATE_HOSTNAME");
-
- // log item info
- TaskManager.ItemId = vm.Id;
- TaskManager.ItemName = vm.Name;
- TaskManager.PackageId = vm.PackageId;
+ res = TaskManager.StartResultTask("VPS", "UPDATE_HOSTNAME", vm.Id, vm.Name, vm.PackageId);
try
{
@@ -1767,9 +1760,13 @@ namespace WebsitePanel.EnterpriseServer
return res;
}
- TaskManager.ItemId = machine.Id;
- TaskManager.ItemName = machine.Name;
- TaskManager.PackageId = machine.PackageId;
+ BackgroundTask topTask = TaskManager.TopTask;
+ topTask.ItemId = machine.Id;
+ topTask.ItemName = machine.Name;
+ topTask.PackageId = machine.PackageId;
+
+ TaskController.UpdateTask(topTask);
+
TaskManager.WriteParameter("New state", state);
// load proxy
@@ -1881,12 +1878,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion
// start task
- res = TaskManager.StartResultTask("VPS", "CHANGE_ADMIN_PASSWORD");
-
- // log item info
- TaskManager.ItemId = vm.Id;
- TaskManager.ItemName = vm.Name;
- TaskManager.PackageId = vm.PackageId;
+ res = TaskManager.StartResultTask("VPS", "CHANGE_ADMIN_PASSWORD", vm.Id, vm.Name, vm.PackageId);
try
{
@@ -1983,12 +1975,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion
// start task
- res = TaskManager.StartResultTask("VPS", "UPDATE_CONFIGURATION");
-
- // log item info
- TaskManager.ItemId = vm.Id;
- TaskManager.ItemName = vm.Name;
- TaskManager.PackageId = vm.PackageId;
+ res = TaskManager.StartResultTask("VPS", "UPDATE_CONFIGURATION", vm.Id, vm.Name, vm.PackageId);
try
{
@@ -2185,12 +2172,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion
// start task
- res = TaskManager.StartResultTask("VPS", "INSERT_DVD_DISK");
-
- // log item info
- TaskManager.ItemId = vm.Id;
- TaskManager.ItemName = vm.Name;
- TaskManager.PackageId = vm.PackageId;
+ res = TaskManager.StartResultTask("VPS", "INSERT_DVD_DISK", vm.Id, vm.Name, vm.PackageId);
try
{
@@ -2246,12 +2228,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion
// start task
- res = TaskManager.StartResultTask("VPS", "EJECT_DVD_DISK");
-
- // log item info
- TaskManager.ItemId = vm.Id;
- TaskManager.ItemName = vm.Name;
- TaskManager.PackageId = vm.PackageId;
+ res = TaskManager.StartResultTask("VPS", "EJECT_DVD_DISK", vm.Id, vm.Name, vm.PackageId);
try
{
@@ -2326,12 +2303,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion
// start task
- res = TaskManager.StartResultTask("VPS", "TAKE_SNAPSHOT");
-
- // log item info
- TaskManager.ItemId = vm.Id;
- TaskManager.ItemName = vm.Name;
- TaskManager.PackageId = vm.PackageId;
+ res = TaskManager.StartResultTask("VPS", "TAKE_SNAPSHOT", vm.Id, vm.Name, vm.PackageId);
try
{
@@ -2401,12 +2373,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion
// start task
- res = TaskManager.StartResultTask("VPS", "APPLY_SNAPSHOT");
-
- // log item info
- TaskManager.ItemId = vm.Id;
- TaskManager.ItemName = vm.Name;
- TaskManager.PackageId = vm.PackageId;
+ res = TaskManager.StartResultTask("VPS", "APPLY_SNAPSHOT", vm.Id, vm.Name, vm.PackageId);
try
{
@@ -2472,12 +2439,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion
// start task
- res = TaskManager.StartResultTask("VPS", "RENAME_SNAPSHOT");
-
- // log item info
- TaskManager.ItemId = vm.Id;
- TaskManager.ItemName = vm.Name;
- TaskManager.PackageId = vm.PackageId;
+ res = TaskManager.StartResultTask("VPS", "RENAME_SNAPSHOT", vm.Id, vm.Name, vm.PackageId);
try
{
@@ -2526,12 +2488,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion
// start task
- res = TaskManager.StartResultTask("VPS", "DELETE_SNAPSHOT");
-
- // log item info
- TaskManager.ItemId = vm.Id;
- TaskManager.ItemName = vm.Name;
- TaskManager.PackageId = vm.PackageId;
+ res = TaskManager.StartResultTask("VPS", "DELETE_SNAPSHOT", vm.Id, vm.Name, vm.PackageId);
try
{
@@ -2587,12 +2544,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion
// start task
- res = TaskManager.StartResultTask("VPS", "DELETE_SNAPSHOT_SUBTREE");
-
- // log item info
- TaskManager.ItemId = vm.Id;
- TaskManager.ItemName = vm.Name;
- TaskManager.PackageId = vm.PackageId;
+ res = TaskManager.StartResultTask("VPS", "DELETE_SNAPSHOT_SUBTREE", vm.Id, vm.Name, vm.PackageId);
try
{
@@ -2776,12 +2728,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion
// start task
- res = TaskManager.StartResultTask("VPS", "ADD_EXTERNAL_IP");
-
- // log item info
- TaskManager.ItemId = vm.Id;
- TaskManager.ItemName = vm.Name;
- TaskManager.PackageId = vm.PackageId;
+ res = TaskManager.StartResultTask("VPS", "ADD_EXTERNAL_IP", vm.Id, vm.Name, vm.PackageId);
try
{
@@ -2841,12 +2788,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion
// start task
- res = TaskManager.StartResultTask("VPS", "SET_PRIMARY_EXTERNAL_IP");
-
- // log item info
- TaskManager.ItemId = vm.Id;
- TaskManager.ItemName = vm.Name;
- TaskManager.PackageId = vm.PackageId;
+ res = TaskManager.StartResultTask("VPS", "SET_PRIMARY_EXTERNAL_IP", vm.Id, vm.Name, vm.PackageId);
try
{
@@ -2893,12 +2835,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion
// start task
- res = TaskManager.StartResultTask("VPS", "DELETE_EXTERNAL_IP");
-
- // log item info
- TaskManager.ItemId = vm.Id;
- TaskManager.ItemName = vm.Name;
- TaskManager.PackageId = vm.PackageId;
+ res = TaskManager.StartResultTask("VPS", "DELETE_EXTERNAL_IP", vm.Id, vm.Name, vm.PackageId);
try
{
@@ -3025,12 +2962,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion
// start task
- res = TaskManager.StartResultTask("VPS", "ADD_PRIVATE_IP");
-
- // log item info
- TaskManager.ItemId = vm.Id;
- TaskManager.ItemName = vm.Name;
- TaskManager.PackageId = vm.PackageId;
+ res = TaskManager.StartResultTask("VPS", "ADD_PRIVATE_IP", vm.Id, vm.Name, vm.PackageId);
try
{
@@ -3148,12 +3080,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion
// start task
- res = TaskManager.StartResultTask("VPS", "SET_PRIMARY_PRIVATE_IP");
-
- // log item info
- TaskManager.ItemId = vm.Id;
- TaskManager.ItemName = vm.Name;
- TaskManager.PackageId = vm.PackageId;
+ res = TaskManager.StartResultTask("VPS", "SET_PRIMARY_PRIVATE_IP", vm.Id, vm.Name, vm.PackageId);
try
{
@@ -3200,12 +3127,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion
// start task
- res = TaskManager.StartResultTask("VPS", "DELETE_PRIVATE_IP");
-
- // log item info
- TaskManager.ItemId = vm.Id;
- TaskManager.ItemName = vm.Name;
- TaskManager.PackageId = vm.PackageId;
+ res = TaskManager.StartResultTask("VPS", "DELETE_PRIVATE_IP", vm.Id, vm.Name, vm.PackageId);
try
{
@@ -3368,12 +3290,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion
// start task
- res = TaskManager.StartResultTask("VPS", "DELETE");
-
- // log item info
- TaskManager.ItemId = vm.Id;
- TaskManager.ItemName = vm.Name;
- TaskManager.PackageId = vm.PackageId;
+ res = TaskManager.StartResultTask("VPS", "DELETE", vm.Id, vm.Name, vm.PackageId);
try
{
@@ -3538,11 +3455,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion
// start task
- res = TaskManager.StartResultTask("VPS", "SEND_SUMMARY_LETTER");
-
- TaskManager.ItemId = vm.Id;
- TaskManager.ItemName = vm.Name;
- TaskManager.PackageId = vm.PackageId;
+ res = TaskManager.StartResultTask("VPS", "SEND_SUMMARY_LETTER", vm.Id, vm.Name, vm.PackageId);
try
{
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/VirtualizationForPrivateCloud/CreateAsyncVMfromVM.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/VirtualizationForPrivateCloud/CreateAsyncVMfromVM.cs
similarity index 100%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/VirtualizationForPrivateCloud/CreateAsyncVMfromVM.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/VirtualizationForPrivateCloud/CreateAsyncVMfromVM.cs
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/VirtualizationForPrivateCloud/CreateServerAsyncWorkerForPrivateCloud.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/VirtualizationForPrivateCloud/CreateServerAsyncWorkerForPrivateCloud.cs
similarity index 100%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/VirtualizationForPrivateCloud/CreateServerAsyncWorkerForPrivateCloud.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/VirtualizationForPrivateCloud/CreateServerAsyncWorkerForPrivateCloud.cs
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/VirtualizationForPrivateCloud/VirtualizationServerControllerForPrivateCloud.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/VirtualizationForPrivateCloud/VirtualizationServerControllerForPrivateCloud.cs
similarity index 95%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/VirtualizationForPrivateCloud/VirtualizationServerControllerForPrivateCloud.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/VirtualizationForPrivateCloud/VirtualizationServerControllerForPrivateCloud.cs
index d1df6e1e..7ec47d27 100644
--- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/VirtualizationForPrivateCloud/VirtualizationServerControllerForPrivateCloud.cs
+++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/VirtualizationForPrivateCloud/VirtualizationServerControllerForPrivateCloud.cs
@@ -276,9 +276,7 @@ namespace WebsitePanel.EnterpriseServer
Guid taksId = Guid.NewGuid();
- res = TaskManager.StartResultTask("VPSForPC", "CREATE", taksId);
- TaskManager.ItemName = vmName;
- TaskManager.PackageId = packageId;
+ res = TaskManager.StartResultTask("VPSForPC", "CREATE", taksId, vmName, packageId);
string templateName = vmTemplate.Name;
@@ -344,9 +342,7 @@ namespace WebsitePanel.EnterpriseServer
IntResult res = new IntResult();
//Create Task
- res = TaskManager.StartResultTask("VPSForPC", "CREATE");
- TaskManager.PackageId = packageId;
- TaskManager.ItemName = vmName;
+ res = TaskManager.StartResultTask("VPSForPC", "CREATE", vmName, packageId);
// meta item
VMInfo vmInfo = null;
@@ -515,6 +511,7 @@ namespace WebsitePanel.EnterpriseServer
{
vmInfo.VmId = PackageController.AddPackageItem(vmInfo);
vmInfo.Id = vmInfo.VmId;
+
TaskManager.ItemId = vmInfo.VmId;
}
catch (Exception ex)
@@ -568,10 +565,7 @@ namespace WebsitePanel.EnterpriseServer
{
Guid taksId = Guid.NewGuid();
- ResultObject taskInfo = TaskManager.StartResultTask("VPSForPC", "CREATE", taksId);
- TaskManager.ItemId = vm.Id;
- TaskManager.ItemName = vm.Name;
- TaskManager.PackageId = vm.PackageId;
+ ResultObject taskInfo = TaskManager.StartResultTask("VPSForPC", "CREATE", taksId, vm.Id, vm.Name, vm.PackageId);
vm.CurrentTaskId = taksId.ToString("N");
@@ -1674,12 +1668,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion
// start task
- res = TaskManager.StartResultTask("VPS", "UPDATE_HOSTNAME");
-
- // log item info
- TaskManager.ItemId = vm.Id;
- TaskManager.ItemName = vm.Name;
- TaskManager.PackageId = vm.PackageId;
+ res = TaskManager.StartResultTask("VPS", "UPDATE_HOSTNAME", vm.Id, vm.Name, vm.PackageId);
try
{
@@ -1814,9 +1803,13 @@ namespace WebsitePanel.EnterpriseServer
return res;
}
- TaskManager.ItemId = machine.Id;
- TaskManager.ItemName = machine.Name;
- TaskManager.PackageId = machine.PackageId;
+ BackgroundTask topTask = TaskManager.TopTask;
+ topTask.ItemId = machine.Id;
+ topTask.ItemName = machine.Name;
+ topTask.PackageId = machine.PackageId;
+
+ TaskController.UpdateTask(topTask);
+
TaskManager.WriteParameter("New state", state);
// load proxy
@@ -1927,12 +1920,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion
// start task
- res = TaskManager.StartResultTask("VPS", "CHANGE_ADMIN_PASSWORD");
-
- // log item info
- TaskManager.ItemId = vm.Id;
- TaskManager.ItemName = vm.Name;
- TaskManager.PackageId = vm.PackageId;
+ res = TaskManager.StartResultTask("VPS", "CHANGE_ADMIN_PASSWORD", vm.Id, vm.Name, vm.PackageId);
try
{
@@ -2029,12 +2017,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion
// start task
- res = TaskManager.StartResultTask("VPS", "UPDATE_CONFIGURATION");
-
- // log item info
- TaskManager.ItemId = vm.Id;
- TaskManager.ItemName = vm.Name;
- TaskManager.PackageId = vm.PackageId;
+ res = TaskManager.StartResultTask("VPS", "UPDATE_CONFIGURATION", vm.Id, vm.Name, vm.PackageId);
try
{
@@ -2222,12 +2205,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion
// start task
- res = TaskManager.StartResultTask("VPS", "INSERT_DVD_DISK");
-
- // log item info
- TaskManager.ItemId = vm.Id;
- TaskManager.ItemName = vm.Name;
- TaskManager.PackageId = vm.PackageId;
+ res = TaskManager.StartResultTask("VPS", "INSERT_DVD_DISK", vm.Id, vm.Name, vm.PackageId);
try
{
@@ -2283,12 +2261,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion
// start task
- res = TaskManager.StartResultTask("VPS", "EJECT_DVD_DISK");
-
- // log item info
- TaskManager.ItemId = vm.Id;
- TaskManager.ItemName = vm.Name;
- TaskManager.PackageId = vm.PackageId;
+ res = TaskManager.StartResultTask("VPS", "EJECT_DVD_DISK", vm.Id, vm.Name, vm.PackageId);
try
{
@@ -2363,12 +2336,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion
// start task
- res = TaskManager.StartResultTask("VPS", "TAKE_SNAPSHOT");
-
- // log item info
- TaskManager.ItemId = vm.Id;
- TaskManager.ItemName = vm.Name;
- TaskManager.PackageId = vm.PackageId;
+ res = TaskManager.StartResultTask("VPS", "TAKE_SNAPSHOT", vm.Id, vm.Name, vm.PackageId);
try
{
@@ -2438,12 +2406,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion
// start task
- res = TaskManager.StartResultTask("VPS", "APPLY_SNAPSHOT");
-
- // log item info
- TaskManager.ItemId = vm.Id;
- TaskManager.ItemName = vm.Name;
- TaskManager.PackageId = vm.PackageId;
+ res = TaskManager.StartResultTask("VPS", "APPLY_SNAPSHOT", vm.Id, vm.Name, vm.PackageId);
try
{
@@ -2514,12 +2477,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion
// start task
- res = TaskManager.StartResultTask("VPS", "RENAME_SNAPSHOT");
-
- // log item info
- TaskManager.ItemId = vm.Id;
- TaskManager.ItemName = vm.Name;
- TaskManager.PackageId = vm.PackageId;
+ res = TaskManager.StartResultTask("VPS", "RENAME_SNAPSHOT", vm.Id, vm.Name, vm.PackageId);
try
{
@@ -2568,12 +2526,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion
// start task
- res = TaskManager.StartResultTask("VPS", "DELETE_SNAPSHOT");
-
- // log item info
- TaskManager.ItemId = vm.Id;
- TaskManager.ItemName = vm.Name;
- TaskManager.PackageId = vm.PackageId;
+ res = TaskManager.StartResultTask("VPS", "DELETE_SNAPSHOT", vm.Id, vm.Name, vm.PackageId);
try
{
@@ -2629,12 +2582,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion
// start task
- res = TaskManager.StartResultTask("VPS", "DELETE_SNAPSHOT_SUBTREE");
-
- // log item info
- TaskManager.ItemId = vm.Id;
- TaskManager.ItemName = vm.Name;
- TaskManager.PackageId = vm.PackageId;
+ res = TaskManager.StartResultTask("VPS", "DELETE_SNAPSHOT_SUBTREE", vm.Id, vm.Name, vm.PackageId);
try
{
@@ -2825,12 +2773,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion
// start task
- res = TaskManager.StartResultTask("VPS", "ADD_EXTERNAL_IP");
-
- // log item info
- TaskManager.ItemId = vm.Id;
- TaskManager.ItemName = vm.Name;
- TaskManager.PackageId = vm.PackageId;
+ res = TaskManager.StartResultTask("VPS", "ADD_EXTERNAL_IP", vm.Id, vm.Name, vm.PackageId);
try
{
@@ -2890,12 +2833,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion
// start task
- res = TaskManager.StartResultTask("VPS", "SET_PRIMARY_EXTERNAL_IP");
-
- // log item info
- TaskManager.ItemId = vm.Id;
- TaskManager.ItemName = vm.Name;
- TaskManager.PackageId = vm.PackageId;
+ res = TaskManager.StartResultTask("VPS", "SET_PRIMARY_EXTERNAL_IP", vm.Id, vm.Name, vm.PackageId);
try
{
@@ -2942,12 +2880,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion
// start task
- res = TaskManager.StartResultTask("VPS", "DELETE_EXTERNAL_IP");
-
- // log item info
- TaskManager.ItemId = vm.Id;
- TaskManager.ItemName = vm.Name;
- TaskManager.PackageId = vm.PackageId;
+ res = TaskManager.StartResultTask("VPS", "DELETE_EXTERNAL_IP", vm.Id, vm.Name, vm.PackageId);
try
{
@@ -3062,12 +2995,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion
// start task
- res = TaskManager.StartResultTask("VPS", "ADD_PRIVATE_IP");
-
- // log item info
- TaskManager.ItemId = vm.Id;
- TaskManager.ItemName = vm.Name;
- TaskManager.PackageId = vm.PackageId;
+ res = TaskManager.StartResultTask("VPS", "ADD_PRIVATE_IP", vm.Id, vm.Name, vm.PackageId);
try
{
@@ -3182,12 +3110,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion
// start task
- res = TaskManager.StartResultTask("VPS", "SET_PRIMARY_PRIVATE_IP");
-
- // log item info
- TaskManager.ItemId = vm.Id;
- TaskManager.ItemName = vm.Name;
- TaskManager.PackageId = vm.PackageId;
+ res = TaskManager.StartResultTask("VPS", "SET_PRIMARY_PRIVATE_IP", vm.Id, vm.Name, vm.PackageId);
try
{
@@ -3234,12 +3157,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion
// start task
- res = TaskManager.StartResultTask("VPS", "DELETE_PRIVATE_IP");
-
- // log item info
- TaskManager.ItemId = vm.Id;
- TaskManager.ItemName = vm.Name;
- TaskManager.PackageId = vm.PackageId;
+ res = TaskManager.StartResultTask("VPS", "DELETE_PRIVATE_IP", vm.Id, vm.Name, vm.PackageId);
try
{
@@ -3384,12 +3302,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion
// start task
- res = TaskManager.StartResultTask("VPSForPC", "DELETE");
-
- // log item info
- TaskManager.ItemId = vm.Id;
- TaskManager.ItemName = vm.Name;
- TaskManager.PackageId = vm.PackageId;
+ res = TaskManager.StartResultTask("VPSForPC", "DELETE", vm.Id, vm.Name, vm.PackageId);
try
{
@@ -3547,11 +3460,7 @@ namespace WebsitePanel.EnterpriseServer
#endregion
// start task
- res = TaskManager.StartResultTask("VPS", "SEND_SUMMARY_LETTER");
-
- TaskManager.ItemId = vm.Id;
- TaskManager.ItemName = vm.Name;
- TaskManager.PackageId = vm.PackageId;
+ res = TaskManager.StartResultTask("VPS", "SEND_SUMMARY_LETTER", vm.Id, vm.Name, vm.PackageId);
try
{
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/WebAppGallery/WebAppGalleryController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/WebAppGallery/WebAppGalleryController.cs
similarity index 100%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/WebAppGallery/WebAppGalleryController.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/WebAppGallery/WebAppGalleryController.cs
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/WebServers/WebServerController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/WebServers/WebServerController.cs
similarity index 96%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/WebServers/WebServerController.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/WebServers/WebServerController.cs
index c57912a5..24f91021 100644
--- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/WebServers/WebServerController.cs
+++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/WebServers/WebServerController.cs
@@ -496,8 +496,7 @@ namespace WebsitePanel.EnterpriseServer
return BusinessErrorCodes.ERROR_WEB_SITE_PACKAGE_ITEM_NOT_FOUND;
// place log record
- TaskManager.StartTask("WEB_SITE", "UPDATE", siteItem.Name);
- TaskManager.ItemId = site.Id;
+ TaskManager.StartTask("WEB_SITE", "UPDATE", siteItem.Name, site.Id);
try
{
@@ -559,8 +558,8 @@ namespace WebsitePanel.EnterpriseServer
if (packageCheck < 0) return packageCheck;
// place log record
- TaskManager.StartTask("WEB_SITE", "CHANGE_STATE", siteItem.Name);
- TaskManager.ItemId = siteItemId;
+ TaskManager.StartTask("WEB_SITE", "CHANGE_STATE", siteItem.Name, siteItemId);
+
TaskManager.WriteParameter("New state", state);
try
@@ -582,7 +581,6 @@ namespace WebsitePanel.EnterpriseServer
TaskManager.CompleteTask();
}
}
-
// AppPool
public static int ChangeAppPoolState(int siteItemId, AppPoolState state)
{
@@ -664,8 +662,6 @@ namespace WebsitePanel.EnterpriseServer
return state;
}
-
-
public static int DeleteWebSite(int siteItemId, bool deleteWebsiteDirectory)
{
// check account
@@ -678,8 +674,7 @@ namespace WebsitePanel.EnterpriseServer
return BusinessErrorCodes.ERROR_WEB_SITE_PACKAGE_ITEM_NOT_FOUND;
// place log record
- TaskManager.StartTask("WEB_SITE", "DELETE", siteItem.Name);
- TaskManager.ItemId = siteItemId;
+ TaskManager.StartTask("WEB_SITE", "DELETE", siteItem.Name, siteItemId);
// delete web site
try
@@ -793,8 +788,7 @@ namespace WebsitePanel.EnterpriseServer
}
// place log record
- TaskManager.StartTask("WEB_SITE", "SWITCH_TO_DEDICATED_IP", siteItem.Name);
- TaskManager.ItemId = siteItemId;
+ TaskManager.StartTask("WEB_SITE", "SWITCH_TO_DEDICATED_IP", siteItem.Name, siteItemId);
try
{
@@ -969,8 +963,7 @@ namespace WebsitePanel.EnterpriseServer
// place log record
- TaskManager.StartTask("WEB_SITE", "SWITCH_TO_SHARED_IP", siteItem.Name);
- TaskManager.ItemId = siteItemId;
+ TaskManager.StartTask("WEB_SITE", "SWITCH_TO_SHARED_IP", siteItem.Name, siteItemId);
try
{
@@ -1306,8 +1299,8 @@ namespace WebsitePanel.EnterpriseServer
IPAddressInfo ip = ServerController.GetIPAddress(siteItem.SiteIPAddressId);
// place log record
- TaskManager.StartTask("WEB_SITE", "ADD_POINTER", siteItem.Name);
- TaskManager.ItemId = siteItemId;
+ TaskManager.StartTask("WEB_SITE", "ADD_POINTER", siteItem.Name, siteItemId);
+
TaskManager.WriteParameter("Domain pointer", domain.DomainName);
TaskManager.WriteParameter("Host name", hostName);
TaskManager.WriteParameter("updateWebSite", updateWebSite.ToString());
@@ -1508,8 +1501,8 @@ namespace WebsitePanel.EnterpriseServer
IPAddressInfo ip = ServerController.GetIPAddress(siteItem.SiteIPAddressId);
// place log record
- TaskManager.StartTask("WEB_SITE", "DELETE_POINTER", siteItem.Name);
- TaskManager.ItemId = siteItemId;
+ TaskManager.StartTask("WEB_SITE", "DELETE_POINTER", siteItem.Name, siteItemId);
+
TaskManager.WriteParameter("Domain pointer", domain.DomainName);
TaskManager.WriteParameter("updateWebSite", updateWebSite.ToString());
@@ -1670,8 +1663,8 @@ namespace WebsitePanel.EnterpriseServer
if (packageCheck < 0) return packageCheck;
// place log record
- TaskManager.StartTask("WEB_SITE", "ADD_VDIR", vdirName);
- TaskManager.ItemId = siteItemId;
+ TaskManager.StartTask("WEB_SITE", "ADD_VDIR", vdirName, siteItemId);
+
TaskManager.WriteParameter("Web site", siteItem.Name);
try
@@ -1724,8 +1717,8 @@ namespace WebsitePanel.EnterpriseServer
return BusinessErrorCodes.ERROR_WEB_SITE_PACKAGE_ITEM_NOT_FOUND;
// place log record
- TaskManager.StartTask("WEB_SITE", "UPDATE_VDIR", vdir.Name);
- TaskManager.ItemId = siteItemId;
+ TaskManager.StartTask("WEB_SITE", "UPDATE_VDIR", vdir.Name, siteItemId);
+
TaskManager.WriteParameter("Web site", siteItem.Name);
try
@@ -1763,8 +1756,8 @@ namespace WebsitePanel.EnterpriseServer
// place log record
// place log record
- TaskManager.StartTask("WEB_SITE", "DELETE_VDIR", vdirName);
- TaskManager.ItemId = siteItemId;
+ TaskManager.StartTask("WEB_SITE", "DELETE_VDIR", vdirName, siteItemId);
+
TaskManager.WriteParameter("Web site", siteItem.Name);
try
@@ -1804,8 +1797,8 @@ namespace WebsitePanel.EnterpriseServer
if (packageCheck < 0) return packageCheck;
// place log record
- TaskManager.StartTask("WEB_SITE", "INSTALL_FP", siteItem.Name);
- TaskManager.ItemId = siteItemId;
+ TaskManager.StartTask("WEB_SITE", "INSTALL_FP", siteItem.Name, siteItemId);
+
TaskManager.WriteParameter("FrontPage username", username);
try
@@ -1857,8 +1850,8 @@ namespace WebsitePanel.EnterpriseServer
return BusinessErrorCodes.ERROR_WEB_SITE_PACKAGE_ITEM_NOT_FOUND;
// place log record
- TaskManager.StartTask("WEB_SITE", "UNINSTALL_FP", siteItem.Name);
- TaskManager.ItemId = siteItemId;
+ TaskManager.StartTask("WEB_SITE", "UNINSTALL_FP", siteItem.Name, siteItemId);
+
TaskManager.WriteParameter("FrontPage username", siteItem.FrontPageAccount);
try
@@ -1898,8 +1891,8 @@ namespace WebsitePanel.EnterpriseServer
return BusinessErrorCodes.ERROR_WEB_SITE_PACKAGE_ITEM_NOT_FOUND;
// place log record
- TaskManager.StartTask("WEB_SITE", "CHANGE_FP_PASSWORD", siteItem.Name);
- TaskManager.ItemId = siteItemId;
+ TaskManager.StartTask("WEB_SITE", "CHANGE_FP_PASSWORD", siteItem.Name, siteItemId);
+
TaskManager.WriteParameter("FrontPage username", siteItem.FrontPageAccount);
try
@@ -1941,8 +1934,7 @@ namespace WebsitePanel.EnterpriseServer
return BusinessErrorCodes.ERROR_WEB_SITE_PACKAGE_ITEM_NOT_FOUND;
// place log record
- TaskManager.StartTask("WEB_SITE", "INSTALL_SECURED_FOLDERS", siteItem.Name);
- TaskManager.ItemId = siteItemId;
+ TaskManager.StartTask("WEB_SITE", "INSTALL_SECURED_FOLDERS", siteItem.Name, siteItemId);
try
{
@@ -1975,8 +1967,7 @@ namespace WebsitePanel.EnterpriseServer
return BusinessErrorCodes.ERROR_WEB_SITE_PACKAGE_ITEM_NOT_FOUND;
// place log record
- TaskManager.StartTask("WEB_SITE", "UNINSTALL_SECURED_FOLDERS", siteItem.Name);
- TaskManager.ItemId = siteItemId;
+ TaskManager.StartTask("WEB_SITE", "UNINSTALL_SECURED_FOLDERS", siteItem.Name, siteItemId);
try
{
@@ -2030,8 +2021,8 @@ namespace WebsitePanel.EnterpriseServer
folder.Path = FilesController.CorrectRelativePath(folder.Path);
// place log record
- TaskManager.StartTask("WEB_SITE", "UPDATE_SECURED_FOLDER", siteItem.Name);
- TaskManager.ItemId = siteItemId;
+ TaskManager.StartTask("WEB_SITE", "UPDATE_SECURED_FOLDER", siteItem.Name, siteItemId);
+
TaskManager.WriteParameter("Folder", folder.Path);
try
@@ -2060,8 +2051,8 @@ namespace WebsitePanel.EnterpriseServer
return BusinessErrorCodes.ERROR_WEB_SITE_PACKAGE_ITEM_NOT_FOUND;
// place log record
- TaskManager.StartTask("WEB_SITE", "DELETE_SECURED_FOLDER", siteItem.Name);
- TaskManager.ItemId = siteItemId;
+ TaskManager.StartTask("WEB_SITE", "DELETE_SECURED_FOLDER", siteItem.Name, siteItemId);
+
TaskManager.WriteParameter("Folder", folderPath);
try
@@ -2116,8 +2107,8 @@ namespace WebsitePanel.EnterpriseServer
return BusinessErrorCodes.ERROR_WEB_SITE_PACKAGE_ITEM_NOT_FOUND;
// place log record
- TaskManager.StartTask("WEB_SITE", "UPDATE_SECURED_USER", siteItem.Name);
- TaskManager.ItemId = siteItemId;
+ TaskManager.StartTask("WEB_SITE", "UPDATE_SECURED_USER", siteItem.Name, siteItemId);
+
TaskManager.WriteParameter("User", user.Name);
try
@@ -2146,8 +2137,8 @@ namespace WebsitePanel.EnterpriseServer
return BusinessErrorCodes.ERROR_WEB_SITE_PACKAGE_ITEM_NOT_FOUND;
// place log record
- TaskManager.StartTask("WEB_SITE", "DELETE_SECURED_USER", siteItem.Name);
- TaskManager.ItemId = siteItemId;
+ TaskManager.StartTask("WEB_SITE", "DELETE_SECURED_USER", siteItem.Name, siteItemId);
+
TaskManager.WriteParameter("User", userName);
try
@@ -2202,8 +2193,8 @@ namespace WebsitePanel.EnterpriseServer
return BusinessErrorCodes.ERROR_WEB_SITE_PACKAGE_ITEM_NOT_FOUND;
// place log record
- TaskManager.StartTask("WEB_SITE", "UPDATE_SECURED_GROUP", siteItem.Name);
- TaskManager.ItemId = siteItemId;
+ TaskManager.StartTask("WEB_SITE", "UPDATE_SECURED_GROUP", siteItem.Name, siteItemId);
+
TaskManager.WriteParameter("Group", group.Name);
try
@@ -2232,8 +2223,8 @@ namespace WebsitePanel.EnterpriseServer
return BusinessErrorCodes.ERROR_WEB_SITE_PACKAGE_ITEM_NOT_FOUND;
// place log record
- TaskManager.StartTask("WEB_SITE", "DELETE_SECURED_GROUP", siteItem.Name);
- TaskManager.ItemId = siteItemId;
+ TaskManager.StartTask("WEB_SITE", "DELETE_SECURED_GROUP", siteItem.Name, siteItemId);
+
TaskManager.WriteParameter("Group", groupName);
try
@@ -2397,9 +2388,12 @@ namespace WebsitePanel.EnterpriseServer
dir.Name = sslDomain + "/" + vdirName;
dir.PackageId = packageId;
dir.ServiceId = serviceId;
- TaskManager.ItemId = PackageController.AddPackageItem(dir);
- return TaskManager.ItemId;
+ int itemId = PackageController.AddPackageItem(dir);
+
+ TaskManager.ItemId = itemId;
+
+ return itemId;
}
catch (Exception ex)
{
@@ -2423,8 +2417,7 @@ namespace WebsitePanel.EnterpriseServer
return 0;
// place log record
- TaskManager.StartTask("WEB_SITE", "UPDATE_SSL_FOLDER", origVdir.Name);
- TaskManager.ItemId = vdir.Id;
+ TaskManager.StartTask("WEB_SITE", "UPDATE_SSL_FOLDER", origVdir.Name, vdir.Id);
try
{
@@ -2471,8 +2464,7 @@ namespace WebsitePanel.EnterpriseServer
return 0;
// place log record
- TaskManager.StartTask("WEB_SITE", "DELETE_SSL_FOLDER", origVdir.Name);
- TaskManager.ItemId = itemId;
+ TaskManager.StartTask("WEB_SITE", "DELETE_SSL_FOLDER", origVdir.Name, itemId);
try
{
@@ -2975,8 +2967,7 @@ namespace WebsitePanel.EnterpriseServer
return BusinessErrorCodes.ERROR_WEB_SITE_PACKAGE_ITEM_NOT_FOUND;
// place log record
- TaskManager.StartTask("WEB_SITE", "ENABLE_HELICON_APE", siteItem.Name);
- TaskManager.ItemId = siteItemId;
+ TaskManager.StartTask("WEB_SITE", "ENABLE_HELICON_APE", siteItem.Name, siteItemId);
try
{
@@ -3010,8 +3001,7 @@ namespace WebsitePanel.EnterpriseServer
return BusinessErrorCodes.ERROR_WEB_SITE_PACKAGE_ITEM_NOT_FOUND;
// place log record
- TaskManager.StartTask("WEB_SITE", "DISABLE_HELICON_APE", siteItem.Name);
- TaskManager.ItemId = siteItemId;
+ TaskManager.StartTask("WEB_SITE", "DISABLE_HELICON_APE", siteItem.Name, siteItemId);
try
{
@@ -3153,8 +3143,8 @@ namespace WebsitePanel.EnterpriseServer
folder.Path = FilesController.CorrectRelativePath(folder.Path);
// place log record
- TaskManager.StartTask("WEB_SITE", "UPDATE_HELICON_APE_FOLDER", siteItem.Name);
- TaskManager.ItemId = siteItemId;
+ TaskManager.StartTask("WEB_SITE", "UPDATE_HELICON_APE_FOLDER", siteItem.Name, siteItemId);
+
TaskManager.WriteParameter("Folder", folder.Path);
try
@@ -3209,8 +3199,8 @@ namespace WebsitePanel.EnterpriseServer
return BusinessErrorCodes.ERROR_WEB_SITE_PACKAGE_ITEM_NOT_FOUND;
// place log record
- TaskManager.StartTask("WEB_SITE", "DELETE_HELICON_APE_FOLDER", siteItem.Name);
- TaskManager.ItemId = siteItemId;
+ TaskManager.StartTask("WEB_SITE", "DELETE_HELICON_APE_FOLDER", siteItem.Name, siteItemId);
+
TaskManager.WriteParameter("Folder", folderPath);
try
@@ -3266,8 +3256,8 @@ namespace WebsitePanel.EnterpriseServer
return BusinessErrorCodes.ERROR_WEB_SITE_PACKAGE_ITEM_NOT_FOUND;
// place log record
- TaskManager.StartTask("WEB_SITE", "UPDATE_HELICON_APE_USER", siteItem.Name);
- TaskManager.ItemId = siteItemId;
+ TaskManager.StartTask("WEB_SITE", "UPDATE_HELICON_APE_USER", siteItem.Name, siteItemId);
+
TaskManager.WriteParameter("User", user.Name);
try
@@ -3296,8 +3286,8 @@ namespace WebsitePanel.EnterpriseServer
return BusinessErrorCodes.ERROR_WEB_SITE_PACKAGE_ITEM_NOT_FOUND;
// place log record
- TaskManager.StartTask("WEB_SITE", "DELETE_HELICON_APE_USER", siteItem.Name);
- TaskManager.ItemId = siteItemId;
+ TaskManager.StartTask("WEB_SITE", "DELETE_HELICON_APE_USER", siteItem.Name, siteItemId);
+
TaskManager.WriteParameter("User", userName);
try
@@ -3352,8 +3342,8 @@ namespace WebsitePanel.EnterpriseServer
return BusinessErrorCodes.ERROR_WEB_SITE_PACKAGE_ITEM_NOT_FOUND;
// place log record
- TaskManager.StartTask("WEB_SITE", "UPDATE_HELICON_APE_GROUP", siteItem.Name);
- TaskManager.ItemId = siteItemId;
+ TaskManager.StartTask("WEB_SITE", "UPDATE_HELICON_APE_GROUP", siteItem.Name, siteItemId);
+
TaskManager.WriteParameter("Group", group.Name);
try
@@ -3382,8 +3372,8 @@ namespace WebsitePanel.EnterpriseServer
return BusinessErrorCodes.ERROR_WEB_SITE_PACKAGE_ITEM_NOT_FOUND;
// place log record
- TaskManager.StartTask("WEB_SITE", "DELETE_HELICON_APE_GROUP", siteItem.Name);
- TaskManager.ItemId = siteItemId;
+ TaskManager.StartTask("WEB_SITE", "DELETE_HELICON_APE_GROUP", siteItem.Name, siteItemId);
+
TaskManager.WriteParameter("Group", groupName);
try
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/WebsitePanel.EnterpriseServer.Code.csproj b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/WebsitePanel.EnterpriseServer.Code.csproj
new file mode 100644
index 00000000..1923fd2e
--- /dev/null
+++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/WebsitePanel.EnterpriseServer.Code.csproj
@@ -0,0 +1,196 @@
+
+
+
+ Debug
+ AnyCPU
+ 8.0.30703
+ 2.0
+ {60E39314-659C-4FAD-AB91-D0D08E223578}
+ Library
+ Properties
+ WebsitePanel.EnterpriseServer.Code
+ WebsitePanel.EnterpriseServer.Code
+ v4.0
+ 512
+
+
+ true
+ full
+ false
+ ..\..\Bin\
+ DEBUG;TRACE
+ prompt
+ 4
+ AnyCPU
+
+
+ pdbonly
+ true
+ ..\..\Bin\
+ TRACE
+ prompt
+ 4
+
+
+
+ ..\..\Lib\Ionic.Zip.Reduced.dll
+
+
+ ..\..\Bin\Microsoft.Web.Services3.dll
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ False
+ ..\..\Bin\WebsitePanel.EnterpriseServer.Base.dll
+
+
+ ..\..\Bin\WebsitePanel.Providers.Base.dll
+
+
+ ..\..\Bin\WebsitePanel.Server.Client.dll
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {53D22D35-4013-415F-BA09-F67A0DBBB0C1}
+ WebsitePanel.Common.Utils
+
+
+ {387FA0EF-3927-45FF-8F8F-BCCD735540C6}
+ WebsitePanel.Templates
+
+
+ {7112B144-C5EE-43C2-9441-569D75D13CB9}
+ WebsitePanel.Whois
+
+
+
+
+
\ No newline at end of file
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Wizards/UserCreationWizard.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Wizards/UserCreationWizard.cs
similarity index 100%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Wizards/UserCreationWizard.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Wizards/UserCreationWizard.cs
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Wizards/WebApplicationsInstaller.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Wizards/WebApplicationsInstaller.cs
similarity index 97%
rename from WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Wizards/WebApplicationsInstaller.cs
rename to WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Wizards/WebApplicationsInstaller.cs
index 8ae1f11b..aa40c3dd 100644
--- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Wizards/WebApplicationsInstaller.cs
+++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Wizards/WebApplicationsInstaller.cs
@@ -91,17 +91,21 @@ namespace WebsitePanel.EnterpriseServer
public int InstallWebApplication(InstallationInfo inst)
{
// place log record
- TaskManager.StartTask("APP_INSTALLER", "INSTALL_APPLICATION");
+ TaskManager.StartTask("APP_INSTALLER", "INSTALL_APPLICATION", inst.PackageId);
+
TaskManager.WriteParameter("Virtual directory", inst.VirtualDir);
TaskManager.WriteParameter("Database group", inst.DatabaseGroup);
- TaskManager.ItemId = inst.PackageId;
-
+
try
{
// get application info
app = GetApplication(inst.PackageId, inst.ApplicationId);
- TaskManager.ItemName = app.Name;
+ BackgroundTask topTask = TaskManager.TopTask;
+
+ topTask.ItemName = app.Name;
+
+ TaskController.UpdateTask(topTask);
// check web site for existance
WebSite webSite = WebServerController.GetWebSite(inst.WebSiteId);
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.sln b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.sln
index 36ca6285..5996e6ba 100644
--- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.sln
+++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.sln
@@ -1,5 +1,5 @@
Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 2010
+# Visual Studio 2012
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{C57D3F9F-7BA0-4D38-A159-B6EDA5C19B13}"
ProjectSection(SolutionItems) = preProject
..\..\LICENSE.txt = ..\..\LICENSE.txt
@@ -10,6 +10,11 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebsitePanel.EnterpriseServer", "WebsitePanel.EnterpriseServer\WebsitePanel.EnterpriseServer.csproj", "{59C7623A-5181-48A5-880A-C9B82B48F589}"
+ ProjectSection(ProjectDependencies) = postProject
+ {C09CE910-F16B-48A1-B2CC-C99B8C1CF775} = {C09CE910-F16B-48A1-B2CC-C99B8C1CF775}
+ {60E39314-659C-4FAD-AB91-D0D08E223578} = {60E39314-659C-4FAD-AB91-D0D08E223578}
+ {4B344644-A570-477E-ADCC-F2B267D6C038} = {4B344644-A570-477E-ADCC-F2B267D6C038}
+ EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebsitePanel.EnterpriseServer.Base", "WebsitePanel.EnterpriseServer.Base\WebsitePanel.EnterpriseServer.Base.csproj", "{C09CE910-F16B-48A1-B2CC-C99B8C1CF775}"
EndProject
@@ -21,12 +26,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebsitePanel.Plugins.Author
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebsitePanel.Plugins.PayPalPro", "WebsitePanel.Gateways.PayPal\WebsitePanel.Plugins.PayPalPro.csproj", "{D695D58C-99F7-409E-B3D8-C1B97A8E748A}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebsitePanel.Products.DomainName", "WebsitePanel.Products.DomainName\WebsitePanel.Products.DomainName.csproj", "{FFE9BFD3-AAB8-4703-AF8F-A41F0D878DB8}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebsitePanel.Products.HostingAddon", "WebsitePanel.Products.HostingAddon\WebsitePanel.Products.HostingAddon.csproj", "{338F816B-BEB4-4F18-9EA1-2EFD35DBA65B}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebsitePanel.Products.HostingPlan", "WebsitePanel.Products.HostingPlan\WebsitePanel.Products.HostingPlan.csproj", "{65FEDD1B-379C-413D-84D8-20E6C29C645D}"
-EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebsitePanel.Plugins.Enom", "WebsitePanel.Registrars.Enom\WebsitePanel.Plugins.Enom.csproj", "{39A6F585-4A27-4AAA-A43F-858FC32ADF98}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebsitePanel.Common.Utils", "WebsitePanel.Common.Utils\WebsitePanel.Common.Utils.csproj", "{53D22D35-4013-415F-BA09-F67A0DBBB0C1}"
@@ -41,70 +40,173 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebsitePanel.Plugins.PayPal
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebsitePanel.Templates", "WebsitePanel.Templates\WebsitePanel.Templates.csproj", "{387FA0EF-3927-45FF-8F8F-BCCD735540C6}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebsitePanel.EnterpriseServer.Code", "WebsitePanel.EnterpriseServer.Code\WebsitePanel.EnterpriseServer.Code.csproj", "{60E39314-659C-4FAD-AB91-D0D08E223578}"
+ ProjectSection(ProjectDependencies) = postProject
+ {C09CE910-F16B-48A1-B2CC-C99B8C1CF775} = {C09CE910-F16B-48A1-B2CC-C99B8C1CF775}
+ EndProjectSection
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebsitePanel.SchedulerService", "WebsitePanel.SchedulerService\WebsitePanel.SchedulerService.csproj", "{5B823520-0450-44A9-AC86-9658B41DFA7C}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
+ Debug|Mixed Platforms = Debug|Mixed Platforms
+ Debug|x86 = Debug|x86
Release|Any CPU = Release|Any CPU
+ Release|Mixed Platforms = Release|Mixed Platforms
+ Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{59C7623A-5181-48A5-880A-C9B82B48F589}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{59C7623A-5181-48A5-880A-C9B82B48F589}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {59C7623A-5181-48A5-880A-C9B82B48F589}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {59C7623A-5181-48A5-880A-C9B82B48F589}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {59C7623A-5181-48A5-880A-C9B82B48F589}.Debug|x86.ActiveCfg = Debug|Any CPU
{59C7623A-5181-48A5-880A-C9B82B48F589}.Release|Any CPU.ActiveCfg = Release|Any CPU
{59C7623A-5181-48A5-880A-C9B82B48F589}.Release|Any CPU.Build.0 = Release|Any CPU
+ {59C7623A-5181-48A5-880A-C9B82B48F589}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {59C7623A-5181-48A5-880A-C9B82B48F589}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {59C7623A-5181-48A5-880A-C9B82B48F589}.Release|x86.ActiveCfg = Release|Any CPU
{C09CE910-F16B-48A1-B2CC-C99B8C1CF775}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C09CE910-F16B-48A1-B2CC-C99B8C1CF775}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {C09CE910-F16B-48A1-B2CC-C99B8C1CF775}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {C09CE910-F16B-48A1-B2CC-C99B8C1CF775}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {C09CE910-F16B-48A1-B2CC-C99B8C1CF775}.Debug|x86.ActiveCfg = Debug|Any CPU
{C09CE910-F16B-48A1-B2CC-C99B8C1CF775}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C09CE910-F16B-48A1-B2CC-C99B8C1CF775}.Release|Any CPU.Build.0 = Release|Any CPU
+ {C09CE910-F16B-48A1-B2CC-C99B8C1CF775}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {C09CE910-F16B-48A1-B2CC-C99B8C1CF775}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {C09CE910-F16B-48A1-B2CC-C99B8C1CF775}.Release|x86.ActiveCfg = Release|Any CPU
{4B344644-A570-477E-ADCC-F2B267D6C038}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4B344644-A570-477E-ADCC-F2B267D6C038}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {4B344644-A570-477E-ADCC-F2B267D6C038}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {4B344644-A570-477E-ADCC-F2B267D6C038}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {4B344644-A570-477E-ADCC-F2B267D6C038}.Debug|x86.ActiveCfg = Debug|Any CPU
{4B344644-A570-477E-ADCC-F2B267D6C038}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4B344644-A570-477E-ADCC-F2B267D6C038}.Release|Any CPU.Build.0 = Release|Any CPU
+ {4B344644-A570-477E-ADCC-F2B267D6C038}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {4B344644-A570-477E-ADCC-F2B267D6C038}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {4B344644-A570-477E-ADCC-F2B267D6C038}.Release|x86.ActiveCfg = Release|Any CPU
{1222B073-8757-4163-9D1A-1A1EAE697DD3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{1222B073-8757-4163-9D1A-1A1EAE697DD3}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {1222B073-8757-4163-9D1A-1A1EAE697DD3}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {1222B073-8757-4163-9D1A-1A1EAE697DD3}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {1222B073-8757-4163-9D1A-1A1EAE697DD3}.Debug|x86.ActiveCfg = Debug|Any CPU
{1222B073-8757-4163-9D1A-1A1EAE697DD3}.Release|Any CPU.ActiveCfg = Release|Any CPU
{1222B073-8757-4163-9D1A-1A1EAE697DD3}.Release|Any CPU.Build.0 = Release|Any CPU
+ {1222B073-8757-4163-9D1A-1A1EAE697DD3}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {1222B073-8757-4163-9D1A-1A1EAE697DD3}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {1222B073-8757-4163-9D1A-1A1EAE697DD3}.Release|x86.ActiveCfg = Release|Any CPU
{DB852295-2A86-44AB-8CF8-A73FEAF15368}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{DB852295-2A86-44AB-8CF8-A73FEAF15368}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {DB852295-2A86-44AB-8CF8-A73FEAF15368}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {DB852295-2A86-44AB-8CF8-A73FEAF15368}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {DB852295-2A86-44AB-8CF8-A73FEAF15368}.Debug|x86.ActiveCfg = Debug|Any CPU
{DB852295-2A86-44AB-8CF8-A73FEAF15368}.Release|Any CPU.ActiveCfg = Release|Any CPU
{DB852295-2A86-44AB-8CF8-A73FEAF15368}.Release|Any CPU.Build.0 = Release|Any CPU
+ {DB852295-2A86-44AB-8CF8-A73FEAF15368}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {DB852295-2A86-44AB-8CF8-A73FEAF15368}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {DB852295-2A86-44AB-8CF8-A73FEAF15368}.Release|x86.ActiveCfg = Release|Any CPU
{D695D58C-99F7-409E-B3D8-C1B97A8E748A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D695D58C-99F7-409E-B3D8-C1B97A8E748A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {D695D58C-99F7-409E-B3D8-C1B97A8E748A}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {D695D58C-99F7-409E-B3D8-C1B97A8E748A}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {D695D58C-99F7-409E-B3D8-C1B97A8E748A}.Debug|x86.ActiveCfg = Debug|Any CPU
{D695D58C-99F7-409E-B3D8-C1B97A8E748A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D695D58C-99F7-409E-B3D8-C1B97A8E748A}.Release|Any CPU.Build.0 = Release|Any CPU
- {FFE9BFD3-AAB8-4703-AF8F-A41F0D878DB8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {FFE9BFD3-AAB8-4703-AF8F-A41F0D878DB8}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {338F816B-BEB4-4F18-9EA1-2EFD35DBA65B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {338F816B-BEB4-4F18-9EA1-2EFD35DBA65B}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {65FEDD1B-379C-413D-84D8-20E6C29C645D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {65FEDD1B-379C-413D-84D8-20E6C29C645D}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {D695D58C-99F7-409E-B3D8-C1B97A8E748A}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {D695D58C-99F7-409E-B3D8-C1B97A8E748A}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {D695D58C-99F7-409E-B3D8-C1B97A8E748A}.Release|x86.ActiveCfg = Release|Any CPU
{39A6F585-4A27-4AAA-A43F-858FC32ADF98}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{39A6F585-4A27-4AAA-A43F-858FC32ADF98}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {39A6F585-4A27-4AAA-A43F-858FC32ADF98}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {39A6F585-4A27-4AAA-A43F-858FC32ADF98}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {39A6F585-4A27-4AAA-A43F-858FC32ADF98}.Debug|x86.ActiveCfg = Debug|Any CPU
{39A6F585-4A27-4AAA-A43F-858FC32ADF98}.Release|Any CPU.ActiveCfg = Release|Any CPU
{39A6F585-4A27-4AAA-A43F-858FC32ADF98}.Release|Any CPU.Build.0 = Release|Any CPU
+ {39A6F585-4A27-4AAA-A43F-858FC32ADF98}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {39A6F585-4A27-4AAA-A43F-858FC32ADF98}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {39A6F585-4A27-4AAA-A43F-858FC32ADF98}.Release|x86.ActiveCfg = Release|Any CPU
{53D22D35-4013-415F-BA09-F67A0DBBB0C1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{53D22D35-4013-415F-BA09-F67A0DBBB0C1}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {53D22D35-4013-415F-BA09-F67A0DBBB0C1}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {53D22D35-4013-415F-BA09-F67A0DBBB0C1}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {53D22D35-4013-415F-BA09-F67A0DBBB0C1}.Debug|x86.ActiveCfg = Debug|Any CPU
{53D22D35-4013-415F-BA09-F67A0DBBB0C1}.Release|Any CPU.ActiveCfg = Release|Any CPU
{53D22D35-4013-415F-BA09-F67A0DBBB0C1}.Release|Any CPU.Build.0 = Release|Any CPU
+ {53D22D35-4013-415F-BA09-F67A0DBBB0C1}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {53D22D35-4013-415F-BA09-F67A0DBBB0C1}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {53D22D35-4013-415F-BA09-F67A0DBBB0C1}.Release|x86.ActiveCfg = Release|Any CPU
{01D3213A-B615-47D2-99F0-005CF05CE920}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{01D3213A-B615-47D2-99F0-005CF05CE920}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {01D3213A-B615-47D2-99F0-005CF05CE920}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {01D3213A-B615-47D2-99F0-005CF05CE920}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {01D3213A-B615-47D2-99F0-005CF05CE920}.Debug|x86.ActiveCfg = Debug|Any CPU
{01D3213A-B615-47D2-99F0-005CF05CE920}.Release|Any CPU.ActiveCfg = Release|Any CPU
{01D3213A-B615-47D2-99F0-005CF05CE920}.Release|Any CPU.Build.0 = Release|Any CPU
+ {01D3213A-B615-47D2-99F0-005CF05CE920}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {01D3213A-B615-47D2-99F0-005CF05CE920}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {01D3213A-B615-47D2-99F0-005CF05CE920}.Release|x86.ActiveCfg = Release|Any CPU
{1FED69FB-68EB-46A8-9B9C-B08760AD4514}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{1FED69FB-68EB-46A8-9B9C-B08760AD4514}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {1FED69FB-68EB-46A8-9B9C-B08760AD4514}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {1FED69FB-68EB-46A8-9B9C-B08760AD4514}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {1FED69FB-68EB-46A8-9B9C-B08760AD4514}.Debug|x86.ActiveCfg = Debug|Any CPU
{1FED69FB-68EB-46A8-9B9C-B08760AD4514}.Release|Any CPU.ActiveCfg = Release|Any CPU
{1FED69FB-68EB-46A8-9B9C-B08760AD4514}.Release|Any CPU.Build.0 = Release|Any CPU
+ {1FED69FB-68EB-46A8-9B9C-B08760AD4514}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {1FED69FB-68EB-46A8-9B9C-B08760AD4514}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {1FED69FB-68EB-46A8-9B9C-B08760AD4514}.Release|x86.ActiveCfg = Release|Any CPU
{7112B144-C5EE-43C2-9441-569D75D13CB9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7112B144-C5EE-43C2-9441-569D75D13CB9}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {7112B144-C5EE-43C2-9441-569D75D13CB9}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {7112B144-C5EE-43C2-9441-569D75D13CB9}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {7112B144-C5EE-43C2-9441-569D75D13CB9}.Debug|x86.ActiveCfg = Debug|Any CPU
{7112B144-C5EE-43C2-9441-569D75D13CB9}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7112B144-C5EE-43C2-9441-569D75D13CB9}.Release|Any CPU.Build.0 = Release|Any CPU
+ {7112B144-C5EE-43C2-9441-569D75D13CB9}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {7112B144-C5EE-43C2-9441-569D75D13CB9}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {7112B144-C5EE-43C2-9441-569D75D13CB9}.Release|x86.ActiveCfg = Release|Any CPU
{9247B024-F931-4506-8ECD-27E862C0EA1D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{9247B024-F931-4506-8ECD-27E862C0EA1D}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {9247B024-F931-4506-8ECD-27E862C0EA1D}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {9247B024-F931-4506-8ECD-27E862C0EA1D}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {9247B024-F931-4506-8ECD-27E862C0EA1D}.Debug|x86.ActiveCfg = Debug|Any CPU
{9247B024-F931-4506-8ECD-27E862C0EA1D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{9247B024-F931-4506-8ECD-27E862C0EA1D}.Release|Any CPU.Build.0 = Release|Any CPU
+ {9247B024-F931-4506-8ECD-27E862C0EA1D}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {9247B024-F931-4506-8ECD-27E862C0EA1D}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {9247B024-F931-4506-8ECD-27E862C0EA1D}.Release|x86.ActiveCfg = Release|Any CPU
{387FA0EF-3927-45FF-8F8F-BCCD735540C6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{387FA0EF-3927-45FF-8F8F-BCCD735540C6}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {387FA0EF-3927-45FF-8F8F-BCCD735540C6}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {387FA0EF-3927-45FF-8F8F-BCCD735540C6}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {387FA0EF-3927-45FF-8F8F-BCCD735540C6}.Debug|x86.ActiveCfg = Debug|Any CPU
{387FA0EF-3927-45FF-8F8F-BCCD735540C6}.Release|Any CPU.ActiveCfg = Release|Any CPU
{387FA0EF-3927-45FF-8F8F-BCCD735540C6}.Release|Any CPU.Build.0 = Release|Any CPU
+ {387FA0EF-3927-45FF-8F8F-BCCD735540C6}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {387FA0EF-3927-45FF-8F8F-BCCD735540C6}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {387FA0EF-3927-45FF-8F8F-BCCD735540C6}.Release|x86.ActiveCfg = Release|Any CPU
+ {60E39314-659C-4FAD-AB91-D0D08E223578}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {60E39314-659C-4FAD-AB91-D0D08E223578}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {60E39314-659C-4FAD-AB91-D0D08E223578}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {60E39314-659C-4FAD-AB91-D0D08E223578}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {60E39314-659C-4FAD-AB91-D0D08E223578}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {60E39314-659C-4FAD-AB91-D0D08E223578}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {60E39314-659C-4FAD-AB91-D0D08E223578}.Release|Any CPU.Build.0 = Release|Any CPU
+ {60E39314-659C-4FAD-AB91-D0D08E223578}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {60E39314-659C-4FAD-AB91-D0D08E223578}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {60E39314-659C-4FAD-AB91-D0D08E223578}.Release|x86.ActiveCfg = Release|Any CPU
+ {5B823520-0450-44A9-AC86-9658B41DFA7C}.Debug|Any CPU.ActiveCfg = Debug|x86
+ {5B823520-0450-44A9-AC86-9658B41DFA7C}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {5B823520-0450-44A9-AC86-9658B41DFA7C}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {5B823520-0450-44A9-AC86-9658B41DFA7C}.Debug|x86.ActiveCfg = Debug|x86
+ {5B823520-0450-44A9-AC86-9658B41DFA7C}.Debug|x86.Build.0 = Debug|x86
+ {5B823520-0450-44A9-AC86-9658B41DFA7C}.Release|Any CPU.ActiveCfg = Release|x86
+ {5B823520-0450-44A9-AC86-9658B41DFA7C}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {5B823520-0450-44A9-AC86-9658B41DFA7C}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {5B823520-0450-44A9-AC86-9658B41DFA7C}.Release|x86.ActiveCfg = Release|x86
+ {5B823520-0450-44A9-AC86-9658B41DFA7C}.Release|x86.Build.0 = Release|x86
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Common/ObjectUtils.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Common/ObjectUtils.cs
deleted file mode 100644
index 1a705eac..00000000
--- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Common/ObjectUtils.cs
+++ /dev/null
@@ -1,659 +0,0 @@
-// 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 description for ObjectUtils.
- ///
- public class ObjectUtils
- {
- public static DT ConvertObject(ST so)
- {
- Dictionary sProps = GetTypePropertiesHash(typeof(ST));
- Dictionary 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))
- {
- 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(List list, DataSet ds)
- {
- if(ds.Tables.Count == 0)
- return;
-
- FillCollectionFromDataView(list, ds.Tables[0].DefaultView);
- }
-
- public static void FillCollectionFromDataView(List 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 CreateListFromDataReader(IDataReader reader)
- {
- List list = new List();
- FillCollectionFromDataReader(list, reader);
- return list;
- }
-
- public static List CreateListFromDataSet(DataSet ds)
- {
- List list = new List();
- FillCollectionFromDataSet(list, ds);
- return list;
- }
-
- public static void FillCollectionFromDataReader(List