aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MainViewVM.cs
diff options
context:
space:
mode:
authorRoy Ben Shabat <Roy.mail.net@gmail.com>2024-12-05 02:42:52 +0200
committerRoy Ben Shabat <Roy.mail.net@gmail.com>2024-12-05 02:42:52 +0200
commit92de61904c6ae3f8455827944b4aa62c5582bbb5 (patch)
treed02f1ce1294b93400d7732356d54edf24766af17 /Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MainViewVM.cs
parent84708ec080fb94ccf637ac623967fd0e538c1fb5 (diff)
parentb77fbb01ed5b63b65f6e755fef9ca49c3e58ea50 (diff)
downloadTango-92de61904c6ae3f8455827944b4aa62c5582bbb5.tar.gz
Tango-92de61904c6ae3f8455827944b4aa62c5582bbb5.zip
Merged Extra Inks to Software.
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MainViewVM.cs')
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MainViewVM.cs47
1 files changed, 45 insertions, 2 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 cad54c848..75dcdbfe4 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
@@ -36,6 +36,7 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels
{
public class MainViewVM : StudioViewModel<IMainView>
{
+ private const int MAX_IDS_PACKS = 15;
private INotificationProvider _notification;
private IActionLogManager _actionLogManager;
private IAuthenticationProvider _authentication;
@@ -260,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
@@ -283,7 +286,7 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels
_machines_action_timer = new ActionTimer(TimeSpan.FromMilliseconds(200));
_dispensers_action_timer = new ActionTimer(TimeSpan.FromMilliseconds(200));
- AddIdsCommand = new RelayCommand(AddIds, (x) => ActiveMachine != null && ActiveMachine.Configuration != null && ActiveMachine.Configuration.IdsPacks.Count < 10);
+ AddIdsCommand = new RelayCommand(AddIds, (x) => ActiveMachine != null && ActiveMachine.Configuration != null && ActiveMachine.Configuration.IdsPacks.Count < MAX_IDS_PACKS);
RemoveIdsCommand = new RelayCommand(RemoveIds, (x) => SelectedIds != null);
EditMachineCommand = new RelayCommand(() => LoadSelectedMachine(), () => SelectedMachine != null);
BackToMachinesCommand = new RelayCommand(() => View.NavigateTo(MachineDesignerNavigationView.MachinesView));
@@ -300,6 +303,8 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels
TupViewVM = new TupViewVM(_notification);
UpgradeToGen2Command = new RelayCommand(UpgradeToGEN2);
+
+ CreateDispenserCommand = new RelayCommand(CreateDispenser);
}
#endregion
@@ -317,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();
});
});
}
@@ -393,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;
}
@@ -965,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()