namespace Lux.UI.Components.Compo.Common { public partial class CmpFooter : IDisposable { #region Public Methods public void Dispose() { if (aTimer != null) { aTimer.Elapsed -= ElapsedTimer; aTimer.Stop(); aTimer.Dispose(); } } #endregion Public Methods #region Protected Methods protected override void OnInitialized() { var rawVers = typeof(Program).Assembly.GetName().Version; version = rawVers != null ? rawVers : new Version("0.0.0.0"); StartTimer(); } #endregion Protected Methods #region Private Fields private DateTime adesso = DateTime.Now; private System.Timers.Timer aTimer = null!; private Version? version = null!; #endregion Private Fields #region Private Methods private void ElapsedTimer(object? source, System.Timers.ElapsedEventArgs e) { var pUpd = Task.Run(async () => { adesso = DateTime.Now; await InvokeAsync(StateHasChanged); }); pUpd.Wait(); } private void StartTimer() { if (aTimer != null) { aTimer.Stop(); aTimer.Dispose(); } #if DEBUG int tOutPeriod = 1000; #else int tOutPeriod = 10000; #endif aTimer = new System.Timers.Timer(tOutPeriod); aTimer.Elapsed += ElapsedTimer; aTimer.Enabled = true; aTimer.Start(); } #endregion Private Methods } }