private void UpdateIU(UiUpdatedEventArgs e)
        {
            if (e == null)
            {
                return;
            }
            if (e.Time.HasValue)
            {
                Text = e.Time.Value.ToString(Config.TimeFormat, CultureInfo.InvariantCulture);
            }
            if (e.PrimaryBtn.HasValue)
            {
                switch (e.PrimaryBtn.Value)
                {
                case PrimaryButtonMode.Running:
                    PrimaryButtonText = Config.PrimaryButtonStop;
                    ChangeButtonRed();
                    _ui.ChangeWindowTitle(Config.WindowTitleRunning);
                    break;

                case PrimaryButtonMode.Stopped:
                    PrimaryButtonText = Config.PrimaryButtonStart;
                    ChangeButtonBlue();
                    _ui.ChangeWindowTitle(Config.WindowTitle);
                    break;

                default:
                    PrimaryButtonText = e.PrimaryBtn.Value.ToString();
                    break;
                }
            }
        }
        public StopwatchViewModel(IUserInterface ui, IClock stopwatchclock, IConfigurationValues config, ILogger logger) : base(config)
        {
            _ui     = ui;
            _clock  = stopwatchclock;
            _logger = logger;

            RegisterEvents();

            Text = Config?.InitialText ?? "";
            PrimaryButtonText = Config?.PrimaryButtonStart ?? "";
            IsTextEnabled     = false;

            ChangeButtonBlue();
            _ui?.ChangeWindowTitle(Config.WindowTitle);
        }
        public TimerViewModel(IUserInterface ui, ILoopSoundPlayer player, IClock timerclock, IConfigurationValues config, ILogger logger) : base(config)
        {
            _logger = logger;
            _ui     = ui;
            _clock  = timerclock;

            _sound = player;

            TextPressEnterCommand  = new ActionCommand(TxtTime_EnterKeyDown);
            TextPressEscapeCommand = new ActionCommand(TxtTime_EscapeKeyDown);
            RegisterEvents();

            Text = Config?.InitialText ?? "";
            PrimaryButtonText = Config?.PrimaryButtonStart ?? "";
            IsTextEnabled     = true;
            ChangeButtonBlue();
            _ui?.ChangeWindowTitle(Config.WindowTitle);
        }