/// <summary>
        /// Selects a new application theme
        /// </summary>
        /// <param name="themeId">ID of the new theme</param>
        public void SelectTheme(string themeId)
        {
            if (State.SelectedThemeId == themeId)
            {
                return;
            }
            var oldState = State;

            State = State.Clone(s => s.SelectedThemeId = themeId);
            var args = new StateChangedEventArgs(oldState, State);

            AppStateChanged?.Invoke(this, args);
            SelectedThemeChanged?.Invoke(this, args);
        }
 public void RaiseEvent()
 => SelectedThemeChanged?.Invoke(this, EventArgs.Empty);