aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/PPC/Tango.PPC.Common/MachineUpdate
diff options
context:
space:
mode:
authorRoy Ben Shabat <Roy.mail.net@gmail.com>2019-12-08 00:19:54 +0200
committerRoy Ben Shabat <Roy.mail.net@gmail.com>2019-12-08 00:19:54 +0200
commit3cd59dd3b04168ad91cb1fe51231e9b3ddd74705 (patch)
treeb7431f7fcdf3336a1811140a4e84d3660009d5f1 /Software/Visual_Studio/PPC/Tango.PPC.Common/MachineUpdate
parent00f7facd947e0e8ce05a43d4f9d036e8f9a6a69e (diff)
downloadTango-3cd59dd3b04168ad91cb1fe51231e9b3ddd74705.tar.gz
Tango-3cd59dd3b04168ad91cb1fe51231e9b3ddd74705.zip
Implemented fast database update detection of RMLL, Hardware Versions & Color Catalogs.
Related Work Items: #1622
Diffstat (limited to 'Software/Visual_Studio/PPC/Tango.PPC.Common/MachineUpdate')
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.Common/MachineUpdate/MachineUpdateManager.cs23
1 files changed, 21 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 e98f6d717..5296a9f34 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.Common/MachineUpdate/MachineUpdateManager.cs
+++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/MachineUpdate/MachineUpdateManager.cs
@@ -9,6 +9,7 @@ using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
+using Tango.BL;
using Tango.Core;
using Tango.Core.DB;
using Tango.Core.ExtensionMethods;
@@ -594,6 +595,8 @@ namespace Tango.PPC.Common.MachineUpdate
{
return Task.Factory.StartNew<CheckForUpdateResponse>(() =>
{
+ _isUpdating = true;
+
var machineServiceAddress = SettingsManager.Default.GetOrCreate<PPCSettings>().GetMachineServiceAddress();
LogManager.Log($"Connecting to machine service on {machineServiceAddress}...");
@@ -606,12 +609,28 @@ namespace Tango.PPC.Common.MachineUpdate
request.SerialNumber = serialNumber;
request.Version = _app_manager.Version.ToString();
+ try
+ {
+ using (ObservablesContext db = ObservablesContext.CreateDefault())
+ {
+ request.Rmls = db.Rmls.ToList().Select(x => new UpdatedEntity(x)).ToList();
+ request.HardwareVersions = db.HardwareVersions.ToList().Select(x => new UpdatedEntity(x)).ToList();
+ request.Catalogs = db.ColorCatalogs.ToList().Select(x => new UpdatedEntity(x)).ToList();
+ }
+ }
+ catch (Exception ex)
+ {
+ LogManager.Log(ex, "An error occurred while trying to fill the existing database entities before checking for updates.");
+ }
+
CheckForUpdateResponse update_response = null;
update_response = _client.CheckForUpdates(request).Result;
LogManager.Log($"Check for update response received: {Environment.NewLine}{update_response.ToJsonString()}");
+ _isUpdating = false;
+
return update_response;
});
}
@@ -977,10 +996,10 @@ namespace Tango.PPC.Common.MachineUpdate
try
{
var response = await CheckForUpdate(_machineProvider.Machine.SerialNumber);
- if (response.IsUpdateAvailable)
+ if (response.IsUpdateAvailable || response.IsDatabaseUpdateAvailable)
{
_checkForUpdateTimer.Interval = TimeSpan.FromMinutes(60).TotalMilliseconds;
- LogManager.Log($"New application version detected ({response.Version}). Raising event...");
+ LogManager.Log($"New {(response.IsDatabaseUpdateAvailable ? "database updates" : "application version")} detected ({response.Version}). Raising event...");
UpdateAvailable?.Invoke(this, response);
}
}