Uninstall() private method

private Uninstall ( ) : int
return int
        public int Uninstall(Bundle bundle)
        {
            var exitcode = -1;
            var uninstallactionerrorcode = -1;

            if (!Processed)
            {
                GetDataFromPdb();
            }

            if (Releases.Where(x => x.Selected) != null)
            {
                try
                {
                    Logger.Log(String.Format(CultureInfo.InvariantCulture, "Pre-requisite uninstall actions running"), Logger.MessageLevel.Information, AppName);
                    uninstallactionerrorcode = UninstallActionExecution(bundle, UninstallAction.TemplateType.Pre);
                    Logger.Log(String.Format(CultureInfo.InvariantCulture, "Pre-requisite uninstall actions finished"), Logger.MessageLevel.Information, AppName);
                    switch (uninstallactionerrorcode)
                    {
                    case 3010:      // Reboot required
                        break;

                    default:
                        if (!DoNotExecuteProcess)
                        {
                            exitcode = bundle.Uninstall();
                        }
                        else
                        {
                            Logger.Log(String.Format(CultureInfo.InvariantCulture, "Bundle uninstall method bypassed - DoNotExecute is true"), Logger.MessageLevel.Verbose, AppName);
                            exitcode = 0;
                        }
                        Logger.Log(String.Format(CultureInfo.InvariantCulture, "Post-requisite uninstall actions started"), Logger.MessageLevel.Information, AppName);
                        UninstallActionExecution(bundle, UninstallAction.TemplateType.Post);
                        Logger.Log(String.Format(CultureInfo.InvariantCulture, "Post-requisite uninstall actions finished"), Logger.MessageLevel.Information, AppName);
                        break;
                    }
                }
                catch (Exception ex)
                {
                    Logger.Log(ex, AppName);
                }
            }
            else
            {
                throw new ConfigurationManagerException("A release has not been selected for use with this method. Please use SelectedReleases to select a Release.");
            }

            return(exitcode);
        }
        public int Uninstall(Bundle bundle)
        {
            var exitcode = -1;
            var uninstallactionerrorcode = -1;
            if (!Processed) { GetDataFromPdb(); }

            if (Releases.Where(x=>x.Selected) != null)
            {
                try
                {
                    Logger.Log(String.Format(CultureInfo.InvariantCulture, "Pre-requisite uninstall actions running"), Logger.MessageLevel.Information, AppName);
                    uninstallactionerrorcode = UninstallActionExecution(bundle, UninstallAction.TemplateType.Pre);
                    Logger.Log(String.Format(CultureInfo.InvariantCulture, "Pre-requisite uninstall actions finished"), Logger.MessageLevel.Information, AppName);
                    switch (uninstallactionerrorcode)
                    {
                        case 3010:  // Reboot required
                            break;
                        default:
                            if (!DoNotExecuteProcess)
                            {
                                exitcode = bundle.Uninstall();
                            }
                            else
                            {
                                Logger.Log(String.Format(CultureInfo.InvariantCulture, "Bundle uninstall method bypassed - DoNotExecute is true"), Logger.MessageLevel.Verbose, AppName);
                                exitcode = 0;
                            }
                            Logger.Log(String.Format(CultureInfo.InvariantCulture, "Post-requisite uninstall actions started"), Logger.MessageLevel.Information, AppName);
                            UninstallActionExecution(bundle, UninstallAction.TemplateType.Post);
                            Logger.Log(String.Format(CultureInfo.InvariantCulture, "Post-requisite uninstall actions finished"), Logger.MessageLevel.Information, AppName);
                            break;
                    }

                }
                catch (Exception ex)
                {
                    Logger.Log(ex, AppName);
                }
            }
            else {
                throw new ConfigurationManagerException("A release has not been selected for use with this method. Please use SelectedReleases to select a Release.");
            }

            return exitcode;
        }