From 8d2dc68fdddc51bc24ac6f41feb97460a7d27372 Mon Sep 17 00:00:00 2001 From: Roy Ben-Shabat Date: Sun, 7 Jan 2018 12:53:01 +0200 Subject: Implemented validation on machine designer. Machine Designer seems to be working properly... --- .../ViewModels/MainViewVM.cs | 123 +++++++++++++++++++-- 1 file changed, 116 insertions(+), 7 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 22e350745..be28f92b5 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 @@ -12,6 +12,7 @@ using Tango.Core.Helpers; using Tango.DAL.Observables; using Tango.MachineStudio.Common.Notifications; using Tango.SharedUI; +using SimpleValidator.Extensions; namespace Tango.MachineStudio.MachineDesigner.ViewModels { @@ -133,6 +134,11 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels } } + public void DropIdsPack(IdsPack idsPack1, IdsPack idsPack2) + { + Configuration.IdsPacks.Swap(idsPack1, idsPack2); + } + private void OnHistoryConfigurationSelected() { if (SelectedHistoryConfiguration != null) @@ -240,7 +246,10 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels if (value != null) { - return value.ToLower().Contains(Filter.ToLower()); + if (value.ToLower().Contains(Filter.ToLower())) + { + return true; + } } } @@ -251,9 +260,115 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels private async void Save() { + //Validate + + List errors = new List(); + + if (Machine.MachineVersions == null) + { + errors.Add("Machine Version is required."); + } + + if (Machine.Name.IsNullOrWhiteSpace()) + { + errors.Add("Machine name is required."); + } + + if (Machine.Organization == null) + { + errors.Add("Machine organization is required."); + } + + if (Machine.SerialNumber.IsNullOrWhiteSpace()) + { + errors.Add("Machine serial number is required."); + } + + if (Configuration.Name.IsNullOrWhiteSpace()) + { + errors.Add("Configuration name is required."); + } + + if (Configuration.ApplicationDisplayPanelVersions == null) + { + errors.Add("Touch Panel is required."); + } + + if (Configuration.ApplicationFirmwareVersions == null) + { + errors.Add("Application Firmware is required."); + } + + if (Configuration.ApplicationOsVersions == null) + { + errors.Add("Application OS Version is required."); + } + + if (Configuration.ApplicationVersions == null) + { + errors.Add("Application Version is required."); + } + + if (Configuration.EmbeddedFirmwareVersions == null) + { + errors.Add("Embedded Firmware is required."); + } + + if (Configuration.EmbeddedSoftwareVersions == null) + { + errors.Add("Embedded Software is required."); + } + + if (Configuration.HardwareVersions == null) + { + errors.Add("Hardware Version is required."); + } + + foreach (var pack in Configuration.IdsPacks) + { + if (pack.Name.IsNullOrWhiteSpace()) + { + 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)); + } + if (pack.Dispenser == null) + { + 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)); + } + if (pack.MidTankTypes == null) + { + errors.Add(String.Format("Mid Tank type is required on IDS pack {0}.", pack.Name)); + } + } + + if (errors.Count > 0) + { + String errorsString = "Please fix the following validation errors before trying to save." + Environment.NewLine + Environment.NewLine; + errorsString += String.Join(Environment.NewLine, errors); + _notification.ShowError(errorsString); + return; + } + + //Validate + _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...")) @@ -282,12 +397,6 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels } else { - foreach (var ids in Configuration.IdsPacks) - { - ids.Configuration = Configuration; - ids.ConfigurationGuid = Configuration.Guid; - } - var machine = Adapter.Machines.Single(x => x.SerialNumber.ToLower() == Machine.SerialNumber.ToLower()); //Set 'Real machine' parameters... -- cgit v1.3.1