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