aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio
diff options
context:
space:
mode:
authorRoy Ben Shabat <Roy.mail.net@gmail.com>2019-12-21 23:17:25 +0200
committerRoy Ben Shabat <Roy.mail.net@gmail.com>2019-12-21 23:17:25 +0200
commitcd670d0404673efd095ae2baec1873b916c49c81 (patch)
tree2b058baa663372411956ece0c6cfdae8c1382742 /Software/Visual_Studio
parentaeb55d27a8abf291913724fc1676ecbf27cb2c1a (diff)
downloadTango-cd670d0404673efd095ae2baec1873b916c49c81.tar.gz
Tango-cd670d0404673efd095ae2baec1873b916c49c81.zip
Implemented not existing deleted RML check for PPC update and error message.
Added proper notification when trying to remove used RML onMS.
Diffstat (limited to 'Software/Visual_Studio')
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/ViewModels/MainViewVM.cs10
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.Common/MachineUpdate/MachineUpdateManager.cs1
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.Common/Web/CheckForUpdateRequest.cs2
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.Common/Web/CheckForUpdateResponse.cs2
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/MachineUpdateViewVM.cs23
-rw-r--r--Software/Visual_Studio/Web/Tango.MachineService/Controllers/PPCController.cs4
6 files changed, 41 insertions, 1 deletions
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/ViewModels/MainViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/ViewModels/MainViewVM.cs
index 527159aa5..5c55892ba 100644
--- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/ViewModels/MainViewVM.cs
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.RML/ViewModels/MainViewVM.cs
@@ -445,7 +445,7 @@ namespace Tango.MachineStudio.RML.ViewModels
private async void RemoveSelectedRml()
{
- if (_notification.ShowQuestion("Removing the selected RML will result in the loss of all related process parameters and default calibration data. Are you sure you want to delete the selected RML?"))
+ if (_notification.ShowQuestion("Removing the selected thread will result in the loss of all related process parameters and default calibration data. Are you sure you want to delete the selected RML?"))
{
IsFree = false;
@@ -453,6 +453,14 @@ namespace Tango.MachineStudio.RML.ViewModels
{
try
{
+ var rml_jobs = await _rmls_context.Jobs.Where(x => x.RmlGuid == SelectedRML.Guid).Include(x => x.Machine).OrderBy(x => x.Machine.SerialNumber).ToListAsync();
+
+ if (rml_jobs.Count > 0)
+ {
+ _notification.ShowError($"The following jobs must be removed or change thread type before the selected thread can be deleted:\n{String.Join("\n",rml_jobs.Select(x => $"{x.Machine.SerialNumber} => {x.Name}"))}");
+ return;
+ }
+
await SelectedRML.DeleteCascadeAsync(_rmls_context);
_actionLogManager.InsertLog(BL.Enumerations.ActionLogType.RmlDeleted, _authentication.CurrentUser, SelectedRML.Name, SelectedRML, "RML deleted from Machine Studio.");
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 d0424254b..8d6e02020 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.Common/MachineUpdate/MachineUpdateManager.cs
+++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/MachineUpdate/MachineUpdateManager.cs
@@ -852,6 +852,7 @@ namespace Tango.PPC.Common.MachineUpdate
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();
+ request.UsedRmlsGuids = db.Jobs.Select(x => x.RmlGuid).Distinct().ToList();
}
}
catch (Exception ex)
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Web/CheckForUpdateRequest.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/Web/CheckForUpdateRequest.cs
index 3d606b918..0d86fa117 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.Common/Web/CheckForUpdateRequest.cs
+++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Web/CheckForUpdateRequest.cs
@@ -16,12 +16,14 @@ namespace Tango.PPC.Common.Web
public List<UpdatedEntity> HardwareVersions { get; set; }
public List<UpdatedEntity> Catalogs { get; set; }
public DateTime MachineLastUpdated { get; set; }
+ public List<String> UsedRmlsGuids { get; set; }
public CheckForUpdateRequest()
{
Rmls = new List<UpdatedEntity>();
HardwareVersions = new List<UpdatedEntity>();
Catalogs = new List<UpdatedEntity>();
+ UsedRmlsGuids = new List<string>();
}
}
}
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Web/CheckForUpdateResponse.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/Web/CheckForUpdateResponse.cs
index a857a20a1..2fb33ebdc 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.Common/Web/CheckForUpdateResponse.cs
+++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Web/CheckForUpdateResponse.cs
@@ -16,10 +16,12 @@ namespace Tango.PPC.Common.Web
public bool SetupFirmware { get; set; }
public bool SetupFPGA { get; set; }
public UpdateDBResponse UpdateDBResponse { get; set; }
+ public List<String> UsedNotExistingRmlsGuids { get; set; }
public CheckForUpdateResponse()
{
UpdateDBResponse = new UpdateDBResponse();
+ UsedNotExistingRmlsGuids = new List<string>();
}
}
}
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 49b2aef89..0af977614 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/MachineUpdateViewVM.cs
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/MachineUpdateViewVM.cs
@@ -1,10 +1,12 @@
using System;
using System.Collections.Generic;
+using System.Data.Entity;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
+using Tango.BL;
using Tango.Core.Commands;
using Tango.Core.Helpers;
using Tango.Explorer;
@@ -156,6 +158,27 @@ namespace Tango.PPC.UI.ViewModels
}
var response = await MachineUpdateManager.CheckForUpdate(MachineProvider.Machine.SerialNumber);
+
+ try
+ {
+ if (response.UsedNotExistingRmlsGuids.Count > 0)
+ {
+ using (ObservablesContext db = ObservablesContext.CreateDefault())
+ {
+ var arr = response.UsedNotExistingRmlsGuids.ToArray();
+ var jobs = await db.Jobs.Where(x => arr.Contains(x.RmlGuid)).ToListAsync();
+ FailedError = $"The following jobs must be removed or change thread type before the system can be updated:\n{String.Join("\n", jobs.Select(x => x.Name))}";
+ _isChecking = false;
+ await NavigateTo(MachineUpdateView.UpdateFailedView);
+ return;
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ LogManager.Log(ex, "Error on used RML check procedure.");
+ }
+
_checkUpdateResponse = response;
if (response.IsUpdateAvailable)
diff --git a/Software/Visual_Studio/Web/Tango.MachineService/Controllers/PPCController.cs b/Software/Visual_Studio/Web/Tango.MachineService/Controllers/PPCController.cs
index ade8f88bc..1bb025217 100644
--- a/Software/Visual_Studio/Web/Tango.MachineService/Controllers/PPCController.cs
+++ b/Software/Visual_Studio/Web/Tango.MachineService/Controllers/PPCController.cs
@@ -330,6 +330,10 @@ namespace Tango.MachineService.Controllers
var hardwareVersions = db.HardwareVersions.Select(x => new { x.Guid, x.LastUpdated }).ToList();
var catalogs = db.ColorCatalogs.Select(x => new { x.Guid, x.LastUpdated }).ToList();
+ var arr = request.UsedRmlsGuids.ToArray();
+ var existingRml = db.Rmls.Where(x => arr.Contains(x.Guid)).Select(x => x.Guid).Distinct().ToList();
+ response.UsedNotExistingRmlsGuids = arr.Where(x => !existingRml.Exists(y => y == x)).ToList();
+
bool hasDatabaseUpdates = false;
hasDatabaseUpdates = machine.LastUpdated > request.MachineLastUpdated;