using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Timers; using Tango.BL.Entities; using Tango.PPC.Common; using Tango.Settings; using Tango.SharedUI; namespace Tango.PPC.UI.Dialogs { public class PowerUpViewVM : DialogViewVM { private Timer _timer; private List _rmls; public List Rmls { get { return _rmls; } set { _rmls = value; RaisePropertyChangedAuto(); } } private Rml _selectedRml; public Rml SelectedRml { get { return _selectedRml; } set { _selectedRml = value; RaisePropertyChangedAuto(); } } private bool _isSelectedRml; public bool IsSelectedRml { get { return _isSelectedRml; } set { _isSelectedRml = value; RaisePropertyChangedAuto(); if (_isSelectedRml) { IsMinimalTemperature = false; } } } private bool _isMinimalTemperature; public bool IsMinimalTemperature { get { return _isMinimalTemperature; } set { _isMinimalTemperature = value; RaisePropertyChangedAuto(); if (_isMinimalTemperature) { IsSelectedRml = false; } } } private int _remainingSeconds; public int RemainingSeconds { get { return _remainingSeconds; } set { _remainingSeconds = value; RaisePropertyChangedAuto(); } } private bool _isTimeoutEnabled; public bool IsTimeoutEnabled { get { return _isTimeoutEnabled; } set { _isTimeoutEnabled = value; RaisePropertyChangedAuto(); if (!_isTimeoutEnabled) { _timer.Stop(); } } } public PowerUpViewVM() { RemainingSeconds = (int)SettingsManager.Default.GetOrCreate().PowerUpScreenTimeout.TotalSeconds; CanClose = true; IsMinimalTemperature = true; IsTimeoutEnabled = true; _timer = new Timer(); _timer.Interval = TimeSpan.FromSeconds(1).TotalMilliseconds; _timer.Elapsed += _timer_Elapsed; } private void _timer_Elapsed(object sender, ElapsedEventArgs e) { RemainingSeconds--; if (RemainingSeconds == 0) { InvokeUI(() => { Accept(); }); } } protected override void Cancel() { _timer.Stop(); base.Cancel(); } protected override void Accept() { _timer.Stop(); base.Accept(); } public override void OnShow() { base.OnShow(); _timer.Start(); } } }