aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels
diff options
context:
space:
mode:
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels')
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MainViewVM.cs123
1 files changed, 116 insertions, 7 deletions
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<String> errors = new List<string>();
+
+ 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...