diff options
| author | Roy Ben Shabat <Roy.mail.net@gmail.com> | 2019-12-07 20:10:55 +0200 |
|---|---|---|
| committer | Roy Ben Shabat <Roy.mail.net@gmail.com> | 2019-12-07 20:10:55 +0200 |
| commit | a6e6af346bf160b4a83163a6f1b268920cf2005c (patch) | |
| tree | 5ac37a4c97cc4d6a65bc0c589ceea74519094f34 /Software/Visual_Studio/PPC/Tango.PPC.Common/MachineUpdate/MachineUpdateManager.cs | |
| parent | 40622a28006ffd38ce5b85ac49502804d65b9357 (diff) | |
| download | Tango-a6e6af346bf160b4a83163a6f1b268920cf2005c.tar.gz Tango-a6e6af346bf160b4a83163a6f1b268920cf2005c.zip | |
Implemented machine updates history on machine designer.
Related Work Items: #1618
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, 25 insertions, 4 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 f00efb22c..658c323de 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.Common/MachineUpdate/MachineUpdateManager.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/MachineUpdate/MachineUpdateManager.cs @@ -16,6 +16,7 @@ using Tango.Core.Helpers; using Tango.Core.IO; using Tango.Integration.Operation; using Tango.Integration.Upgrade; +using Tango.Logging; using Tango.PMR.Synchronization; using Tango.PPC.Common.Application; using Tango.PPC.Common.Connection; @@ -34,8 +35,8 @@ namespace Tango.PPC.Common.MachineUpdate private IPPCApplicationManager _app_manager; private IMachineProvider _machineProvider; private IPackageRunner _packageRunner; - private INavigationManager _navigationManager; private PPCWebClient _client; + private List<LogItemBase> _logs; #region Events @@ -68,13 +69,16 @@ 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, IPackageRunner packageRunner, INavigationManager navigationManager) + public MachineUpdateManager(PPCWebClient ppcWebClient, IPPCApplicationManager applicationManager, IMachineProvider machineProvider, IPackageRunner packageRunner) { _client = ppcWebClient; _machineProvider = machineProvider; _app_manager = applicationManager; _packageRunner = packageRunner; _packageRunner.PackageStateChanged += _packageRunner_PackageStateChanged; + + _logs = new List<LogItemBase>(); + LogManager.NewLog += LogManager_NewLog; } #endregion @@ -86,6 +90,11 @@ namespace Tango.PPC.Common.MachineUpdate UpdateProgress(e.PackageType == PackageType.Pre ? "Preparing" : "Finalizing", e.PackageName); } + private void LogManager_NewLog(object sender, LogItemBase e) + { + _logs.Add(e); + } + #endregion #region Private Methods @@ -142,6 +151,7 @@ namespace Tango.PPC.Common.MachineUpdate Token = response.NotifyCompletedToken, Status = BL.Enumerations.TangoUpdateStatuses.UpdateFailed, FailedReason = ex.FlattenMessage(), + FailedLog = GetLogsStringAndClear(), }); } catch (Exception xx) @@ -238,6 +248,7 @@ namespace Tango.PPC.Common.MachineUpdate Token = response.NotifyCompletedToken, Status = BL.Enumerations.TangoUpdateStatuses.DatabaseFailed, FailedReason = ex.FlattenMessage(), + FailedLog = GetLogsStringAndClear(), }).Result; } catch (Exception xx) @@ -247,6 +258,13 @@ namespace Tango.PPC.Common.MachineUpdate } } + private String GetLogsStringAndClear() + { + String logsString = String.Join(Environment.NewLine, _logs.ToList().Select(x => x.ToString())); + _logs.Clear(); + return logsString; + } + #endregion #region Public Methods @@ -266,6 +284,8 @@ namespace Tango.PPC.Common.MachineUpdate /// <exception cref="System.InvalidProgramException">Database tango does not exists.</exception> public async Task<MachineUpdateResult> Update(String serialNumber, bool setupFirmware, bool setupFPGA) { + _logs.Clear(); + TaskCompletionSource<MachineUpdateResult> result = new TaskCompletionSource<MachineUpdateResult>(); var localDataSource = SettingsManager.Default.GetOrCreate<CoreSettings>().DataSource; @@ -331,7 +351,7 @@ namespace Tango.PPC.Common.MachineUpdate UpdateProgress("Downloading software package", "Downloading...", false); - using (AutoFileDownloader downloader = new AutoFileDownloader(update_response.BlobAddress, update_response.CdnAddress + "123", tempFile)) + using (AutoFileDownloader downloader = new AutoFileDownloader(update_response.BlobAddress, update_response.CdnAddress, tempFile)) { await downloader.ResolveMode(); @@ -361,7 +381,6 @@ namespace Tango.PPC.Common.MachineUpdate //Extract software package. ZipFile.ExtractToDirectory(tempFile, _newPackageTempFolder); - LogManager.Log("Copying latest updater utility to application path..."); //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); @@ -571,6 +590,8 @@ namespace Tango.PPC.Common.MachineUpdate /// <returns></returns> public Task UpdateDB(DbCompareResult dbCompareResult, String serialNumber) { + _logs.Clear(); + return Task.Factory.StartNew(() => { UpdateDBResponse update_response = null; |
