aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/PPC/Tango.PPC.Common/MachineUpdate/MachineUpdateManager.cs
diff options
context:
space:
mode:
authorRoy Ben Shabat <Roy.mail.net@gmail.com>2019-12-07 20:10:55 +0200
committerRoy Ben Shabat <Roy.mail.net@gmail.com>2019-12-07 20:10:55 +0200
commita6e6af346bf160b4a83163a6f1b268920cf2005c (patch)
tree5ac37a4c97cc4d6a65bc0c589ceea74519094f34 /Software/Visual_Studio/PPC/Tango.PPC.Common/MachineUpdate/MachineUpdateManager.cs
parent40622a28006ffd38ce5b85ac49502804d65b9357 (diff)
downloadTango-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.cs29
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;