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); }
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); }