public JsonResult StartInstall(ConnectionSettingsModel connectionSettings, InstallationComponentsModel installationComponents) { try { var installedComponents = CacheHelper.GetInstalledComponents(UserId); if (installedComponents != null) { return(Json(new { success = false, message = OneClickHomePageResource.ExistVersionErrorText })); } if (!installationComponents.CommunityServer || !installationComponents.DocumentServer) { return(Json(new { success = false, message = OneClickCommonResource.ErrorRequiredComponents })); } if (installationComponents.MailServer && !ValidateDomainName(installationComponents.MailDomain)) { return(Json(new { success = false, message = OneClickJsResource.ErrorInvalidDomainName })); } CacheHelper.SetSelectedComponents(UserId, installationComponents); CacheHelper.SetInstallationProgress(UserId, new InstallationProgressModel()); SshHelper.StartInstallation(UserId, connectionSettings, installationComponents); return(Json(new { success = true, message = string.Empty, selectedComponents = GetJsonString(CacheHelper.GetSelectedComponents(UserId)), installationProgress = GetJsonString(CacheHelper.GetInstallationProgress(UserId)) })); } catch (Exception ex) { LogManager.GetLogger("ASC").Error(ex.Message, ex); CacheHelper.SetSelectedComponents(UserId, null); CacheHelper.SetInstallationProgress(UserId, null); return(Json(new { success = false, message = ex.Message })); } }
public JsonResult StartInstall(InstallationComponentsModel installationComponents) { try { var connectionSettings = CacheHelper.GetConnectionSettings(UserId); var installedComponents = CacheHelper.GetInstalledComponents(UserId); if (connectionSettings.Enterprise && connectionSettings.LicenseKey == Settings.TrialFileName && !string.IsNullOrEmpty(Settings.LicenseUrl)) { if (installedComponents != null && installedComponents.LicenseFileExist) { throw new Exception(OneClickCommonResource.ErrorLicenseFileExist); } connectionSettings = RequestLicenseFile(connectionSettings, CacheHelper.GetRequestInfo(UserId)); } var mailServerAlreadyInstalled = installedComponents != null && !string.IsNullOrEmpty(installedComponents.MailServerVersion); if (!mailServerAlreadyInstalled && !string.IsNullOrEmpty(installationComponents.MailServerVersion) && !ValidateDomainName(installationComponents.MailDomain)) { return(Json(new { success = false, message = OneClickJsResource.ErrorInvalidDomainName })); } CacheHelper.SetSelectedComponents(UserId, installationComponents); CacheHelper.SetInstallationProgress(UserId, new InstallationProgressModel()); SshHelper.StartInstallation(UserId, connectionSettings, installationComponents); return(Json(new { success = true, message = string.Empty, selectedComponents = GetJsonString(CacheHelper.GetSelectedComponents(UserId)), installationProgress = GetJsonString(CacheHelper.GetInstallationProgress(UserId)) })); } catch (Exception ex) { LogManager.GetLogger("ASC").Error(ex.Message, ex); CacheHelper.SetSelectedComponents(UserId, null); CacheHelper.SetInstallationProgress(UserId, null); var code = 0; if (ex is ExternalException) { Int32.TryParse(Regex.Match(ex.Message, @"[\d+]").Value, out code); } return(Json(new { success = false, message = ex.Message, errorCode = code > 0 ? "External" + code : "unknown" })); } }