aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/PPC
diff options
context:
space:
mode:
authorRoy Ben-Shabat <Roy@Twine-s.com>2019-02-24 19:04:47 +0200
committerRoy Ben-Shabat <Roy@Twine-s.com>2019-02-24 19:04:47 +0200
commit40746c60fed9e70f3cb7f6f12f55595a77a1adfa (patch)
tree815a77a25888aceed48d15a9ce2f977e0d9ee845 /Software/Visual_Studio/PPC
parent64b768178dc9e64293a52c1b6d2631709af9502a (diff)
downloadTango-40746c60fed9e70f3cb7f6f12f55595a77a1adfa.tar.gz
Tango-40746c60fed9e70f3cb7f6f12f55595a77a1adfa.zip
Fixed PPC and Machine Studio issues before next release.
Started working on Advanced Installer libraries.
Diffstat (limited to 'Software/Visual_Studio/PPC')
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.Common/Application/IPPCApplicationManager.cs5
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.Common/HotSpot/DefaultHotSpotProvider.cs2
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.Common/MachineUpdate/IMachineUpdateManager.cs2
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.Common/MachineUpdate/MachineUpdateManager.cs167
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.Common/OS/DefaultOperationSystemManager.cs13
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.Common/RemoteAssistance/DefaultRemoteAssistanceProvider.cs2
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.Common/Scripting/CmdCommand.cs90
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.Common/Tango.PPC.Common.csproj7
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.Common/UWF/DefaultUnifiedWriteFilterManager.cs11
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/App.config80
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Connectivity/DefaultConnectivityProvider.cs1
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/PPCApplication/DefaultPPCApplicationManager.cs29
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Properties/AssemblyInfo.cs2
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/MachineSetupViewVM.cs8
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/MachineUpdateViewVM.cs10
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/app.manifest2
16 files changed, 164 insertions, 267 deletions
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Application/IPPCApplicationManager.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/Application/IPPCApplicationManager.cs
index f07ba39a9..7769c74f6 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.Common/Application/IPPCApplicationManager.cs
+++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Application/IPPCApplicationManager.cs
@@ -66,6 +66,11 @@ namespace Tango.PPC.Common.Application
void Restart();
/// <summary>
+ /// Runs the updater utility and exits the application.
+ /// </summary>
+ void UpdateApplication(String updaterPath, String arguments);
+
+ /// <summary>
/// Enteres the application technician mode.
/// </summary>
void EnterTechnicianMode();
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/HotSpot/DefaultHotSpotProvider.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/HotSpot/DefaultHotSpotProvider.cs
index 5a6b2405c..4f035d814 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.Common/HotSpot/DefaultHotSpotProvider.cs
+++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/HotSpot/DefaultHotSpotProvider.cs
@@ -4,9 +4,9 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Tango.Core;
+using Tango.Core.Components;
using Tango.PPC.Common.Application;
using Tango.PPC.Common.Connection;
-using Tango.PPC.Common.Scripting;
using Tango.Settings;
namespace Tango.PPC.Common.HotSpot
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/MachineUpdate/IMachineUpdateManager.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/MachineUpdate/IMachineUpdateManager.cs
index ffe3f6b5c..e6c91ec10 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.Common/MachineUpdate/IMachineUpdateManager.cs
+++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/MachineUpdate/IMachineUpdateManager.cs
@@ -54,7 +54,7 @@ namespace Tango.PPC.Common.MachineUpdate
/// Updates all the "overwrite-able" database tables.
/// </summary>
/// <returns></returns>
- Task UpdateDB(DbCompareResult dbCompareResult);
+ Task UpdateDB(DbCompareResult dbCompareResult, String serialNumber);
/// <summary>
/// Gets the update package file information.
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 6fd53bce2..2a53d765e 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.Common/MachineUpdate/MachineUpdateManager.cs
+++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/MachineUpdate/MachineUpdateManager.cs
@@ -203,7 +203,7 @@ namespace Tango.PPC.Common.MachineUpdate
LogManager.Log($"Initializing {nameof(ExaminerSequenceConfigurationRunner)}...");
- UpdateProgress("Updating Database", "Initializing provisioning sequence...");
+ UpdateProgress("Updating Database", "Initializing update sequence...");
ExaminerSequenceConfigurationRunner runner = new ExaminerSequenceConfigurationRunner(
Path.Combine(_newPackageTempFolder, "Update Scripts", "config.xml"),
@@ -318,62 +318,70 @@ namespace Tango.PPC.Common.MachineUpdate
/// <param name="serialNumber">The serial number.</param>
/// <param name="machineServiceAddress">The machine service address.</param>
/// <returns></returns>
- public Task UpdateDB(DbCompareResult dbCompareResult)
+ public Task UpdateDB(DbCompareResult dbCompareResult, String serialNumber)
{
return Task.Factory.StartNew(() =>
{
LogManager.Log("Starting database update...");
- LogManager.Log("Looking for OverrideData script on application path...");
+ LogManager.Log("Looking for update scripts configuration on application path...");
- String config_file = Path.Combine(PathHelper.GetStartupPath(), "Update Scripts", "OverrideData.xml");
+ String config_file = Path.Combine(PathHelper.GetStartupPath(), "Update Scripts", "config.xml");
if (!File.Exists(config_file))
{
- config_file = Path.Combine(PathHelper.GetStartupPath(), "Provision Scripts", "OverrideData.xml");
- }
-
- if (!File.Exists(config_file))
- {
- throw LogManager.Log(new FileNotFoundException("Could not locate OverrideData.xml file on application folder."));
+ throw LogManager.Log(new FileNotFoundException($"Could not locate '{config_file}' file on application folder."));
}
UpdateDBResponse update_response = dbCompareResult.UpdateDBResponse;
var localDataSource = SettingsManager.Default.GetOrCreate<CoreSettings>().DataSource;
- LogManager.Log($"Overriding database static tables '{update_response.DataSource.ToString()}' => '{localDataSource.ToString()}'...");
+ LogManager.Log($"Updating database '{update_response.DataSource.ToString()}' => '{localDataSource.ToString()}'...");
- ExaminerConfigurationBuilder builder = new ExaminerConfigurationBuilder(config_file);
- builder.SetSource(update_response.DataSource);
- builder.SetTarget(localDataSource);
- builder.Synchronize();
+ ExaminerSequenceConfiguration config_sequence = ExaminerSequenceConfiguration.FromFile(config_file);
- var config = builder.Build();
-
- ExaminerProcess process = new ExaminerProcess(config, ExaminerProcessType.Data);
- process.Progress += (x, msg) =>
+ foreach (var item in config_sequence.Items.Where(x => x.Type == ExaminerSequenceItemType.Data).OrderBy(x => x.Index))
{
- LogManager.Log(msg);
- };
+ LogManager.Log($"Executing update script '{item.FileName}...'");
- LogManager.Log("Starting synchronization process...");
-
- try
- {
- var result = process.Execute().Result;
+ ExaminerConfigurationBuilder builder = new ExaminerConfigurationBuilder(Path.Combine(Path.GetDirectoryName(config_file), item.FileName));
+ builder.SetSource(update_response.DataSource);
+ builder.SetTarget(localDataSource);
- if (result.ExitCode != ExaminerProcessExitCode.Success)
+ if (item.RequiresSerialNumber)
{
- throw LogManager.Log(new InvalidDataException(String.Format("OverrideData script has terminated with exit code '{0}'.", result.ExitCode)));
+ builder.SetMachineSerialNumber(serialNumber);
}
- LogManager.Log("Synchronization completed successfully!");
- }
- catch (Exception ex)
- {
- throw LogManager.Log(ex, "Setup manager error while trying to update the database.");
+ builder.Synchronize();
+
+ var config = builder.Build();
+
+ ExaminerProcess process = new ExaminerProcess(config, ExaminerProcessType.Data);
+ process.Progress += (x, msg) =>
+ {
+ LogManager.Log(msg);
+ };
+
+ try
+ {
+ var result = process.Execute().Result;
+
+ if (result.ExitCode != ExaminerProcessExitCode.Success)
+ {
+ throw LogManager.Log(new InvalidDataException(String.Format("OverrideData script has terminated with exit code '{0}'.", result.ExitCode)));
+ }
+
+ LogManager.Log("Script executed successfully.");
+ }
+ catch (Exception ex)
+ {
+ throw LogManager.Log(ex, "Setup manager error while trying to update the database.");
+ }
}
+
+ LogManager.Log("Update completed successfully.");
});
}
@@ -391,18 +399,13 @@ namespace Tango.PPC.Common.MachineUpdate
LogManager.Log($"Checking if database update is required for serial number {serialNumber}...");
- LogManager.Log("Looking for OverrideData script on application path...");
+ LogManager.Log("Looking for update scripts configuration on application path...");
- String config_file = Path.Combine(PathHelper.GetStartupPath(), "Update Scripts", "OverrideData.xml");
+ String config_file = Path.Combine(PathHelper.GetStartupPath(), "Update Scripts", "config.xml");
if (!File.Exists(config_file))
{
- config_file = Path.Combine(PathHelper.GetStartupPath(), "Provision Scripts", "OverrideData.xml");
- }
-
- if (!File.Exists(config_file))
- {
- throw LogManager.Log(new FileNotFoundException("Could not locate OverrideData.xml file on application folder."));
+ throw LogManager.Log(new FileNotFoundException($"Could not locate '{config_file}' file on application folder."));
}
LogManager.Log($"Connecting to machine service on {machineServiceAddress}...");
@@ -420,53 +423,75 @@ namespace Tango.PPC.Common.MachineUpdate
var localDataSource = SettingsManager.Default.GetOrCreate<CoreSettings>().DataSource;
- LogManager.Log($"Comparing database static tables '{update_response.DataSource.ToString()}' => '{localDataSource.ToString()}'...");
+ LogManager.Log($"Comparing database '{update_response.DataSource.ToString()}' => '{localDataSource.ToString()}'...");
var report_file = TemporaryManager.CreateFile(".xml");
- ExaminerConfigurationBuilder builder = new ExaminerConfigurationBuilder(config_file);
- builder.SetSource(update_response.DataSource);
- builder.SetTarget(localDataSource);
- builder.SetReportFile(report_file);
+ ExaminerSequenceConfiguration config_sequence = ExaminerSequenceConfiguration.FromFile(config_file);
- var config = builder.Build();
+ bool has_differences = false;
- ExaminerProcess process = new ExaminerProcess(config, ExaminerProcessType.Data);
- process.Progress += (x, msg) =>
+ foreach (var item in config_sequence.Items.Where(x => x.Type == ExaminerSequenceItemType.Data).OrderBy(x => x.Index))
{
- LogManager.Log(msg);
- };
+ LogManager.Log($"Executing update script '{item.FileName}...'");
- LogManager.Log("Starting comparison process...");
- LogManager.Log("Generating report on " + report_file);
+ ExaminerConfigurationBuilder builder = new ExaminerConfigurationBuilder(Path.Combine(Path.GetDirectoryName(config_file), item.FileName));
+ builder.SetSource(update_response.DataSource);
+ builder.SetTarget(localDataSource);
+ builder.SetReportFile(report_file);
- try
- {
- var result = process.Execute().Result;
-
- if (result.ExitCode != ExaminerProcessExitCode.Success)
+ if (item.RequiresSerialNumber)
{
- throw LogManager.Log(new InvalidDataException(String.Format("OverrideData script has terminated with exit code '{0}'.", result.ExitCode)));
+ builder.SetMachineSerialNumber(serialNumber);
}
- LogManager.Log("Comparison completed successfully!");
- LogManager.Log("Loading report file...");
+ var config = builder.Build();
- ExaminerDataReport report = ExaminerDataReport.FromFile(report_file);
- report_file.Delete();
+ ExaminerProcess process = new ExaminerProcess(config, ExaminerProcessType.Data);
+ process.Progress += (x, msg) =>
+ {
+ LogManager.Log(msg);
+ };
- LogManager.Log("Comparison summary: \n" + report.Totals.ToJsonString());
+ LogManager.Log("Starting comparison process...");
+ LogManager.Log("Generating report on " + report_file);
- return new DbCompareResult()
+ try
{
- RequiresUpdate = report.HasDifferences,
- UpdateDBResponse = update_response,
- };
+ var result = process.Execute().Result;
+
+ if (result.ExitCode != ExaminerProcessExitCode.Success)
+ {
+ throw LogManager.Log(new InvalidDataException(String.Format("Update script has terminated with exit code '{0}'.", result.ExitCode)));
+ }
+
+ LogManager.Log("Comparison completed successfully!");
+ LogManager.Log("Loading report file...");
+
+ ExaminerDataReport report = ExaminerDataReport.FromFile(report_file);
+ report_file.Delete();
+
+ LogManager.Log("Comparison summary: \n" + report.Totals.ToJsonString());
+
+ if (report.HasDifferences)
+ {
+ has_differences = true;
+ break;
+ }
+ }
+ catch (Exception ex)
+ {
+ throw LogManager.Log(ex, "Update manager error while trying to compare the database.");
+ }
}
- catch (Exception ex)
+
+ LogManager.Log("Comparison completed successfully.");
+
+ return new DbCompareResult()
{
- throw LogManager.Log(ex, "Update manager error while trying to compare the database.");
- }
+ RequiresUpdate = has_differences,
+ UpdateDBResponse = update_response,
+ };
});
}
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/OS/DefaultOperationSystemManager.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/OS/DefaultOperationSystemManager.cs
index 650cda9ff..9e44a5028 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.Common/OS/DefaultOperationSystemManager.cs
+++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/OS/DefaultOperationSystemManager.cs
@@ -5,13 +5,13 @@ using System.Management;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
-using Tango.PPC.Common.Scripting;
namespace Tango.PPC.Common.OS
{
using System.Collections.ObjectModel;
using System.Diagnostics;
using Tango.Core;
+ using Tango.Core.Components;
using SLID = Guid; //SLID id declaration as typedef GUID SLID; in slpublic.h
/// <summary>
@@ -83,9 +83,16 @@ namespace Tango.PPC.Common.OS
CmdCommand command = new CmdCommand("cscript", $"C:\\Windows\\System32\\slmgr.vbs -ipk {activationKey}");
await command.Run();
- await Task.Delay(10000);
+ bool activated = false;
- if (!(await IsActivated()))
+ for (int i = 0; i < 10; i++)
+ {
+ await Task.Delay(2000);
+ activated = await IsActivated();
+ if (activated) break;
+ }
+
+ if (!activated)
{
throw new ApplicationException("The activation was completed but activation status returned a false response.");
}
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/RemoteAssistance/DefaultRemoteAssistanceProvider.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/RemoteAssistance/DefaultRemoteAssistanceProvider.cs
index 1d727d81b..eae13a882 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.Common/RemoteAssistance/DefaultRemoteAssistanceProvider.cs
+++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/RemoteAssistance/DefaultRemoteAssistanceProvider.cs
@@ -5,8 +5,8 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Tango.Core;
+using Tango.Core.Components;
using Tango.PPC.Common.Connection;
-using Tango.PPC.Common.Scripting;
namespace Tango.PPC.Common.RemoteAssistance
{
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Scripting/CmdCommand.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/Scripting/CmdCommand.cs
deleted file mode 100644
index 5abbd49d1..000000000
--- a/Software/Visual_Studio/PPC/Tango.PPC.Common/Scripting/CmdCommand.cs
+++ /dev/null
@@ -1,90 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Diagnostics;
-using System.IO;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using Tango.Core;
-
-namespace Tango.PPC.Common.Scripting
-{
- public class CmdCommand : ExtendedObject
- {
- public enum OutEncoding
- {
- Default,
- Unicode,
- }
-
- private Process _process;
-
- public String Arguments { get; set; }
-
- public TimeSpan Timeout { get; set; }
-
- public String WorkingDir { get; set; }
-
- public OutEncoding OutputEncoding { get; set; }
-
- public CmdCommand(String processName, String arguments)
- {
- Timeout = TimeSpan.FromSeconds(5);
-
- _process = new Process();
- _process.StartInfo.CreateNoWindow = true;
- _process.StartInfo.FileName = processName;
- _process.StartInfo.UseShellExecute = false;
- _process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
- _process.StartInfo.RedirectStandardError = true;
- _process.StartInfo.RedirectStandardOutput = true;
- _process.StartInfo.Arguments = arguments;
- _process.StartInfo.Verb = "runas";
-
- if (WorkingDir != null)
- {
- _process.StartInfo.WorkingDirectory = WorkingDir;
- }
-
- Arguments = arguments;
- }
-
- public Task Run()
- {
- return Task.Factory.StartNew(() =>
- {
- LogManager.Log($"Starting process {_process.StartInfo.FileName} with arguments {Arguments}...");
- _process.Start();
- _process.WaitForExit((int)Timeout.TotalMilliseconds);
-
- if (_process.HasExited)
- {
- String output = _process.StandardOutput.ReadToEnd();
- String error = _process.StandardError.ReadToEnd();
-
- if (OutputEncoding == OutEncoding.Unicode)
- {
- byte[] data = Encoding.Default.GetBytes(output);
- output = Encoding.Unicode.GetString(data);
-
- data = Encoding.Default.GetBytes(error);
- error = Encoding.Unicode.GetString(data);
- }
-
- LogManager.Log($"Process exited with exit code {_process.ExitCode}.");
- LogManager.Log($"Process Standard Output:\n{output}");
- LogManager.Log($"Process Standard Error:\n{error}");
-
- if (_process.ExitCode != 0)
- {
- throw new IOException($"The process {_process.StartInfo.FileName} has exited with the code {_process.ExitCode}.");
- }
- }
- else
- {
- throw new TimeoutException($"The process {_process.StartInfo.FileName} has not exited within the given timeout of {Timeout.TotalSeconds} seconds.");
- }
- });
- }
- }
-}
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Tango.PPC.Common.csproj b/Software/Visual_Studio/PPC/Tango.PPC.Common/Tango.PPC.Common.csproj
index e47437f4d..fe2f87fb2 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.Common/Tango.PPC.Common.csproj
+++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Tango.PPC.Common.csproj
@@ -190,7 +190,6 @@
<Compile Include="Printing\IPrintingManager.cs" />
<Compile Include="RemoteAssistance\DefaultRemoteAssistanceProvider.cs" />
<Compile Include="RemoteAssistance\IRemoteAssistanceProvider.cs" />
- <Compile Include="Scripting\CmdCommand.cs" />
<Compile Include="Storage\DefaultStorageProvider.cs" />
<Compile Include="Storage\IStorageProvider.cs" />
<Compile Include="Threading\IDispatcherProvider.cs" />
@@ -355,7 +354,9 @@
<Install>false</Install>
</BootstrapperPackage>
</ItemGroup>
- <ItemGroup />
+ <ItemGroup>
+ <Folder Include="Scripting\" />
+ </ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Import Project="..\..\packages\System.Data.SQLite.Core.1.0.108.0\build\net46\System.Data.SQLite.Core.targets" Condition="Exists('..\..\packages\System.Data.SQLite.Core.1.0.108.0\build\net46\System.Data.SQLite.Core.targets')" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
@@ -366,7 +367,7 @@
</Target>
<ProjectExtensions>
<VisualStudio>
- <UserProperties BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UseGlobalSettings="False" BuildVersion_StartDate="2000/1/1" />
+ <UserProperties BuildVersion_StartDate="2000/1/1" BuildVersion_UseGlobalSettings="False" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" />
</VisualStudio>
</ProjectExtensions>
</Project> \ No newline at end of file
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/UWF/DefaultUnifiedWriteFilterManager.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/UWF/DefaultUnifiedWriteFilterManager.cs
index 1e7357b2f..65cb3f466 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.Common/UWF/DefaultUnifiedWriteFilterManager.cs
+++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/UWF/DefaultUnifiedWriteFilterManager.cs
@@ -3,7 +3,7 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
-using Tango.PPC.Common.Scripting;
+using Tango.Core.Components;
namespace Tango.PPC.Common.UWF
{
@@ -34,6 +34,15 @@ namespace Tango.PPC.Common.UWF
public async Task Setup()
{
CmdCommand command = null;
+ try
+ {
+
+ command = new CmdCommand(UWF_PATH, $"filter disable");
+ command.OutputEncoding = CmdCommand.OutEncoding.Unicode;
+ await command.Run();
+
+ }
+ catch { }
command = new CmdCommand(UWF_PATH, "overlay set-type disk");
command.OutputEncoding = CmdCommand.OutEncoding.Unicode;
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/App.config b/Software/Visual_Studio/PPC/Tango.PPC.UI/App.config
index 15a7107bd..ea49af905 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.UI/App.config
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/App.config
@@ -11,86 +11,6 @@
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
- <dependentAssembly>
- <assemblyIdentity name="System.Collections.Immutable" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-1.2.2.0" newVersion="1.2.2.0" />
- </dependentAssembly>
- <dependentAssembly>
- <assemblyIdentity name="System.Reflection.Metadata" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-1.4.2.0" newVersion="1.4.2.0" />
- </dependentAssembly>
- <dependentAssembly>
- <assemblyIdentity name="System.IO.FileSystem" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
- </dependentAssembly>
- <dependentAssembly>
- <assemblyIdentity name="System.ValueTuple" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
- </dependentAssembly>
- <dependentAssembly>
- <assemblyIdentity name="System.IO.Compression" publicKeyToken="b77a5c561934e089" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.1.2.0" />
- </dependentAssembly>
- <dependentAssembly>
- <assemblyIdentity name="System.IO.FileSystem.Primitives" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
- </dependentAssembly>
- <dependentAssembly>
- <assemblyIdentity name="System.Security.Cryptography.Primitives" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
- </dependentAssembly>
- <dependentAssembly>
- <assemblyIdentity name="System.Xml.XPath.XDocument" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
- </dependentAssembly>
- <dependentAssembly>
- <assemblyIdentity name="System.Console" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
- </dependentAssembly>
- <dependentAssembly>
- <assemblyIdentity name="System.Diagnostics.StackTrace" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
- </dependentAssembly>
- <dependentAssembly>
- <assemblyIdentity name="System.Reactive.Core" publicKeyToken="94bc3704cddfc263" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-3.0.3000.0" newVersion="3.0.3000.0" />
- </dependentAssembly>
- <dependentAssembly>
- <assemblyIdentity name="Microsoft.Data.Edm" publicKeyToken="31bf3856ad364e35" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-5.6.4.0" newVersion="5.6.4.0" />
- </dependentAssembly>
- <dependentAssembly>
- <assemblyIdentity name="Microsoft.Data.Services.Client" publicKeyToken="31bf3856ad364e35" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-5.6.4.0" newVersion="5.6.4.0" />
- </dependentAssembly>
- <dependentAssembly>
- <assemblyIdentity name="Microsoft.Data.OData" publicKeyToken="31bf3856ad364e35" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-5.6.4.0" newVersion="5.6.4.0" />
- </dependentAssembly>
- <dependentAssembly>
- <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-9.0.0.0" newVersion="9.0.0.0" />
- </dependentAssembly>
- <dependentAssembly>
- <assemblyIdentity name="Microsoft.IdentityModel.Clients.ActiveDirectory" publicKeyToken="31bf3856ad364e35" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-3.19.8.16603" newVersion="3.19.8.16603" />
- </dependentAssembly>
- <dependentAssembly>
- <assemblyIdentity name="Microsoft.IdentityModel.Clients.ActiveDirectory.Platform" publicKeyToken="31bf3856ad364e35" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-3.19.8.16603" newVersion="3.19.8.16603" />
- </dependentAssembly>
- <dependentAssembly>
- <assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-5.2.2.0" newVersion="5.2.2.0" />
- </dependentAssembly>
- <dependentAssembly>
- <assemblyIdentity name="System.Net.Http.Formatting" publicKeyToken="31bf3856ad364e35" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-5.2.2.0" newVersion="5.2.2.0" />
- </dependentAssembly>
- <dependentAssembly>
- <assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-1.5.2.14234" newVersion="1.5.2.14234" />
- </dependentAssembly>
</assemblyBinding>
</runtime>
<entityFramework>
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Connectivity/DefaultConnectivityProvider.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Connectivity/DefaultConnectivityProvider.cs
index 5fc7f00df..e7aff7357 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.UI/Connectivity/DefaultConnectivityProvider.cs
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Connectivity/DefaultConnectivityProvider.cs
@@ -17,7 +17,6 @@ using Tango.PPC.Common.Application;
using Tango.PPC.Common.Connection;
using Tango.PPC.Common.Connectivity;
using Tango.PPC.Common.Notifications;
-using Tango.PPC.Common.Scripting;
using Tango.Settings;
using Tango.WiFi;
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/PPCApplication/DefaultPPCApplicationManager.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/PPCApplication/DefaultPPCApplicationManager.cs
index 4b5874907..f7711318f 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.UI/PPCApplication/DefaultPPCApplicationManager.cs
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/PPCApplication/DefaultPPCApplicationManager.cs
@@ -161,7 +161,7 @@ namespace Tango.PPC.UI.PPCApplication
//Start watchdog
_watchdogServer = new WatchDogServer(Application.Current.Dispatcher);
-#if RELEASE
+#if !DEBUG
if (settings.EnableWatchDog)
{
@@ -381,6 +381,33 @@ namespace Tango.PPC.UI.PPCApplication
}
/// <summary>
+ /// Runs the updater utility and exits the application.
+ /// </summary>
+ public void UpdateApplication(String updaterPath, String arguments)
+ {
+ if (IsShuttingDown) return;
+
+ IsShuttingDown = true;
+
+ try
+ {
+ _watchdogServer.Dispose();
+
+ foreach (var vm in TangoIOC.Default.GetAllInstancesByBase<PPCViewModel>())
+ {
+ vm.OnApplicationShuttingDown();
+ }
+ }
+ catch { }
+
+ LogManager.Log($"Executing '{updaterPath}' with arguments '{arguments}'...");
+ Process.Start(updaterPath, arguments);
+
+ LogManager.Log("Terminating application...");
+ Environment.Exit(0);
+ }
+
+ /// <summary>
/// Enteres the application technician mode.
/// </summary>
public void EnterTechnicianMode()
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Properties/AssemblyInfo.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Properties/AssemblyInfo.cs
index fa54f491e..b7c1f4eff 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.UI/Properties/AssemblyInfo.cs
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Properties/AssemblyInfo.cs
@@ -8,4 +8,4 @@ using System.Windows;
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("Tango PPC Application")]
-[assembly: AssemblyVersion("1.0.6.0")]
+[assembly: AssemblyVersion("1.0.3.0")]
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/MachineSetupViewVM.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/MachineSetupViewVM.cs
index 1bd1e1eea..aca9dbcf7 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/MachineSetupViewVM.cs
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/MachineSetupViewVM.cs
@@ -282,13 +282,9 @@ namespace Tango.PPC.UI.ViewModels
/// </summary>
private void CompleteSetup()
{
- String updater_exe = Path.Combine(_setup_result.UpdatePackagePath, "Tango.PPC.Updater.exe");
-
LogManager.Log("Completing machine setup...");
- LogManager.Log($"Executing '{updater_exe}' with arguments '{PathHelper.GetStartupPath()}'...");
- Process.Start(updater_exe, PathHelper.GetStartupPath());
- LogManager.Log("Terminating application process!");
- _appManager.ShutDown();
+ String updater_exe = Path.Combine(_setup_result.UpdatePackagePath, "Tango.PPC.Updater.exe");
+ _appManager.UpdateApplication(updater_exe, PathHelper.GetStartupPath());
}
/// <summary>
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/MachineUpdateViewVM.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/MachineUpdateViewVM.cs
index 6046f0300..b5b5f56bc 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/MachineUpdateViewVM.cs
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/MachineUpdateViewVM.cs
@@ -194,7 +194,7 @@ namespace Tango.PPC.UI.ViewModels
try
{
- await MachineUpdateManager.UpdateDB(_db_compare_result);
+ await MachineUpdateManager.UpdateDB(_db_compare_result, MachineProvider.Machine.SerialNumber);
LogManager.Log("Database update completed.");
await NavigateTo(MachineUpdateView.UpdateCompletedView);
}
@@ -213,14 +213,12 @@ namespace Tango.PPC.UI.ViewModels
private void CompleteUpdate()
{
+ LogManager.Log("Completing machine update...");
+
if (!IsDbUpdate)
{
String updater_exe = Path.Combine(_update_result.UpdatePackagePath, "Tango.PPC.Updater.exe");
- LogManager.Log("Completing machine setup...");
- LogManager.Log($"Executing '{updater_exe}' with arguments '{PathHelper.GetStartupPath()}'...");
- Process.Start(updater_exe, PathHelper.GetStartupPath());
- LogManager.Log("Terminating application process!");
- ApplicationManager.ShutDown();
+ ApplicationManager.UpdateApplication(updater_exe, PathHelper.GetStartupPath());
}
else
{
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/app.manifest b/Software/Visual_Studio/PPC/Tango.PPC.UI/app.manifest
index efc5f8179..d72e75011 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.UI/app.manifest
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/app.manifest
@@ -16,7 +16,7 @@
Remove this element if your application requires this virtualization for backwards
compatibility.
-->
- <!--<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />-->
+ <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
</requestedPrivileges>
</security>
</trustInfo>