diff options
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels')
2 files changed, 40 insertions, 5 deletions
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MachineCreationDialogVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MachineCreationDialogVM.cs index 168ff62dd..9d203b76d 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MachineCreationDialogVM.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MachineCreationDialogVM.cs @@ -4,6 +4,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; using Tango.BL.Entities; +using Tango.BL.Enumerations; using Tango.SharedUI; namespace Tango.MachineStudio.MachineDesigner.ViewModels @@ -14,9 +15,24 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels public List<HardwareVersion> HardwareVersions { get; set; } - public HardwareVersion SelectedHardwareVersion { get; set; } + public List<HardwareVersion> HardwareVersionsFiltered + { + get { return HardwareVersions.Where(x => x.MachineType == (int)MachineType).ToList(); } + } + + private HardwareVersion _selectedHardwareVersion; + public HardwareVersion SelectedHardwareVersion + { + get { return _selectedHardwareVersion; } + set { _selectedHardwareVersion = value; RaisePropertyChangedAuto(); } + } - public MachinePrototype SelectedPrototype { get; set; } + private MachinePrototype _selectedProtoType; + public MachinePrototype SelectedPrototype + { + get { return _selectedProtoType; } + set { _selectedProtoType = value; MachineType = (MachineTypes)value.MachineType; } + } private bool _isNewMachine; public bool IsNewMachine @@ -32,6 +48,13 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels set { _serialNumber = value; RaisePropertyChangedAuto(); InvalidateRelayCommands(); } } + private MachineTypes _machineType; + public MachineTypes MachineType + { + get { return _machineType; } + set { _machineType = value; RaisePropertyChanged(nameof(HardwareVersionsFiltered)); SelectedHardwareVersion = HardwareVersionsFiltered.FirstOrDefault(); } + } + private String _name; public String Name { @@ -41,7 +64,7 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels protected override bool CanOK() { - return base.CanOK() && !String.IsNullOrWhiteSpace(SerialNumber) && !String.IsNullOrWhiteSpace(Name); + return base.CanOK() && !String.IsNullOrWhiteSpace(SerialNumber) && !String.IsNullOrWhiteSpace(Name) && SelectedHardwareVersion != null; } } } 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 c31ea0a53..cad54c848 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 @@ -540,6 +540,8 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels ActiveMachine.Configuration = new Configuration(); ActiveMachine.SerialNumber = machineCreationDialogVM.SerialNumber; ActiveMachine.Name = machineCreationDialogVM.Name; + ActiveMachine.Type = machineCreationDialogVM.MachineType; + ActiveMachine.MachineVersion = ActiveMachineAdapter.MachineVersions.First(x => x.MachineType == machineCreationDialogVM.MachineType); ActiveMachineAdapter.Context.Machines.Add(ActiveMachine); } else @@ -548,7 +550,7 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels { initHwConfig = false; ActiveMachine = machineCreationDialogVM.SelectedPrototype.CreateMachine(machineCreationDialogVM.SerialNumber, machineCreationDialogVM.Name); - ActiveMachine.MachineVersion = ActiveMachineAdapter.MachineVersions.FirstOrDefault(x => x.Guid == ActiveMachine.MachineVersionGuid); + ActiveMachine.MachineVersion = ActiveMachineAdapter.MachineVersions.First(x => x.MachineType == machineCreationDialogVM.MachineType); if (machineCreationDialogVM.SelectedHardwareVersion != null) { @@ -713,6 +715,14 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels errors.Add("Hardware version is required."); } + if (ActiveMachine.Configuration.HardwareVersion != null) + { + if (ActiveMachine.Configuration.HardwareVersion.ForMachineType != ActiveMachine.Type) + { + errors.Add($"Hardware version '{ActiveMachine.Configuration.HardwareVersion.Name}' is intended only for {ActiveMachine.Configuration.HardwareVersion.ForMachineType} machines."); + } + } + foreach (var pack in ActiveMachine.Configuration.IdsPacks) { if (pack.LiquidType != null || pack.CartridgeType != null || pack.Dispenser != null || pack.IdsPackFormula != null || pack.MidTankType != null) @@ -853,7 +863,7 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels vm.IsNewMachine = true; vm.Prototypes = prototypes.ToList(); vm.HardwareVersions = hardwareVersions.OrderByDescending(x => x.Version).ToList(); - vm.SelectedHardwareVersion = vm.HardwareVersions.FirstOrDefault(); + vm.SelectedHardwareVersion = vm.HardwareVersions.Where(x => x.ForMachineType == MachineTypes.TS1800).FirstOrDefault(); _notification.ShowModalDialog<MachineCreationDialogVM, Views.MachineCreationDialog>(vm, (x) => { using (ObservablesContext db = ObservablesContext.CreateDefault()) @@ -1013,6 +1023,7 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels { x.Guid, x.SerialNumber, + x.MachineType, x.Name, Organization = x.Organization.Name, MachineVersion = x.MachineVersion.Name, @@ -1030,6 +1041,7 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels MachineModel model = new MachineModel(); model.Guid = machine.Guid; model.SerialNumber = machine.SerialNumber; + model.MachineType = (MachineTypes)machine.MachineType; model.Name = machine.Name; model.Organization = machine.Organization; model.HardwareVersion = machine.HardwareVersionName + " v" + machine.HardwareVersionVersion; |
