From 3f5ba302842a906950b118c7f6683c061819d76e Mon Sep 17 00:00:00 2001 From: Roy Ben-Shabat Date: Sun, 7 Jan 2018 14:18:58 +0200 Subject: Warning on dispenser conflict in Machine Designer. --- .../ViewModels/MainViewVM.cs | 33 ++++++++++++++-------- 1 file changed, 21 insertions(+), 12 deletions(-) (limited to 'Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MainViewVM.cs') diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MainViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MainViewVM.cs index 457be98b2..ca1c95a03 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MainViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MainViewVM.cs @@ -265,6 +265,13 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels private async void Save() { + foreach (var ids in Configuration.IdsPacks) + { + ids.PackIndex = Configuration.IdsPacks.IndexOf(ids); + ids.Configuration = Configuration; + ids.ConfigurationGuid = Configuration.Guid; + } + //Validate List errors = new List(); @@ -333,24 +340,33 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels { if (pack.Name.IsNullOrWhiteSpace()) { - errors.Add(String.Format("Name is required on IDS pack number {0}.", Configuration.IdsPacks.IndexOf(pack) + 1)); + errors.Add(String.Format("Name is required on IDS pack number '{0}'.", Configuration.IdsPacks.IndexOf(pack) + 1)); continue; } if (pack.CartridgeTypes == null) { - errors.Add(String.Format("Cartridge type is required on IDS pack {0}.", pack.Name)); + errors.Add(String.Format("Cartridge type is required on IDS pack '{0}'.", pack.Name)); } if (pack.Dispenser == null) { - errors.Add(String.Format("Dispenser is required on IDS pack {0}.", pack.Name)); + errors.Add(String.Format("Dispenser is required on IDS pack '{0}'.", pack.Name)); } if (pack.LiquidTypes == null) { - errors.Add(String.Format("Liquid type is required on IDS pack {0}.", pack.Name)); + errors.Add(String.Format("Liquid type is required on IDS pack '{0}'.", pack.Name)); } if (pack.MidTankTypes == null) { - errors.Add(String.Format("Mid Tank type is required on IDS pack {0}.", pack.Name)); + errors.Add(String.Format("Mid Tank type is required on IDS pack '{0}'.", pack.Name)); + } + + var taken_ids = Adapter.Machines.Where(x => x.SerialNumber.ToLower() != Machine.SerialNumber).SelectMany(x => x.MachinesConfigurations).Select(x => x.Configuration).SelectMany(x => x.IdsPacks).ToList().FirstOrDefault(x => x.Dispenser.SerialNumber.ToLower() == pack.Dispenser.SerialNumber.ToLower()); + if (taken_ids != null && taken_ids.Configuration.MachinesConfigurations.Count > 0) + { + if (!_notification.ShowQuestion(String.Format("The Dispenser '{1}' on IDS pack '{0}' is already taken by another machine ('{2}', '{3}'). Are you sure you want to assign it to this machine?", pack.Name, pack.Dispenser.SerialNumber, taken_ids.Configuration.MachinesConfigurations.First().Machine.Name, taken_ids.Configuration.MachinesConfigurations.First().Machine.SerialNumber))) + { + return; + } } } @@ -367,13 +383,6 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels _isSaving = true; InvalidateRelayCommands(); - foreach (var ids in Configuration.IdsPacks) - { - ids.PackIndex = Configuration.IdsPacks.IndexOf(ids); - ids.Configuration = Configuration; - ids.ConfigurationGuid = Configuration.Guid; - } - try { using (_notification.PushTaskItem("Saving Machine Configuration...")) -- cgit v1.3.1