/// <summary>
        /// Action performed when CheckUpdates is called
        /// </summary>
        private async void CheckUpdatesAction()
        {
            CanCheckUpdates = false;

            try
            {
                //if (AppUpdater.IsUpdatePackageAvailable())
                //    AppUpdater.InstallLatestVersion();
                //else if (AppUpdater.IsUpdateAvailable)
                //    await AppUpdater.DownloadLatestVersion();
                //else
                await AppUpdater.CheckVersions(typeof(UpdateMenuViewModel));

                OnUpdateView?.Invoke(this);

                Changelog = AppUpdater.ToString();
            }
            catch (WebException)
            {
                System.Windows.Forms.MessageBox.Show("Could not reach server! Please try again later",
                                                     "Could not reach server", System.Windows.Forms.MessageBoxButtons.OK,
                                                     System.Windows.Forms.MessageBoxIcon.Error);
            }

            CanCheckUpdates = true;
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="UpdateMenuViewModel"/> class.
        /// </summary>
        public UpdateMenuViewModel()
        {
            CanCheckUpdates = true;
            Changelog       = AppUpdater.LatestVersion != null?AppUpdater.ToString() : "";

            LastCheckDate    = Properties.Settings.Default.LastVersionCheck;
            UpdateModeIndex  = Properties.Settings.Default.UpdateMode;
            CheckPeriodIndex = Properties.Settings.Default.AutomaticCheckPeriod;

            // Initializes everything related to this VM
            Initialize();

            // Initialize all commands
            InitializeCommands();

            // Initialize update service
            InitializeUpdateService();
        }