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... --- .../Tango.MachineStudio.MachineDesigner.csproj | 3 + .../ViewModels/MainViewVM.cs | 123 +++++++++++++++++++-- .../Views/MainView.xaml | 54 +++++---- .../Views/MainView.xaml.cs | 4 + .../packages.config | 1 + 5 files changed, 155 insertions(+), 30 deletions(-) (limited to 'Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner') diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Tango.MachineStudio.MachineDesigner.csproj b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Tango.MachineStudio.MachineDesigner.csproj index 96d7ddb8f..1a2564e0c 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Tango.MachineStudio.MachineDesigner.csproj +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Tango.MachineStudio.MachineDesigner.csproj @@ -55,6 +55,9 @@ ..\..\..\packages\CommonServiceLocator.1.3\lib\portable-net4+sl5+netcore45+wpa81+wp8\Microsoft.Practices.ServiceLocation.dll + + ..\..\..\packages\SimpleValidator.0.6.1.0\lib\net40\SimpleValidator.dll + 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... diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MainView.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MainView.xaml index 03a3e2636..68c772c0c 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MainView.xaml +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MainView.xaml @@ -85,19 +85,21 @@ - MACHINE DESIGNER - - - - - - - - - - - - + + MACHINE DESIGNER + + + + + + + + + + + + + @@ -321,8 +323,14 @@ - Mid Tanks - + Mid Tanks + + + + + + Cartridges + @@ -510,8 +518,8 @@ - - + +