aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/FSE/Modules/Tango.FSE.MachineConfiguration/ViewModels/MachineViewVM.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Software/Visual_Studio/FSE/Modules/Tango.FSE.MachineConfiguration/ViewModels/MachineViewVM.cs')
-rw-r--r--Software/Visual_Studio/FSE/Modules/Tango.FSE.MachineConfiguration/ViewModels/MachineViewVM.cs74
1 files changed, 74 insertions, 0 deletions
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..fd953a0b8
--- /dev/null
+++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.MachineConfiguration/ViewModels/MachineViewVM.cs
@@ -0,0 +1,74 @@
+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.BL.Services.MachineConfigurationService;
+using static Tango.FSE.MachineConfiguration.ViewModels.MachineViewVM;
+
+namespace Tango.FSE.MachineConfiguration.ViewModels
+{
+ public class MachineViewVM : ConfigurationViewModel, INavigationObjectReceiver<NavigationObject>
+ {
+ public class NavigationObject
+ {
+ public String MachineGuid { get; set; }
+ }
+
+ public enum NavigationView
+ {
+ SettingsView,
+ DataStoreView,
+ }
+
+ private NavigationView _selectedView;
+ public NavigationView SelectedView
+ {
+ get { return _selectedView; }
+ set
+ {
+ if (value == NavigationView.DataStoreView)
+ {
+ if (!CurrentUser.HasPermission(Tango.BL.Enumerations.Permissions.DataStoreRead))
+ {
+ Task.Delay(500).ContinueWith((x) =>
+ {
+ SelectedView = _selectedView;
+ NotificationProvider.ShowError("The current user profile does not allow accessing the data store.\nPlease contact your administrator.");
+ });
+ return;
+ }
+ }
+
+ _selectedView = value;
+ RaisePropertyChangedAuto();
+ }
+ }
+
+ private MachineEditingComposition _editingComposition;
+ public MachineEditingComposition EditingComposition
+ {
+ get { return _editingComposition; }
+ set { _editingComposition = value; RaisePropertyChangedAuto(); }
+ }
+
+ public void OnNavigatedToWithObject(NavigationObject obj)
+ {
+ SelectedView = NavigationView.SettingsView;
+ LoadMachine(obj.MachineGuid);
+ }
+
+ private async void LoadMachine(String machineGuid)
+ {
+ using (NotificationProvider.PushTaskItem("Loading machine configuration..."))
+ {
+ EditingComposition = await Services.MachineConfigurationService.GetMachineEditingComposition(machineGuid);
+ RaiseMessage(new EditingCompositionLoadedMessage() { EditingComposition = EditingComposition });
+ }
+ }
+ }
+}