From 331266b13685e16520ae5baa8a7aff50789c31df Mon Sep 17 00:00:00 2001 From: Roy Ben Shabat Date: Wed, 13 Nov 2024 05:12:21 +0200 Subject: Inks Extension Support. --- .../ViewModels/MainViewVM.cs | 44 +++++++++++++++++++++- 1 file changed, 43 insertions(+), 1 deletion(-) (limited to 'Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels') 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 ddc0d91a3..8d539769c 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 @@ -261,6 +261,8 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels public RelayCommand MakePrototypeCommand { get; set; } public RelayCommand UpgradeToGen2Command { get; set; } + + public RelayCommand CreateDispenserCommand { get; set; } #endregion #region Constructors @@ -301,6 +303,8 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels TupViewVM = new TupViewVM(_notification); UpgradeToGen2Command = new RelayCommand(UpgradeToGEN2); + + CreateDispenserCommand = new RelayCommand(CreateDispenser); } #endregion @@ -318,7 +322,7 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels { Task.Factory.StartNew(() => { - ActiveMachineAdapter.Dispensers = ActiveMachineAdapter.Context.Dispensers.Where(x => x.SerialNumber.ToLower().StartsWith(DispensersFilter.ToLower())).OrderBy(x => x.SerialNumber).ToSynchronizedObservableCollection(); + ActiveMachineAdapter.Dispensers = ActiveMachineAdapter.Context.Dispensers.Where(x => x.SerialNumber.ToLower().StartsWith(DispensersFilter.ToLower())).OrderBy(x => x.SerialNumber).ToSynchronizedObservableCollection().OrderByAlphaNumeric(x => x.SerialNumber).ToSynchronizedObservableCollection(); }); }); } @@ -394,6 +398,18 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels /// The ids pack. public void DropDispenser(Dispenser dispenser, IdsPack idsPack) { + if (ActiveMachine.Configuration.IdsPacks.Any(x => x.DispenserGuid == dispenser.Guid)) + { + _notification.ShowError("The selected dispenser is already installed on this machine."); + return; + } + + if (ActiveMachineAdapter.Context.IdsPacks.Any(x => x.DispenserGuid == dispenser.Guid)) + { + _notification.ShowError("The selected dispenser is already installed on another machine."); + return; + } + idsPack.Dispenser = dispenser; idsPack.DispenserGuid = dispenser.Guid; } @@ -966,6 +982,32 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels } } + private async void CreateDispenser() + { + String serialNumber = _notification.ShowTextInput("Please enter new serial number", "Serial Number", ActiveMachine.SerialNumber + "_D" + (ActiveMachine.Configuration.IdsPacks.Where(x => x.Dispenser != null).Count() + 1).ToString()); + if (serialNumber.IsNullOrWhiteSpace()) return; + + if (ActiveMachineAdapter.Context.Dispensers.Any(x => x.SerialNumber == serialNumber)) + { + _notification.ShowError($"Dispenser '{serialNumber}' already exists. Please enter a different serial number."); + return; + } + + using (_notification.PushTaskItem("Creating new dispenser...")) + { + using (var db = ObservablesContext.CreateDefault()) + { + Dispenser dispenser = new Dispenser(); + dispenser.SerialNumber = serialNumber; + dispenser.DispenserTypeGuid = ActiveMachineAdapter.Context.DispenserTypes.First(x => x.Code == (int)DispenserTypes.StandardDispenser).Guid; + dispenser.NlPerPulse = 2.34; + db.Dispensers.Add(dispenser); + await db.SaveChangesAsync(); + DispensersFilter = serialNumber; + } + } + } + #endregion private void CloneMachine() -- cgit v1.3.1