Exemplo n.º 1
0
        public ActionResult Index()
        {
            ConnectionSettingsModel     connectionSettings   = null;
            InstallationComponentsModel installedComponents  = null;
            InstallationComponentsModel selectedComponents   = null;
            InstallationProgressModel   installationProgress = null;

            if (!string.IsNullOrEmpty(UserId))
            {
                connectionSettings = CacheHelper.GetConnectionSettings(UserId);

                if (connectionSettings != null)
                {
                    installedComponents  = CacheHelper.GetInstalledComponents(UserId);
                    selectedComponents   = CacheHelper.GetSelectedComponents(UserId);
                    installationProgress = CacheHelper.GetInstallationProgress(UserId);
                }
                else
                {
                    CookieHelper.ClearCookie();
                    CacheHelper.ClearCache(UserId);
                }
            }

            ViewBag.ConnectionSettings   = GetJsonString(connectionSettings);
            ViewBag.InstalledComponents  = GetJsonString(installedComponents);
            ViewBag.SelectedComponents   = GetJsonString(selectedComponents);
            ViewBag.InstallationProgress = GetJsonString(installationProgress);

            return(View());
        }
Exemplo n.º 2
0
        private void btnSave_Click(object sender, EventArgs e)
        {
            if (ValidateData())
            {
                string server   = tbServer.Text;
                int    port     = 0;
                string username = tbUsername.Text;
                string password = tbPassword.Text;

                if (cbPort.Checked)
                {
                    port = Convert.ToInt32(tbPort.Text);
                }

                var settings = new ConnectionSettingsModel
                {
                    Server   = server,
                    Port     = port,
                    Username = username,
                    Password = password
                };

                settings.SaveSettings();

                ApplicationSettingData.Setting.Helper.ShowMessage("Settings saved. Re-open application to see changes.", Service.DialogTitles.Info);
            }
            else
            {
                ApplicationSettingData.Setting.Helper.ShowMessage("Please check the data and try again.", Service.DialogTitles.Error);
            }
        }
Exemplo n.º 3
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
                }));
            }
        }
Exemplo n.º 4
0
        public static void StartInstallation(string userId, ConnectionSettingsModel connectionSettings, InstallationComponentsModel installationComponents)
        {
            ThreadPool.QueueUserWorkItem(delegate(object state)
            {
                var workerState = state as WorkerState;

                if (workerState == null)
                {
                    return;
                }

                HttpContext.Current = workerState.Context;

                using (var installationManager = new InstallationManager(workerState.UserId, workerState.ConnectionSettings, workerState.InstallationComponents))
                {
                    installationManager.StartInstallation();
                }
            }, new WorkerState
            {
                Context                = HttpContext.Current,
                ConnectionSettings     = connectionSettings,
                InstallationComponents = installationComponents,
                UserId = userId
            });
        }
Exemplo n.º 5
0
 public static InstallationComponentsModel Connect(string userId, ConnectionSettingsModel connectionSettings)
 {
     using (var installationManager = new InstallationManager(userId, connectionSettings))
     {
         return(installationManager.Connect());
     }
 }
 public InstallationManager(string userId, ConnectionSettingsModel connectionSettings, InstallationComponentsModel installationComponents = null)
 {
     UserId                 = userId;
     ConnectionInfo         = GetConnectionInfo(connectionSettings);
     InstallationProgress   = CacheHelper.GetInstallationProgress(userId) ?? new InstallationProgressModel();
     InstallationComponents = installationComponents;
 }
Exemplo n.º 7
0
 public InstallationManager(string userId, ConnectionSettingsModel connectionSettings, InstallationComponentsModel installationComponents = null)
 {
     UserId                 = userId;
     LicenseKey             = connectionSettings.LicenseKey;
     Enterprise             = connectionSettings.Enterprise;
     ConnectionInfo         = GetConnectionInfo(connectionSettings);
     InstallationProgress   = CacheHelper.GetInstallationProgress(userId) ?? new InstallationProgressModel();
     InstallationComponents = installationComponents;
     InstalledComponents    = CacheHelper.GetInstalledComponents(userId) ?? new InstallationComponentsModel();
 }
Exemplo n.º 8
0
        public static void SetConnectionSettings(string userId, ConnectionSettingsModel value)
        {
            if (string.IsNullOrEmpty(userId))
            {
                return;
            }

            var key = "connectionSettings" + userId;

            CacheSet(key, value, TimeSpan.FromDays(1));
        }
