Ejemplo n.º 1
0
        public static void UpdateSystemSettings(SystemSettings updatedSystemSettings)
        {
            var tokenCryptography = new TokenCryptography();
            var systemManagement  = new SystemManagement();
            var serializer        = new SystemSettingsSerializer();

            var systemSettings = serializer.Deserialize(GlobalAppSettings.GetConfigFilepath());

            systemManagement.UpdateSystemSetting(updatedSystemSettings.MailSettingsHost,
                                                 SystemSettingKeys.MailSettingsHost.ToString());
            systemManagement.UpdateSystemSetting(updatedSystemSettings.MailSettingsPort.ToString(),
                                                 SystemSettingKeys.MailSettingsPort.ToString());
            systemManagement.UpdateSystemSetting(updatedSystemSettings.MailSettingsSenderName,
                                                 SystemSettingKeys.MailSettingsSenderName.ToString());
            if (!String.IsNullOrEmpty(updatedSystemSettings.MailSettingsPassword))
            {
                systemManagement.UpdateSystemSetting(
                    tokenCryptography.DoEncryption(updatedSystemSettings.MailSettingsPassword),
                    SystemSettingKeys.MailSettingsPassword.ToString());
            }
            systemManagement.UpdateSystemSetting(updatedSystemSettings.MailSettingsIsSecureAuthentication.ToString(),
                                                 SystemSettingKeys.MailSettingsIsSecureAuthentication.ToString());
            systemManagement.UpdateSystemSetting(updatedSystemSettings.MailSettingsAddress,
                                                 SystemSettingKeys.MailSettingsAddress.ToString());
            systemManagement.UpdateSystemSetting(updatedSystemSettings.OrganizationName,
                                                 SystemSettingKeys.OrganizationName.ToString());
            systemManagement.UpdateSystemSetting(updatedSystemSettings.LoginLogo,
                                                 SystemSettingKeys.LoginLogo.ToString());
            systemManagement.UpdateSystemSetting(updatedSystemSettings.MainScreenLogo,
                                                 SystemSettingKeys.MainScreenLogo.ToString());
            systemManagement.UpdateSystemSetting(updatedSystemSettings.FavIcon,
                                                 SystemSettingKeys.FavIcon.ToString());
            systemManagement.UpdateSystemSetting(updatedSystemSettings.WelcomeNoteText,
                                                 SystemSettingKeys.WelcomeNoteText.ToString());
            systemManagement.UpdateSystemSetting(updatedSystemSettings.DateFormat,
                                                 SystemSettingKeys.DateFormat.ToString());
            systemManagement.UpdateSystemSetting(updatedSystemSettings.BaseUrl,
                                                 SystemSettingKeys.BaseUrl.ToString());
            systemManagement.UpdateSystemSetting(updatedSystemSettings.TimeZone,
                                                 SystemSettingKeys.TimeZone.ToString());
        }
