using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Threading; using Tango.Integration.ExternalBridge; using Tango.PMR.Integration; using Tango.SharedUI; namespace Tango.PPC.UI.Dialogs { public class SafetyLevelOperationsConfirmationViewVM : DialogViewVM { private DispatcherTimer _timer; private int _maxSeconds; public int MaxSeconds { get { return _maxSeconds; } set { _maxSeconds = value; RaisePropertyChangedAuto(); } } private int _secondsRemaining; public int SecondsRemaining { get { return _secondsRemaining; } set { _secondsRemaining = value; RaisePropertyChangedAuto(); } } private ExternalBridgeClientConnectedEventArgs _connection; /// /// Gets or sets the last client connection event arguments. /// public ExternalBridgeClientConnectedEventArgs Connection { get { return _connection; } set { _connection = value; RaisePropertyChangedAuto(); } } public SafetyLevelOperationsConfirmationViewVM(ExternalBridgeClientConnectedEventArgs connection) { Connection = connection; MaxSeconds = 30; SecondsRemaining = 30; _timer = new DispatcherTimer(DispatcherPriority.Background, Application.Current.Dispatcher); _timer.Interval = TimeSpan.FromMilliseconds(800); _timer.Tick += _timer_Tick; } public override void OnShow() { base.OnShow(); _timer.Start(); } protected override void Accept() { _timer.Stop(); base.Accept(); } protected override void Cancel() { _timer.Stop(); base.Cancel(); } private void _timer_Tick(object sender, EventArgs e) { SecondsRemaining--; if (SecondsRemaining == 0) { Cancel(); } } } }