Exemplo n.º 9
0
        /// <summary>
        /// This method is used to get the connection string fronm the configuration file.
        /// </summary>
        /// <returns>Returns connection string.</returns>
        private string GetConnectionString()
        {
            var    model      = new ConnectionSettingsModel();
            var    settings   = model.GetSettings();
            string connection = string.Empty;

            if (settings != null)
            {
                connection = settings.ConnectionString;
            }

            return(connection);
        }
Exemplo n.º 10
0
        private static ConnectionInfo GetConnectionInfo(ConnectionSettingsModel connectionSettings)
        {
            var authenticationMethods = new List <AuthenticationMethod>();

            if (!string.IsNullOrEmpty(connectionSettings.Password))
            {
                authenticationMethods.Add(new PasswordAuthenticationMethod(connectionSettings.UserName, connectionSettings.Password));
            }

            if (!string.IsNullOrEmpty(connectionSettings.SshKey))
            {
                var keyFiles = new[] { new PrivateKeyFile(FileHelper.GetFile(connectionSettings.SshKey)) };
                authenticationMethods.Add(new PrivateKeyAuthenticationMethod(connectionSettings.UserName, keyFiles));
            }

            return(new ConnectionInfo(connectionSettings.Host, connectionSettings.UserName, authenticationMethods.ToArray()));
        }
Exemplo n.º 11
0
        public JsonResult Connect(ConnectionSettingsModel connectionSettings)
        {
            try
            {
                InstallationComponentsModel installedComponents  = null;
                InstallationComponentsModel selectedComponents   = null;
                InstallationProgressModel   installationProgress = null;

                if (connectionSettings != null)
                {
                    installedComponents  = SshHelper.Connect(UserId, connectionSettings);
                    installationProgress = CacheHelper.GetInstallationProgress(UserId);
                    selectedComponents   = CacheHelper.GetSelectedComponents(UserId);

                    CacheHelper.SetConnectionSettings(UserId, connectionSettings);
                    CacheHelper.SetInstalledComponents(UserId, installedComponents);
                }
                else
                {
                    CookieHelper.ClearCookie();
                    CacheHelper.ClearCache(UserId);
                }

                return(Json(new
                {
                    success = true,
                    message = string.Empty,
                    connectionSettings = GetJsonString(connectionSettings),
                    installedComponents = GetJsonString(installedComponents),
                    installationProgress = GetJsonString(installationProgress),
                    selectedComponents = GetJsonString(selectedComponents)
                }));
            }
            catch (Exception ex)
            {
                LogManager.GetLogger("ASC").Error(ex.Message, ex);

                return(Json(new
                {
                    success = false,
                    message = ex.Message,
                    errorCode = GetErrorCode(ex.Message)
                }));
            }
        }
Exemplo n.º 12
0
        /// <summary>
        /// This method is used to load settings from the app config file.
        /// </summary>
        private void LoadSettings()
        {
            var settings = new ConnectionSettingsModel().GetSettings();

            if (settings != null)
            {
                if (settings.Port != 0)
                {
                    cbPort.Checked = true;
                    tbPort.Text    = settings.Port.ToString();
                    tbPort.Enabled = true;
                }

                tbServer.Text   = settings.Server;
                tbUsername.Text = settings.Username;
                tbPassword.Text = settings.Password;
            }
        }
Exemplo n.º 13
0
        public ActionResult Index(string id)
        {
            var enterprise = !string.IsNullOrEmpty(id) && id.ToLowerInvariant() == "enterprise";

            ConnectionSettingsModel     connectionSettings   = null;
            InstallationComponentsModel availableComponents  = CacheHelper.GetAvailableComponents(enterprise);
            InstallationComponentsModel installedComponents  = null;
            InstallationComponentsModel selectedComponents   = null;
            InstallationProgressModel   installationProgress = null;
            OsInfo osInfo = null;

            if (!string.IsNullOrEmpty(UserId))
            {
                connectionSettings = CacheHelper.GetConnectionSettings(UserId);

                if (connectionSettings != null)
                {
                    installedComponents  = CacheHelper.GetInstalledComponents(UserId);
                    selectedComponents   = CacheHelper.GetSelectedComponents(UserId);
                    installationProgress = CacheHelper.GetInstallationProgress(UserId);
                    osInfo = CacheHelper.GetOsInfo(UserId);
                }
                else
                {
                    CookieHelper.ClearCookie();
                    CacheHelper.ClearUserCache(UserId);
                }
            }

            ViewBag.ConnectionSettings   = GetJsonString(connectionSettings);
            ViewBag.AvailableComponents  = GetJsonString(availableComponents);
            ViewBag.InstalledComponents  = GetJsonString(installedComponents);
            ViewBag.SelectedComponents   = GetJsonString(selectedComponents);
            ViewBag.InstallationProgress = GetJsonString(installationProgress);
            ViewBag.OsInfo     = GetJsonString(osInfo);
            ViewBag.Enterprise = enterprise;

            if (!string.IsNullOrEmpty(Settings.CacheKey) && Request.Params["cache"] == Settings.CacheKey)
            {
                CacheHelper.ClearCache();
            }

            return(View());
        }
