private void TimerElapsed(object sender, ElapsedEventArgs e)
        {
            RemainingTimeInSeconds--;
            ShowRemainingTime();

            if (RemainingTimeInSeconds > 0)
            {
                return;
            }

            timer.Stop();
            timer.Dispose();
            _ = OnTimeout.InvokeAsync(OnTimeout);
        }