using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Tango.Integration.Emergency; using Tango.PPC.Common; using Tango.PPC.Common.Navigation; namespace Tango.PPC.UI.ViewModels { public class EmergencyViewVM : PPCViewModel { private bool _isActive; public override void OnApplicationStarted() { } public override void OnApplicationReady() { base.OnApplicationReady(); MachineProvider.MachineOperator.EmergencyNotificationProvider.StatusChanged += EmergencyNotificationProvider_StatusChanged; } private void EmergencyNotificationProvider_StatusChanged(object sender, EmergencyStatusChangedEventArgs e) { InvokeUI(async () => { if (e.Status == EmergencyStatus.On && !_isActive) { LogManager.Log("Emergency switch activated..."); _isActive = true; await NavigationManager.NavigateTo(NavigationView.EmergencyView); } else if (_isActive) { LogManager.Log("Emergency switch deactivated..."); _isActive = false; await NavigationManager.NavigateTo(NavigationView.LayoutView); } if (e.Status == EmergencyStatus.Error && e.ErrorException != null) { LogManager.Log(e.ErrorException, "Error occurred while detecting emergency switch."); } }); } } }