Ejemplo n.º 2
0
        public JsonResult GenerateDatabase(string data)
        {
            LogExtension.LogInfo("Generating database", MethodBase.GetCurrentMethod());
            var i = 0;

            var databaseCredentials = JsonConvert.DeserializeObject <DataBaseConfiguration>(data);

            var isSql = databaseCredentials.ServerType.ToString();

            object result;

            if (String.Equals(isSql, "MSSQL", StringComparison.OrdinalIgnoreCase))
            {
                string connectionString;
                if (!databaseCredentials.IsWindowsAuthentication)
                {
                    connectionString =
                        "Data Source=" + databaseCredentials.ServerName + ";user id=" + databaseCredentials.UserName +
                        ";password="******"Server=" + databaseCredentials.ServerName + "; Integrated Security=yes;";
                }

                var sqldbScript = new FileInfo(AppDomain.CurrentDomain.BaseDirectory +
                                               WebConfigurationManager.AppSettings["SystemConfigurationPath"] +
                                               ServerSetup.SqlTables);

                var dbCreationScript = "USE [master]; CREATE DATABASE [" + databaseCredentials.DataBaseName + "];";

                var isDatabaseExist = CheckDatabaseExists(connectionString, databaseCredentials.DataBaseName);


                if (isDatabaseExist)
                {
                    var failResult = new { key = false, value = "Database name is already exist" };
                    return(Json(new { Data = failResult }));
                }

                var connection = new SqlConnection(connectionString);

                #region Create Database

                var isDatabaseCreated = false;

                try
                {
                    LogExtension.LogInfo("Creating database in SQL server", MethodBase.GetCurrentMethod());
                    var command = new SqlCommand(dbCreationScript, connection);
                    connection.Open();
                    command.ExecuteNonQuery();
                    isDatabaseCreated = true;
                }
                catch (SqlException ex)
                {
                    isDatabaseCreated = false;
                    LogExtension.LogInfo("Error in creating SQL Database", MethodBase.GetCurrentMethod());
                    LogExtension.LogError("Error in creating SQL Database", ex, MethodBase.GetCurrentMethod());
                    var failResult = new { key = false, value = ex.Message };
                    return(Json(new { Data = failResult }));
                }
                finally
                {
                    connection.Close();
                }
                LogExtension.LogInfo("Is database created?" + isDatabaseCreated.ToString(), MethodBase.GetCurrentMethod());
                #endregion

                if (isDatabaseCreated)
                {
                    var tabelCreationScript = "USE [" + databaseCredentials.DataBaseName + "]; " +
                                              sqldbScript.OpenText().ReadToEnd();

                    try
                    {
                        LogExtension.LogInfo("Creating database tables in SQL server", MethodBase.GetCurrentMethod());
                        var command = new SqlCommand(tabelCreationScript, connection);
                        connection.Open();
                        command.ExecuteNonQuery();
                    }
                    catch (SqlException ex)
                    {
                        LogExtension.LogInfo("Error in creating SQL Database tables", MethodBase.GetCurrentMethod());
                        LogExtension.LogError("Error in creating SQL Database", ex, MethodBase.GetCurrentMethod());
                        var failResult = new { key = false, value = ex.Message };
                        return(Json(new { Data = failResult }));
                    }
                    finally
                    {
                        connection.Close();
                    }
                    LogExtension.LogInfo("SQL database tables created successfully.", MethodBase.GetCurrentMethod());

                    if (!databaseCredentials.IsWindowsAuthentication)
                    {
                        connectionString =
                            "Data Source=" + databaseCredentials.ServerName + ";Initial Catalog=" +
                            databaseCredentials.DataBaseName + ";user id=" + databaseCredentials.UserName + ";password="******"Server=" + databaseCredentials.ServerName + ";Initial Catalog=" +
                                           databaseCredentials.DataBaseName + "; Integrated Security=yes;";
                    }
                }

                result = new { key = true, value = _tokenCryptography.DoEncryption(connectionString) };
            }
            else
            {
                var sqlcedbScript = new FileInfo(AppDomain.CurrentDomain.BaseDirectory +
                                                 WebConfigurationManager.AppSettings["SystemConfigurationPath"] +
                                                 ServerSetup.SqlTables);


                var appDataFolderPath = GlobalAppSettings.GetAppDataFolderPath();

                if (Directory.Exists(appDataFolderPath) == false)
                {
                    Directory.CreateDirectory(appDataFolderPath);
                }
                else
                {
                    Array.ForEach(Directory.GetFiles(appDataFolderPath), System.IO.File.Delete);
                }


                var connStr = "Data Source = " + appDataFolderPath + "ReportServer.sdf; Password = reportserver";

                using (var engine = new SqlCeEngine(connStr))
                {
                    LogExtension.LogInfo("Creating SQLCE database", MethodBase.GetCurrentMethod());
                    engine.CreateDatabase();
                }


                var script = sqlcedbScript.OpenText().ReadToEnd();

                SqlCeConnection conn = null;

                try
                {
                    conn = new SqlCeConnection(connStr);

                    conn.Open();

                    var cmd = conn.CreateCommand();

                    var splitter = new[] { ";" };

                    var commandTexts = script.Split(splitter, StringSplitOptions.RemoveEmptyEntries);

                    foreach (string commandText in commandTexts)
                    {
                        cmd.CommandText = commandText;
                        cmd.ExecuteNonQuery();
                    }
                }
                catch (Exception ex)
                {
                    LogExtension.LogInfo("Error in creating SQL CE Database", MethodBase.GetCurrentMethod());
                    LogExtension.LogError("Error in creating SQL CE Database", ex, MethodBase.GetCurrentMethod());
                }
                finally
                {
                    if (conn != null)
                    {
                        conn.Close();
                    }
                }

                result =
                    new
                {
                    key   = true,
                    value = _tokenCryptography.DoEncryption(connStr)
                };
            }

            return(Json(new { Data = result }));
        }