diff options
Diffstat (limited to 'Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/ViewModels')
| -rw-r--r-- | Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/ViewModels/MainViewVM.cs | 154 |
1 files changed, 150 insertions, 4 deletions
diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/ViewModels/MainViewVM.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/ViewModels/MainViewVM.cs index 6bbe1c47b..7896367ec 100644 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/ViewModels/MainViewVM.cs +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/ViewModels/MainViewVM.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.Collections.ObjectModel; using System.Collections.Specialized; using System.ComponentModel; +using System.ComponentModel.DataAnnotations; using System.Linq; using System.Text; using System.Threading.Tasks; @@ -43,6 +44,47 @@ namespace Tango.PPC.MachineSettings.ViewModels set { _selectedJobTypes = value; RaisePropertyChangedAuto(); } } + private SelectedObjectCollection<ColorSpaces> _selectedColorSpaces; + public SelectedObjectCollection<ColorSpaces> SelectedColorSpaces + { + get { return _selectedColorSpaces; } + set { _selectedColorSpaces = value; RaisePropertyChangedAuto(); } + } + + private bool _enableHotSpot; + public bool EnableHotSpot + { + get { return _enableHotSpot; } + set { _enableHotSpot = value; RaisePropertyChangedAuto(); OnEnableHotSpotChanged(); } + } + + private String _hotSpotPassword; + public String HotSpotPassword + { + get { return _hotSpotPassword; } + set { _hotSpotPassword = value; RaisePropertyChangedAuto(); } + } + + private bool _enableExternalBridge; + public bool EnableExternalBridge + { + get { return _enableExternalBridge; } + set { _enableExternalBridge = value; RaisePropertyChangedAuto(); OnEnableExternalBridgeChanged(); } + } + + private String _externalBridgePassword; + public String ExternalBridgePassword + { + get { return _externalBridgePassword; } + set { _externalBridgePassword = value; RaisePropertyChangedAuto(); } + } + + private bool _enableRemoteAssistance; + public bool EnableRemoteAssistance + { + get { return _enableRemoteAssistance; } + set { _enableRemoteAssistance = value; RaisePropertyChangedAuto(); OnEnableRemoteAssistanceChanged(); } + } #endregion @@ -73,10 +115,26 @@ namespace Tango.PPC.MachineSettings.ViewModels private async void Save() { - Machine.SupportedJobTypes = SelectedJobTypes.SynchedSource.ToList(); - Machine.ShallowCopyTo(MachineProvider.Machine); - await MachineProvider.SaveMachine(); - await NavigationManager.NavigateBack(); + if (Validate()) + { + Machine.SupportedJobTypes = SelectedJobTypes.SynchedSource.ToList(); + Machine.SupportedColorSpaces = SelectedColorSpaces.SynchedSource.ToList(); + Machine.ShallowCopyTo(MachineProvider.Machine); + + Settings.EnableHotSpot = EnableHotSpot; + Settings.HotSpotPassword = HotSpotPassword; + Settings.EnableExternalBridge = EnableExternalBridge; + Settings.ExternalBridgePassword = ExternalBridgePassword; + Settings.Save(); + + await MachineProvider.SaveMachine(); + await NavigationManager.NavigateBack(); + } + } + + protected override void OnValidating() + { + base.OnValidating(); } /// <summary> @@ -95,7 +153,95 @@ namespace Tango.PPC.MachineSettings.ViewModels MachineProvider.Machine.ShallowCopyTo(Machine); RaisePropertyChanged(nameof(Machine)); + _enableHotSpot = HotSpotProvider.IsEnabled; + RaisePropertyChanged(nameof(EnableHotSpot)); + + HotSpotPassword = Settings.HotSpotPassword; + + _enableExternalBridge = ExternalBridgeService.Enabled; + RaisePropertyChanged(nameof(EnableExternalBridge)); + + ExternalBridgePassword = Settings.ExternalBridgePassword; + + _enableRemoteAssistance = RemoteAssistanceProvider.IsEnabled; + RaisePropertyChanged(nameof(EnableRemoteAssistance)); + + SelectedJobTypes = new SelectedObjectCollection<JobTypes>(Enum.GetValues(typeof(JobTypes)).Cast<JobTypes>().ToObservableCollection(), Machine.SupportedJobTypes.ToObservableCollection()); + SelectedColorSpaces = new SelectedObjectCollection<ColorSpaces>(Enum.GetValues(typeof(ColorSpaces)).Cast<ColorSpaces>().Where(x => x.IsUserSpace()).ToObservableCollection(), Machine.SupportedColorSpaces.ToObservableCollection()); + } + + private async void OnEnableRemoteAssistanceChanged() + { + if (EnableRemoteAssistance) + { + try + { + await RemoteAssistanceProvider.EnableRemoteAssistance(); + } + catch + { + await NotificationProvider.ShowError("An error occurred while trying to activate the remote assistance service. Please check your device settings and try again."); + _enableRemoteAssistance = false; + } + } + else + { + try + { + await RemoteAssistanceProvider.DisableRemoteAssistance(); + } + catch + { + await NotificationProvider.ShowError("An error occurred while trying to deactivate the remote assistance service. Please check your device settings and try again."); + _enableRemoteAssistance = true; + } + } + + RaisePropertyChanged(nameof(EnableRemoteAssistance)); + } + + private async void OnEnableHotSpotChanged() + { + if (EnableHotSpot) + { + if (HotSpotPassword == null || HotSpotPassword.Length < 8 || HotSpotPassword.Length > 16) + { + await NotificationProvider.ShowError("Hot spot requires a password of 8 to 16 characters."); + _enableHotSpot = false; + RaisePropertyChanged(nameof(EnableHotSpot)); + return; + } + + try + { + await HotSpotProvider.EnableHotSpot(HotSpotPassword); + } + catch + { + await NotificationProvider.ShowError("An error occurred while trying to activate the hot spot network. Please check your device settings and try again."); + _enableHotSpot = false; + } + } + else + { + try + { + await HotSpotProvider.DisableHotSpot(); + } + catch + { + await NotificationProvider.ShowError("An error occurred while trying to deactivate the hot spot network."); + _enableHotSpot = true; + } + } + + RaisePropertyChanged(nameof(EnableHotSpot)); + } + + private void OnEnableExternalBridgeChanged() + { + ExternalBridgeService.Enabled = EnableExternalBridge; } } } |
