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.cs44
1 files changed, 43 insertions, 1 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 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
/// <param name="idsPack">The ids pack.</param>
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()