diff options
| author | Roy Ben-Shabat <Roy@Twine-s.com> | 2019-12-04 15:23:43 +0200 |
|---|---|---|
| committer | Roy Ben-Shabat <Roy@Twine-s.com> | 2019-12-04 15:23:43 +0200 |
| commit | e8c9c0b649f31bf5170be409cdf6925aa9fc11b6 (patch) | |
| tree | 14e9e27618a74ac7619e935c9e2dfbd2aaf1e649 /Software/Visual_Studio/PPC/Tango.PPC.Common/MachineUpdate/MachineUpdateManager.cs | |
| parent | 4fb7e23ead019e9c2b573eb4ccc89444fb5a7a6f (diff) | |
| download | Tango-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.cs | 29 |
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..."); |
