AcManager.Tools.Starters.OfficialStarter.CheckVersion C# (CSharp) Method

CheckVersion() private method

private CheckVersion ( ) : void
return void
        private void CheckVersion() {
            if (!File.Exists(LauncherFilename)) {
                throw new InformativeException(ToolsStrings.OfficialStarter_CannotRunGame, ToolsStrings.OfficialStarter_OriginalLauncherIsMissing);
            }

            if (!FileVersionInfo.GetVersionInfo(LauncherFilename).FileVersion.IsVersionOlderThan(@"0.16.714")) return;

            if (StarterPlus.IsPatched(LauncherFilename)) {
                var backupFilename = StarterPlus.BackupFilename;
                if (!File.Exists(backupFilename)) {
                    ModernDialog.ShowMessage(ToolsStrings.OfficialStarter_DownloadAndRestore, ToolsStrings.OfficialStarter_CannotRun, MessageBoxButton.OK);
                    throw new InformativeException(ToolsStrings.OfficialStarter_CannotRunGame, ToolsStrings.OfficialStarter_RestoreOriginalLauncher);
                }

                try {
                    File.Delete(LauncherFilename);
                } catch (Exception) {
                    if (ModernDialog.ShowMessage(
                            ToolsStrings.OfficialStarter_RestoreLauncherManually,
                            ToolsStrings.OfficialStarter_CannotRun, MessageBoxButton.OKCancel) == MessageBoxResult.OK) {
                        WindowsHelper.ViewFile(backupFilename);
                    }
                    throw new InformativeException(ToolsStrings.OfficialStarter_CannotRunGame, ToolsStrings.OfficialStarter_RestoreOriginalLauncher);
                }

                File.Copy(backupFilename, LauncherFilename);
                try {
                    File.Delete(backupFilename);
                } catch (Exception) {
                    // ignored
                }

                return;
            }

            if (ModernDialog.ShowMessage(ToolsStrings.OfficialStarter_GameIsTooOld, ToolsStrings.NotSupported, MessageBoxButton.YesNo) != MessageBoxResult.Yes) {
                throw new InformativeException(ToolsStrings.OfficialStarter_CannotRunGame, ToolsStrings.OfficialStarter_UpdateAC);
            }

            SettingsHolder.Drive.SelectedStarterType = SettingsHolder.DriveSettings.TrickyStarterType;
            throw new InformativeException(ToolsStrings.OfficialStarter_CannotRunGame, ToolsStrings.TryAgainDot);
        }