Esempio n. 1
0
        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
                }));
            }
        }
Esempio n. 2
0
        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"
                }));
            }
        }