aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/PPC/Tango.PPC.Common/MachineUpdate/MachineUpdateManager.cs
diff options
context:
space:
mode:
authorRoy Ben-Shabat <Roy@Twine-s.com>2019-12-04 15:23:43 +0200
committerRoy Ben-Shabat <Roy@Twine-s.com>2019-12-04 15:23:43 +0200
commite8c9c0b649f31bf5170be409cdf6925aa9fc11b6 (patch)
tree14e9e27618a74ac7619e935c9e2dfbd2aaf1e649 /Software/Visual_Studio/PPC/Tango.PPC.Common/MachineUpdate/MachineUpdateManager.cs
parent4fb7e23ead019e9c2b573eb4ccc89444fb5a7a6f (diff)
downloadTango-e8c9c0b649f31bf5170be409cdf6925aa9fc11b6.tar.gz
Tango-e8c9c0b649f31bf5170be409cdf6925aa9fc11b6.zip
Working on PPC packages
Diffstat (limited to 'Software/Visual_Studio/PPC/Tango.PPC.Common/MachineUpdate/MachineUpdateManager.cs')
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.Common/MachineUpdate/MachineUpdateManager.cs29
1 files changed, 27 insertions, 2 deletions
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/MachineUpdate/MachineUpdateManager.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/MachineUpdate/MachineUpdateManager.cs
index dacd1b69a..ae3e093be 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.Common/MachineUpdate/MachineUpdateManager.cs
+++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/MachineUpdate/MachineUpdateManager.cs
@@ -19,6 +19,7 @@ using Tango.Integration.Upgrade;
using Tango.PMR.Synchronization;
using Tango.PPC.Common.Application;
using Tango.PPC.Common.Connection;
+using Tango.PPC.Common.UpdatePackages;
using Tango.PPC.Common.Web;
using Tango.Settings;
using Tango.SharedUI.Helpers;
@@ -31,6 +32,7 @@ namespace Tango.PPC.Common.MachineUpdate
{
private IPPCApplicationManager _app_manager;
private IMachineProvider _machineProvider;
+ private IPackageRunner _packageRunner;
private PPCWebClient _client;
#region Events
@@ -64,11 +66,22 @@ namespace Tango.PPC.Common.MachineUpdate
/// Initializes a new instance of the <see cref="MachineUpdateManager"/> class.
/// </summary>
/// <param name="applicationManager">The application manager.</param>
- public MachineUpdateManager(PPCWebClient ppcWebClient, IPPCApplicationManager applicationManager, IMachineProvider machineProvider)
+ public MachineUpdateManager(PPCWebClient ppcWebClient, IPPCApplicationManager applicationManager, IMachineProvider machineProvider, IPackageRunner packageRunner)
{
_client = ppcWebClient;
_machineProvider = machineProvider;
_app_manager = applicationManager;
+ _packageRunner = packageRunner;
+ _packageRunner.PackageStateChanged += _packageRunner_PackageStateChanged;
+ }
+
+ #endregion
+
+ #region Event Handlers
+
+ private void _packageRunner_PackageStateChanged(object sender, PackageStateChangedEventArgs e)
+ {
+ UpdateProgress("Preparing", e.PackageName);
}
#endregion
@@ -281,7 +294,7 @@ namespace Tango.PPC.Common.MachineUpdate
{
throw LogManager.Log(new InvalidOperationException("Could not perform an update while the machine is not connected."));
}
- if (op.IsPrinting)
+ if (op.Status != MachineStatuses.ReadyToDye)
{
throw LogManager.Log(new InvalidOperationException($"Could not perform an update while the machine is in {op.Status} status."));
}
@@ -343,6 +356,18 @@ namespace Tango.PPC.Common.MachineUpdate
//Copy new updater utility to app path.
File.Copy(Path.Combine(_newPackageTempFolder, "Tango.PPC.Updater.exe"), Path.Combine(PathHelper.GetStartupPath(), "Tango.PPC.Updater.exe"), true);
+ //Run pre-update packages.
+ try
+ {
+ UpdateProgress("Preparing", "Running update packages...");
+ LogManager.Log("Running pre-update packages...");
+ var packagesFolder = Path.Combine(_newPackageTempFolder, "Packages");
+ await _packageRunner.Run(PackageType.Pre, packagesFolder);
+ }
+ catch (Exception ex)
+ {
+ LogManager.Log(ex, "Error running pre-update packages...");
+ }
//Synchronize database
UpdateProgress("Updating Database", "Initializing...");