scheduled tasks tidy up
This commit is contained in:
@@ -26,7 +26,7 @@ namespace Disco.Services.Plugins
|
||||
|
||||
if (!string.IsNullOrEmpty(packageUrlPath))
|
||||
{
|
||||
this.Status.UpdateStatus(0, "Downloading Plugin Package", "Connecting...");
|
||||
Status.UpdateStatus(0, "Downloading Plugin Package", "Connecting...");
|
||||
|
||||
if (File.Exists(packageFilePath))
|
||||
File.Delete(packageFilePath);
|
||||
@@ -49,7 +49,7 @@ namespace Disco.Services.Plugins
|
||||
}
|
||||
}
|
||||
|
||||
this.Status.UpdateStatus(10, "Opening Plugin Package", Path.GetFileName(packageFilePath));
|
||||
Status.UpdateStatus(10, "Opening Plugin Package", Path.GetFileName(packageFilePath));
|
||||
|
||||
using (var packageStream = File.OpenRead(packageFilePath))
|
||||
{
|
||||
@@ -67,7 +67,7 @@ namespace Disco.Services.Plugins
|
||||
packageManifest = PluginManifest.FromPluginManifestFile(packageManifestStream);
|
||||
}
|
||||
|
||||
this.Status.UpdateStatus(20, string.Format("{0} [{1} v{2}] by {3}", packageManifest.Name, packageManifest.Id, packageManifest.Version.ToString(4), packageManifest.Author), "Initializing Install Environment");
|
||||
Status.UpdateStatus(20, string.Format("{0} [{1} v{2}] by {3}", packageManifest.Name, packageManifest.Id, packageManifest.Version.ToString(4), packageManifest.Author), "Initializing Install Environment");
|
||||
|
||||
PluginsLog.LogInstalling(packageManifest);
|
||||
|
||||
@@ -93,7 +93,7 @@ namespace Disco.Services.Plugins
|
||||
// Force Delete of Existing Folder
|
||||
if (Directory.Exists(packagePath))
|
||||
{
|
||||
this.Status.UpdateStatus(25, "Removing Existing Files");
|
||||
Status.UpdateStatus(25, "Removing Existing Files");
|
||||
try
|
||||
{
|
||||
Directory.Delete(packagePath, true);
|
||||
@@ -105,8 +105,8 @@ namespace Disco.Services.Plugins
|
||||
}
|
||||
Directory.CreateDirectory(packagePath);
|
||||
|
||||
|
||||
this.Status.UpdateStatus(30, "Extracting Files");
|
||||
|
||||
Status.UpdateStatus(30, "Extracting Files");
|
||||
|
||||
double extractFileInterval = (double)50 / packageArchive.Entries.Count;
|
||||
int countExtractedFiles = 0;
|
||||
@@ -114,7 +114,7 @@ namespace Disco.Services.Plugins
|
||||
// Extract Package Contents
|
||||
foreach (var packageEntry in packageArchive.Entries)
|
||||
{
|
||||
this.Status.UpdateStatus(30 + (countExtractedFiles++ * extractFileInterval), string.Format("Extracting File: {0}", packageEntry.FullName));
|
||||
Status.UpdateStatus(30 + (countExtractedFiles++ * extractFileInterval), string.Format("Extracting File: {0}", packageEntry.FullName));
|
||||
|
||||
// Determine Extraction Path
|
||||
var packageEntryTarget = Path.Combine(packagePath, packageEntry.FullName);
|
||||
@@ -135,19 +135,19 @@ namespace Disco.Services.Plugins
|
||||
packageManifest = PluginManifest.FromPluginManifestFile(Path.Combine(packagePath, "manifest.json"));
|
||||
|
||||
// Install Plugin
|
||||
this.Status.UpdateStatus(80, "Initial Package Configuration");
|
||||
packageManifest.InstallPlugin(database, this.Status);
|
||||
Status.UpdateStatus(80, "Initial Package Configuration");
|
||||
packageManifest.InstallPlugin(database, Status);
|
||||
|
||||
// Initialize Plugin
|
||||
this.Status.UpdateStatus(98, "Initializing Plugin for Use");
|
||||
Status.UpdateStatus(98, "Initializing Plugin for Use");
|
||||
packageManifest.InitializePlugin(database);
|
||||
|
||||
// Add Plugin Manifest to Host Environment
|
||||
Plugins.AddPlugin(packageManifest);
|
||||
|
||||
PluginsLog.LogInstalled(packageManifest);
|
||||
this.Status.SetFinishedUrl(string.Format("/Config/Plugins/{0}", System.Web.HttpUtility.UrlEncode(packageManifest.Id)));
|
||||
this.Status.UpdateStatus(100, "Plugin Installation Completed");
|
||||
Status.SetFinishedUrl(string.Format("/Config/Plugins/{0}", System.Web.HttpUtility.UrlEncode(packageManifest.Id)));
|
||||
Status.UpdateStatus(100, "Plugin Installation Completed");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,14 +1,9 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using System.Web;
|
||||
using Disco.Data.Repository;
|
||||
using Disco.Services.Tasks;
|
||||
using Quartz;
|
||||
using Disco.Data.Repository;
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
|
||||
namespace Disco.Services.Plugins
|
||||
{
|
||||
@@ -18,10 +13,10 @@ namespace Disco.Services.Plugins
|
||||
|
||||
protected override void ExecuteTask()
|
||||
{
|
||||
PluginManifest manifest = (PluginManifest)this.ExecutionContext.JobDetail.JobDataMap["PluginManifest"];
|
||||
bool UninstallData = (bool)this.ExecutionContext.JobDetail.JobDataMap["UninstallData"];
|
||||
var manifest = (PluginManifest)ExecutionContext.JobDetail.JobDataMap["PluginManifest"];
|
||||
var UninstallData = (bool)ExecutionContext.JobDetail.JobDataMap["UninstallData"];
|
||||
|
||||
this.Status.UpdateStatus(25, string.Format("Uninstalling Plugin: {0} [{1}]", manifest.Name, manifest.Id), "Queuing plugin for uninstall");
|
||||
Status.UpdateStatus(25, string.Format("Uninstalling Plugin: {0} [{1}]", manifest.Name, manifest.Id), "Queuing plugin for uninstall");
|
||||
|
||||
PluginsLog.LogUninstalling(manifest, UninstallData);
|
||||
|
||||
@@ -31,7 +26,7 @@ namespace Disco.Services.Plugins
|
||||
|
||||
using (DiscoDataContext database = new DiscoDataContext())
|
||||
{
|
||||
manifest.UninstallPlugin(database, UninstallData, this.Status);
|
||||
manifest.UninstallPlugin(database, UninstallData, Status);
|
||||
}
|
||||
|
||||
string manifestUninstallFileLocation = Path.Combine(manifest.PluginLocation, "manifest.uninstall.json");
|
||||
@@ -50,7 +45,7 @@ namespace Disco.Services.Plugins
|
||||
File.Copy(manifestUninstallFileLocation, manifestDataUninstallFileLocation);
|
||||
}
|
||||
|
||||
this.Status.Finished("Restarting Disco, please wait...", "/Config/Plugins");
|
||||
Status.Finished("Restarting Disco, please wait...", "/Config/Plugins");
|
||||
Plugins.RestartApp(2500);
|
||||
}
|
||||
|
||||
@@ -63,7 +58,7 @@ namespace Disco.Services.Plugins
|
||||
if (ScheduledTasks.GetTaskStatuses(typeof(InstallPluginTask)).Where(s => s.IsRunning).Count() > 0)
|
||||
throw new InvalidOperationException("A plugin is being Installed");
|
||||
|
||||
JobDataMap taskData = new JobDataMap() { { "PluginManifest", Manifest }, { "UninstallData", UninstallData } };
|
||||
var taskData = new JobDataMap() { { "PluginManifest", Manifest }, { "UninstallData", UninstallData } };
|
||||
|
||||
var instance = new UninstallPluginTask();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user