aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/FSE/Modules/Tango.FSE.MachineConfiguration/ViewModels
diff options
context:
space:
mode:
Diffstat (limited to 'Software/Visual_Studio/FSE/Modules/Tango.FSE.MachineConfiguration/ViewModels')
-rw-r--r--Software/Visual_Studio/FSE/Modules/Tango.FSE.MachineConfiguration/ViewModels/ConfigurationViewVM.cs44
-rw-r--r--Software/Visual_Studio/FSE/Modules/Tango.FSE.MachineConfiguration/ViewModels/DataStoreViewVM.cs13
-rw-r--r--Software/Visual_Studio/FSE/Modules/Tango.FSE.MachineConfiguration/ViewModels/MachineViewVM.cs60
-rw-r--r--Software/Visual_Studio/FSE/Modules/Tango.FSE.MachineConfiguration/ViewModels/MainViewVM.cs60
-rw-r--r--Software/Visual_Studio/FSE/Modules/Tango.FSE.MachineConfiguration/ViewModels/SelectionViewVM.cs48
5 files changed, 225 insertions, 0 deletions
diff --git a/Software/Visual_Studio/FSE/Modules/Tango.FSE.MachineConfiguration/ViewModels/ConfigurationViewVM.cs b/Software/Visual_Studio/FSE/Modules/Tango.FSE.MachineConfiguration/ViewModels/ConfigurationViewVM.cs
new file mode 100644
index 000000000..1540a4e67
--- /dev/null
+++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.MachineConfiguration/ViewModels/ConfigurationViewVM.cs
@@ -0,0 +1,44 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Tango.BL.Entities;
+using Tango.FSE.Common;
+using Tango.FSE.Common.AutoComplete;
+using Tango.FSE.MachineConfiguration.Messages;
+
+namespace Tango.FSE.MachineConfiguration.ViewModels
+{
+ public class ConfigurationViewVM : FSEViewModel
+ {
+ private Machine _machine;
+ public Machine Machine
+ {
+ get { return _machine; }
+ set { _machine = value; RaisePropertyChangedAuto(); }
+ }
+
+ private List<Organization> _organizations;
+ public List<Organization> Organizations
+ {
+ get { return _organizations; }
+ set { _organizations = value; RaisePropertyChangedAuto(); }
+ }
+
+ public ConfigurationViewVM()
+ {
+ RegisterForMessage<MachineLoadedMessage>(HandleMachineLoadedMessage);
+ }
+
+ private async void HandleMachineLoadedMessage(MachineLoadedMessage msg)
+ {
+ using (NotificationProvider.PushTaskItem("Loading configuration options..."))
+ {
+ Machine = msg.Machine;
+ Organizations = await Services.OrganizationsService.GetCurrentUserOrganizations();
+ Machine.Organization = Organizations.SingleOrDefault(x => x.Guid == Machine.OrganizationGuid);
+ }
+ }
+ }
+}
diff --git a/Software/Visual_Studio/FSE/Modules/Tango.FSE.MachineConfiguration/ViewModels/DataStoreViewVM.cs b/Software/Visual_Studio/FSE/Modules/Tango.FSE.MachineConfiguration/ViewModels/DataStoreViewVM.cs
new file mode 100644
index 000000000..f321cd061
--- /dev/null
+++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.MachineConfiguration/ViewModels/DataStoreViewVM.cs
@@ -0,0 +1,13 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Tango.FSE.Common;
+
+namespace Tango.FSE.MachineConfiguration.ViewModels
+{
+ public class DataStoreViewVM : FSEViewModel
+ {
+ }
+}
diff --git a/Software/Visual_Studio/FSE/Modules/Tango.FSE.MachineConfiguration/ViewModels/MachineViewVM.cs b/Software/Visual_Studio/FSE/Modules/Tango.FSE.MachineConfiguration/ViewModels/MachineViewVM.cs
new file mode 100644
index 000000000..cbd6c1cf1
--- /dev/null
+++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.MachineConfiguration/ViewModels/MachineViewVM.cs
@@ -0,0 +1,60 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Tango.BL.Entities;
+using Tango.FSE.Common;
+using Tango.FSE.Common.Navigation;
+using Tango.FSE.MachineConfiguration.Messages;
+using static Tango.FSE.MachineConfiguration.ViewModels.MachineViewVM;
+
+namespace Tango.FSE.MachineConfiguration.ViewModels
+{
+ public class MachineViewVM : ConfigurationViewModel, INavigationObjectReceiver<NavigationObject>
+ {
+ public class NavigationObject
+ {
+ public String MachineSerialNumber { get; set; }
+ }
+
+ public enum NavigationView
+ {
+ ConfigurationView,
+ DataStoreView,
+ }
+
+ private NavigationView _selectedView;
+ public NavigationView SelectedView
+ {
+ get { return _selectedView; }
+ set
+ {
+ _selectedView = value;
+ RaisePropertyChangedAuto();
+ }
+ }
+
+ private Machine _machine;
+ public Machine Machine
+ {
+ get { return _machine; }
+ set { _machine = value; RaisePropertyChangedAuto(); }
+ }
+
+ public void OnNavigatedToWithObject(NavigationObject obj)
+ {
+ SelectedView = NavigationView.ConfigurationView;
+ LoadMachine(obj.MachineSerialNumber);
+ }
+
+ private async void LoadMachine(String serialNumber)
+ {
+ using (NotificationProvider.PushTaskItem("Loading machine configuration..."))
+ {
+ Machine = await Services.MachinesService.GetMachineFull(serialNumber);
+ RaiseMessage(new MachineLoadedMessage() { Machine = Machine });
+ }
+ }
+ }
+}
diff --git a/Software/Visual_Studio/FSE/Modules/Tango.FSE.MachineConfiguration/ViewModels/MainViewVM.cs b/Software/Visual_Studio/FSE/Modules/Tango.FSE.MachineConfiguration/ViewModels/MainViewVM.cs
new file mode 100644
index 000000000..efb2fc3cc
--- /dev/null
+++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.MachineConfiguration/ViewModels/MainViewVM.cs
@@ -0,0 +1,60 @@
+using System;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Tango.FSE.Common;
+using Tango.FSE.Common.Navigation;
+using Tango.FSE.MachineConfiguration.Navigation;
+using Tango.SharedUI.Helpers;
+
+namespace Tango.FSE.MachineConfiguration.ViewModels
+{
+ [ModularNavigationContainer]
+ public class MainViewVM : ConfigurationViewModel
+ {
+ public override void OnApplicationStarted()
+ {
+ InvokeUI(() =>
+ {
+ NavigationManager.MenuItems.Add(new NavigationMenuItem(() =>
+ {
+ NavigationManager.NavigateTo<ConfigurationModule>();
+ })
+ {
+ Name = "Configuration",
+ Index = 8,
+ Description = "Access to the organization machines configuration and settings",
+ Image = ResourceHelper.GetImageFromResources("Images/configuration.png"),
+ });
+ });
+ }
+
+ public async override Task<bool> OnApplicationLogout()
+ {
+ while (ModularNavigationManager.CurrentView != ConfigurationView.SelectionView)
+ {
+ if (!await ModularNavigationManager.NavigateBack())
+ {
+ return false;
+ }
+ }
+
+ return await base.OnApplicationLogout();
+ }
+
+ public async override Task<bool> OnNavigateBackRequest()
+ {
+ if (ModularNavigationManager.CurrentView == ConfigurationView.SelectionView)
+ {
+ return await base.OnNavigateBackRequest();
+ }
+ else
+ {
+ await ModularNavigationManager.NavigateBack();
+ return false;
+ }
+ }
+ }
+}
diff --git a/Software/Visual_Studio/FSE/Modules/Tango.FSE.MachineConfiguration/ViewModels/SelectionViewVM.cs b/Software/Visual_Studio/FSE/Modules/Tango.FSE.MachineConfiguration/ViewModels/SelectionViewVM.cs
new file mode 100644
index 000000000..c62ade6fb
--- /dev/null
+++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.MachineConfiguration/ViewModels/SelectionViewVM.cs
@@ -0,0 +1,48 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Tango.BL.Entities;
+using Tango.Core.Commands;
+using Tango.FSE.Common;
+using Tango.FSE.MachineConfiguration.Navigation;
+
+namespace Tango.FSE.MachineConfiguration.ViewModels
+{
+ public class SelectionViewVM : ConfigurationViewModel
+ {
+ private Machine _selectedMachine;
+ /// <summary>
+ /// Gets or sets the selected machine.
+ /// </summary>
+ public Machine SelectedMachine
+ {
+ get { return _selectedMachine; }
+ set { _selectedMachine = value; RaisePropertyChangedAuto(); InvalidateRelayCommands(); }
+ }
+
+ public RelayCommand ManageMachineCommand { get; set; }
+
+ public SelectionViewVM()
+ {
+ ManageMachineCommand = new RelayCommand(ManageSelectedMachine, () => SelectedMachine != null);
+ }
+
+ private void ManageSelectedMachine()
+ {
+ if (SelectedMachine == null)
+ {
+ NotificationProvider.ShowError("No machine selected.");
+ return;
+ }
+
+ ModularNavigationManager.NavigateTo(ConfigurationView.MachineView, new MachineViewVM.NavigationObject()
+ {
+ MachineSerialNumber = SelectedMachine.SerialNumber
+ });
+ }
+ }
+}
+
+