Exemple #1
0
        private int PerformPackageAction(IInstallationPackage package, ApplicationCtrl item)
        {
            //
            // return 0: nothing to do
            //        1: install successufull
            //        2: install error
            //
            if (package == null)
            {
                return(2);
            }
            CheckResult result = package.CheckStatus();

            if (result.state != CheckState.INSTALLED &&
                result.state != CheckState.REMOVED &&
                result.state != CheckState.DOWNLOADED &&
                result.state != CheckState.SKIPPED)
            {
                item.InAction   = true;
                item.StatusName = CheckState.PROGRESS.ToString();
                switch (result.state)
                {
                case CheckState.NOT_INSTALLED:
                    if (result.needsDownload)
                    {
                        item.Action = Localizer.GetBestTranslation("Install_msgDownloading");
                        item.Update();
                        if (!package.Download())
                        {
                            Utils.ErrorDlg(string.Format(Localizer.GetBestTranslation("Install_errInstallFailed"),
                                                         package.GetDisplayName()));
                            return(2);
                        }
                    }
                    item.Action = Localizer.GetBestTranslation("Install_msgInstalling");
                    item.Update();
                    if (!package.Install())
                    {
                        Utils.ErrorDlg(string.Format(Localizer.GetBestTranslation("Install_errInstallFailed"),
                                                     package.GetDisplayName()));
                        return(2);
                    }
                    break;

                case CheckState.NOT_CONFIGURED:
                    item.Action = Localizer.GetBestTranslation("Install_msgConfiguring");
                    item.Update();
                    if (!package.Install())
                    {
                        Utils.ErrorDlg(string.Format(Localizer.GetBestTranslation("Install_errConfigureFailed"),
                                                     package.GetDisplayName()));
                        return(2);
                    }
                    break;

                case CheckState.NOT_REMOVED:
                    item.Action = Localizer.GetBestTranslation("Install_msgUninstalling");
                    item.Update();
                    if (!package.Install())
                    {
                        Utils.ErrorDlg(string.Format(Localizer.GetBestTranslation("Install_errRemoveFailed"),
                                                     package.GetDisplayName()));
                        return(2);
                    }
                    break;

                case CheckState.VERSION_MISMATCH:
                    item.Action = Localizer.GetBestTranslation("Install_msgUninstalling");
                    item.Update();
                    if (!package.UnInstall())
                    {
                        Utils.ErrorDlg(string.Format(Localizer.GetBestTranslation("Install_errUinstallFailed"),
                                                     package.GetDisplayName()));
                        return(2);
                    }
                    if (result.needsDownload)
                    {
                        item.Action = Localizer.GetBestTranslation("Install_msgDownloading");
                        item.Update();
                        if (!package.Download())
                        {
                            Utils.ErrorDlg(string.Format(Localizer.GetBestTranslation("Install_errDownloadFailed"),
                                                         package.GetDisplayName()));
                            return(2);
                        }
                    }
                    item.Action = Localizer.GetBestTranslation("Install_msgInstalling");
                    item.Update();
                    if (!package.Install())
                    {
                        Utils.ErrorDlg(string.Format(Localizer.GetBestTranslation("Install_errInstallFailed"),
                                                     package.GetDisplayName()));
                        return(2);
                    }
                    break;

                case CheckState.NOT_DOWNLOADED:
                    item.Action = Localizer.GetBestTranslation("Install_msgDownloading");
                    item.Update();
                    if (!package.Download())
                    {
                        Utils.ErrorDlg(string.Format(Localizer.GetBestTranslation("Install_errDownloadFailed"),
                                                     package.GetDisplayName()));
                        return(2);
                    }
                    break;
                }
                return(1);
            }
            item.StatusName = result.state.ToString();
            return(0);
        }
Exemple #2
0
        private void AddPackageToListView(IInstallationPackage package)
        {
            ApplicationCtrl item = new ApplicationCtrl();

            item.Name     = package.GetDisplayName();
            item.IconName = package.GetIconName();
            item.Tag      = package;
            CheckResult result = package.CheckStatus();

            item.StatusName = result.state.ToString();
            switch (result.state)
            {
            case CheckState.INSTALLED:
                item.State  = Localizer.GetBestTranslation("Install_stateInstalled");
                item.Action = Localizer.GetBestTranslation("Install_actionNothing");
                break;

            case CheckState.NOT_INSTALLED:
                item.State = Localizer.GetBestTranslation("Install_stateNotInstalled");
                if (result.needsDownload)
                {
                    item.Action = Localizer.GetBestTranslation("Install_actionDownloadInstall");
                }
                else
                {
                    item.Action = Localizer.GetBestTranslation("Install_actionInstall");
                }
                break;

            case CheckState.CONFIGURED:
                item.State  = Localizer.GetBestTranslation("Install_stateConfigured");
                item.Action = Localizer.GetBestTranslation("Install_actionNothing");
                break;

            case CheckState.NOT_CONFIGURED:
                item.State  = Localizer.GetBestTranslation("Install_stateNotConfigured");
                item.Action = Localizer.GetBestTranslation("Install_actionConfigure");
                break;

            case CheckState.REMOVED:
                item.State  = Localizer.GetBestTranslation("Install_stateRemoved");
                item.Action = Localizer.GetBestTranslation("Install_actionNothing");
                break;

            case CheckState.NOT_REMOVED:
                item.State  = Localizer.GetBestTranslation("Install_stateUninstall");
                item.Action = Localizer.GetBestTranslation("Install_actionRemove");
                break;

            case CheckState.DOWNLOADED:
                item.State  = Localizer.GetBestTranslation("Install_stateDownloaded");
                item.Action = Localizer.GetBestTranslation("Install_actionNothing");
                break;

            case CheckState.NOT_DOWNLOADED:
                item.State  = Localizer.GetBestTranslation("Install_stateNotDownloaded");
                item.Action = Localizer.GetBestTranslation("Install_actionDownload");
                break;

            case CheckState.VERSION_MISMATCH:
                item.State = Localizer.GetBestTranslation("Install_stateVersionMismatch");
                if (result.needsDownload)
                {
                    item.Action = Localizer.GetBestTranslation("Install_actionUninstallDownloadInstall");
                }
                else
                {
                    if (InstallationProperties.Instance["UpdateMode"] == "yes")
                    {
                        item.Action = Localizer.GetBestTranslation("Install_actionUpgradeInstall");
                    }
                    else
                    {
                        item.Action = Localizer.GetBestTranslation("Install_actionUninstallInstall");
                    }
                }
                break;

            case CheckState.SKIPPED:
                item.State  = Localizer.GetBestTranslation("Install_stateSkipped");
                item.Action = Localizer.GetBestTranslation("Install_actionNothing");
                break;
            }
            flpApplication.Controls.Add(item);
        }