Exemplo n.º 14
0
        public ActionResult SetConnection(ConnectionSettingsModel model)
        {
            HttpContext.Response.Cookies.Remove("ConnectionStringName");

            try
            {
                var db = new Database(model.ConnectionStringName, DatabaseType.SqlServer2008);

                this.HttpContext.Response.Cookies.Add(new HttpCookie("ConnectionStringName", model.ConnectionStringName));

                return(RedirectToAction("Index"));

                //return Json(new { status = "ok", message = "" });
            }
            catch (Exception e)
            {
                return(View(e.Message));
                //return Json(new { status = "error", message = e.Message });
            }
        }
Exemplo n.º 15
0
        private ConnectionSettingsModel RequestLicenseFile(ConnectionSettingsModel connectionSettings, RequestInfoModel requestInfo)
        {
            if (requestInfo == null)
            {
                throw new Exception(OneClickCommonResource.ErrorRequestInfoIsNull);
            }

            using (var client = new WebClient())
            {
                var values = new NameValueCollection();

                values["Host"]        = connectionSettings.Host;
                values["FName"]       = requestInfo.Name;
                values["Email"]       = requestInfo.Email;
                values["Phone"]       = requestInfo.Phone;
                values["CompanyName"] = requestInfo.CompanyName;
                values["CompanySize"] = requestInfo.CompanySize.ToString(CultureInfo.InvariantCulture);
                values["Position"]    = requestInfo.Position;

                var response = client.UploadValues(Settings.LicenseUrl, values);

                var responseString = Encoding.Default.GetString(response).Replace("\"", string.Empty);

                if (responseString.Contains("error"))
                {
                    throw new ExternalException(responseString);
                }

                var licenseFileName = FileHelper.SaveFile(responseString);

                connectionSettings.LicenseKey = licenseFileName;

                CacheHelper.SetConnectionSettings(UserId, connectionSettings);

                return(connectionSettings);
            }
        }
Exemplo n.º 16
0
        public JsonResult Connect(ConnectionSettingsModel connectionSettings, RequestInfoModel requestInfo)
        {
            try
            {
                InstallationComponentsModel installedComponents  = null;
                InstallationComponentsModel selectedComponents   = null;
                InstallationProgressModel   installationProgress = null;
                OsInfo osInfo = null;

                if (connectionSettings != null)
                {
                    if (connectionSettings.Enterprise)
                    {
                        if (string.IsNullOrEmpty(connectionSettings.LicenseKey))
                        {
                            throw new ArgumentException("connectionSettings.licenseKey");
                        }

                        if (connectionSettings.LicenseKey == Settings.TrialFileName && requestInfo == null)
                        {
                            throw new ArgumentNullException("requestInfo");
                        }
                    }

                    var data = SshHelper.Connect(UserId, connectionSettings);

                    osInfo = data.Item1;
                    installedComponents  = data.Item2;
                    installationProgress = CacheHelper.GetInstallationProgress(UserId);
                    selectedComponents   = CacheHelper.GetSelectedComponents(UserId);

                    CacheHelper.SetConnectionSettings(UserId, connectionSettings);
                    CacheHelper.SetInstalledComponents(UserId, installedComponents);
                    CacheHelper.SetRequestInfo(UserId, requestInfo);
                }
                else
                {
                    CookieHelper.ClearCookie();
                    CacheHelper.ClearUserCache(UserId);
                }

                return(Json(new
                {
                    success = true,
                    message = string.Empty,
                    connectionSettings = GetJsonString(connectionSettings),
                    installedComponents = GetJsonString(installedComponents),
                    installationProgress = GetJsonString(installationProgress),
                    selectedComponents = GetJsonString(selectedComponents),
                    osInfo = GetJsonString(osInfo)
                }));
            }
            catch (Exception ex)
            {
                LogManager.GetLogger("ASC").Error(ex.Message, ex);

                return(Json(new
                {
                    success = false,
                    message = ex.Message,
                    errorCode = GetErrorCode(ex.Message)
                }));
            }
        }