aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModels/MainViewVM.cs
diff options
context:
space:
mode:
authorRoy Ben-Shabat <Roy@Twine-s.com>2018-01-23 17:58:59 +0200
committerRoy Ben-Shabat <Roy@Twine-s.com>2018-01-23 17:58:59 +0200
commit8ae0f3da19c537eff30e19a1fe99cce51b3116f1 (patch)
tree999f8c0ab670b775b4bcde5a4a0d26fb4f287fd5 /Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModels/MainViewVM.cs
parent891b5703fc8722ecc70c7883213b994f8902bb7b (diff)
downloadTango-8ae0f3da19c537eff30e19a1fe99cce51b3116f1.tar.gz
Tango-8ae0f3da19c537eff30e19a1fe99cce51b3116f1.zip
A lot of work on Developer Module and Jobs related DB tables.
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModels/MainViewVM.cs')
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModels/MainViewVM.cs120
1 files changed, 110 insertions, 10 deletions
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModels/MainViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModels/MainViewVM.cs
index 621ce550b..34a4ff470 100644
--- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModels/MainViewVM.cs
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModels/MainViewVM.cs
@@ -7,6 +7,7 @@ using System.Text;
using System.Threading.Tasks;
using Tango.Core.Commands;
using Tango.DAL.Observables;
+using Tango.MachineStudio.Common.Notifications;
using Tango.MachineStudio.Common.StudioApplication;
using Tango.SharedUI;
@@ -14,6 +15,8 @@ namespace Tango.MachineStudio.Developer.ViewModels
{
public class MainViewVM : ViewModel
{
+ private INotificationProvider _notification;
+
public IStudioApplicationManager ApplicationManager { get; set; }
public ObservablesEntitiesAdapter Adapter { get; set; }
@@ -34,18 +37,43 @@ namespace Tango.MachineStudio.Developer.ViewModels
set { _liquidTypesRmls = value; RaisePropertyChangedAuto(); }
}
- private ObservableCollection<RmlsProcessParametersTable> _rmlProcessParametersTables;
+ private ProcessParametersTablesGroup _rmlProcessParametersTablesGroup;
+
+ public ProcessParametersTablesGroup RmlProcessParametersTableGroup
+ {
+ get { return _rmlProcessParametersTablesGroup; }
+ set { _rmlProcessParametersTablesGroup = value; RaisePropertyChangedAuto(); }
+ }
+
+ private ProcessParametersTablesGroup _selectedGroupHistory;
+
+ public ProcessParametersTablesGroup SelectedGroupHistory
+ {
+ get { return _selectedGroupHistory; }
+ set { _selectedGroupHistory = value; RaisePropertyChangedAuto(); OnSelectedGroupHistoryChanged(); }
+ }
+
+ private void OnSelectedGroupHistoryChanged()
+ {
+ if (SelectedGroupHistory != null)
+ {
+ RmlProcessParametersTableGroup = SelectedGroupHistory.CloneGroup();
+ }
+ }
+
+ private ObservableCollection<ProcessParametersTablesGroup> _groupsHistory;
- public ObservableCollection<RmlsProcessParametersTable> RmlProcessParametersTables
+ public ObservableCollection<ProcessParametersTablesGroup> GroupsHistory
{
- get { return _rmlProcessParametersTables; }
- set { _rmlProcessParametersTables = value; RaisePropertyChangedAuto(); }
+ get { return _groupsHistory; }
+ set { _groupsHistory = value; RaisePropertyChangedAuto(); }
}
- private DBViewContextWrapper<Rml> _selectedRML;
- public DBViewContextWrapper<Rml> SelectedRML
+ private Rml _selectedRML;
+
+ public Rml SelectedRML
{
get { return _selectedRML; }
set { _selectedRML = value; RaisePropertyChangedAuto(); InvalidateLiquidFactorsAndProcessTables(); InvalidateRelayCommands(); }
@@ -66,24 +94,48 @@ namespace Tango.MachineStudio.Developer.ViewModels
public RelayCommand ToggleSideBarCommand { get; set; }
+ public RelayCommand SaveProcessParametersCommand { get; set; }
+
+ public RelayCommand SaveLiquidFactorsCommand { get; set; }
+
public MainViewVM()
{
IsSideBarOpened = true;
}
[PreferredConstructor]
- public MainViewVM(IStudioApplicationManager applicationManager)
+ public MainViewVM(IStudioApplicationManager applicationManager, INotificationProvider notificationProvider)
{
+ _notification = notificationProvider;
Adapter = ObservablesEntitiesAdapter.Instance;
EditMachineCommand = new RelayCommand(EditMachine, (x) => SelectedMachine != null);
ApplicationManager = applicationManager;
EditRMLCommand = new RelayCommand(EditRML, (x) => SelectedRML != null);
ToggleSideBarCommand = new RelayCommand(() => IsSideBarOpened = !IsSideBarOpened);
+ SaveProcessParametersCommand = new RelayCommand(SaveProcessParameters);
+ SaveLiquidFactorsCommand = new RelayCommand(SaveLiquidFactors);
+ }
+
+ private async void SaveLiquidFactors()
+ {
+ if (SelectedRML != null)
+ {
+ using (_notification.PushTaskItem("Saving Liquid Factors..."))
+ {
+ String machineGuid = SelectedMachine.Guid;
+ String rmlGuid = SelectedRML.Guid;
+
+ await SelectedRML.SaveAsync();
+
+ SelectedMachine = Adapter.Machines.SingleOrDefault(x => x.Guid == machineGuid);
+ SelectedRML = Adapter.Rmls.SingleOrDefault(x => x.Guid == rmlGuid);
+ }
+ }
}
private void EditRML()
{
- ApplicationManager.RequestModule("Data Base", SelectedRML.EditEntity);
+ ApplicationManager.RequestModule("Data Base", SelectedRML);
}
private void EditMachine()
@@ -96,12 +148,60 @@ namespace Tango.MachineStudio.Developer.ViewModels
InvalidateLiquidFactorsAndProcessTables();
}
+ private async void SaveProcessParameters()
+ {
+ var response = _notification.ShowTextInput("Enter Group Name", "Group Name");
+
+ if (response == null) return;
+
+ using (_notification.PushTaskItem("Saving Parameters Group..."))
+ {
+ ProcessParametersTablesGroup group = new ProcessParametersTablesGroup();
+
+ List<ProcessParametersTable> tables = new List<ProcessParametersTable>();
+ foreach (var table in RmlProcessParametersTableGroup.ProcessParametersTables)
+ {
+ var newTable = table.CloneEntity();
+ newTable.ProcessParametersTablesGroups = group;
+ tables.Add(newTable);
+ }
+
+ group.Active = true;
+ group.ProcessParametersTables = tables.ToObservableCollection();
+ group.Rml = SelectedRML;
+ group.Name = response;
+ group.SaveDate = DateTime.UtcNow;
+
+ foreach (var g in SelectedRML.ProcessParametersTablesGroups)
+ {
+ g.Active = false;
+ }
+
+ String machineGuid = SelectedMachine.Guid;
+ String rmlGuid = SelectedRML.Guid;
+
+ SelectedRML.ProcessParametersTablesGroups.Add(group);
+ await SelectedRML.SaveAsync();
+
+ SelectedMachine = Adapter.Machines.SingleOrDefault(x => x.Guid == machineGuid);
+ SelectedRML = Adapter.Rmls.SingleOrDefault(x => x.Guid == rmlGuid);
+ }
+ }
+
private void InvalidateLiquidFactorsAndProcessTables()
{
if (SelectedRML != null && SelectedMachine != null)
{
- LiquidTypesRmls = SelectedMachine.Configuration.IdsPacks.OrderBy(x => x.PackIndex).Select(x => x.LiquidTypes).SelectMany(x => x.LiquidTypesRmls).Where(x => x.Rml.Guid == SelectedRML.EditEntity.Guid).ToList();
- RmlProcessParametersTables = SelectedRML.EditEntity.RmlsProcessParametersTables.ToObservableCollection();
+ LiquidTypesRmls = SelectedMachine.Configuration.IdsPacks.OrderBy(x => x.PackIndex).Select(x => x.LiquidTypes).SelectMany(x => x.LiquidTypesRmls).Where(x => x.Rml.Guid == SelectedRML.Guid).ToList();
+ RmlProcessParametersTableGroup = SelectedRML.ProcessParametersTablesGroups.SingleOrDefault(x => x.Active);
+
+ if (RmlProcessParametersTableGroup != null)
+ {
+ RmlProcessParametersTableGroup = RmlProcessParametersTableGroup.CloneGroup();
+ RmlProcessParametersTableGroup.ProcessParametersTables = RmlProcessParametersTableGroup.ProcessParametersTables.OrderBy(x => x.TableIndex).ToObservableCollection();
+ }
+
+ GroupsHistory = SelectedRML.ProcessParametersTablesGroups.OrderByDescending(x => x.SaveDate).OrderBy(x => !x.Active).ToObservableCollection();
}
}
}