/// <summary> /// Finish button click. /// </summary> protected void FinishNextButton_Click(object sender, EventArgs e) { if (!separationFinished.ValidateForSeparationFinish()) { string error = String.Empty; if (!AzureHelper.IsRunningOnAzure) { var separationHelper = new DBSeparationHelper(); separationHelper.InstallScriptsFolder = CMSDatabaseHelper.GetSQLInstallPathToObjects(); separationHelper.ScriptsFolder = Server.MapPath("~/App_Data/DBSeparation"); separationHelper.InstallationConnStringSeparate = hdnConnString.Value; error = separationHelper.DeleteSourceTables(separationFinished.DeleteOldDB, false); } if (!String.IsNullOrEmpty(error)) { separationFinished.ErrorLabel.Visible = true; separationFinished.ErrorLabel.Text = error; new EventLogProvider().LogEvent(EventLogProvider.EVENT_TYPE_ERROR, DateTime.Now, "Contact management database join", "DELETEOLDDATA", URLHelper.CurrentURL, error); } else { EnableTasks(); TakeSitesOnline(); WebSyncHelperClass.CreateTask(WebFarmTaskTypeEnum.RestartApplication, "RestartApplication", "", null); ScriptHelper.RegisterStartupScript(this, typeof(string), "Close dialog", ScriptHelper.GetScript("RefreshParent(); CloseDialog();")); } } }
/// <summary> /// Creates new database. /// </summary> private bool CreateDB() { bool continueSeparation = true; if (databaseDialog.CreateNewChecked && !AzureHelper.IsRunningOnAzure) { progress.LogMessage(ResHelper.GetString("separationDB.creatingDB"), CMSDatabaseHelper.MessageType.Info, false); var connectionString = new SqlConnectionStringBuilder(databaseDialog.ConnectionString); connectionString.InitialCatalog = ""; try { using (new CMSConnectionScope(connectionString.ConnectionString, false)) { CMSDatabaseHelper.CreateDatabase(databaseDialog.NewDatabaseName, connectionString.ConnectionString, null); } } catch (Exception ex) { string message = ResHelper.GetFileString("Intaller.LogErrorCreateDB") + " " + ex.Message; progress.LogMessage(message, CMSDatabaseHelper.MessageType.Error, false); continueSeparation = false; } } return(continueSeparation); }
/// <summary> /// Joins databases. /// </summary> private void JoinDB() { var separation = new DBSeparationHelper(); separation.InstallScriptsFolder = CMSDatabaseHelper.GetSQLInstallPathToObjects(); separation.ScriptsFolder = Server.MapPath("~/App_Data/DBSeparation"); separation.LogMessage = progress.LogMessage; separation.JoinDatabase(); progress.LogMessage(ResHelper.GetString("separationDB.joinOK"), CMSDatabaseHelper.MessageType.Finished, false); }
/// <summary> /// Check if exists SQL script for this object in /App_Data/Install /// </summary> /// <param name="objName">Name of the object</param> private bool SQLScriptExists(string objName, ref string fileName) { if (!String.IsNullOrEmpty(objName)) { fileName = CMSDatabaseHelper.GetSQLInstallPathToObjects() + "\\" + objName + ".sql"; return(File.Exists(fileName)); } fileName = null; return(TableManager.IsGeneratedSystemView(objName)); }
/// <summary> /// Separates database. /// </summary> private void SeparateDB() { separation = new DBSeparationHelper(); separation.InstallationConnStringSeparate = databaseDialog.ConnectionString; separation.InstallScriptsFolder = CMSDatabaseHelper.GetSQLInstallPathToObjects(); separation.ScriptsFolder = Server.MapPath("~/App_Data/DBSeparation"); separation.LogMessage = progress.LogMessage; separation.SeparateDatabase(); progress.LogMessage(ResHelper.GetString("SeparationDB.OK"), CMSDatabaseHelper.MessageType.Finished, false); }
/// <summary> /// Logs message to for asynchronous displaying. /// </summary> /// <param name="line">Message to be displayed</param> /// <param name="type">Type of a message</param> /// <param name="logToEventLog">Log to event log</param> public void LogMessage(string line, CMSDatabaseHelper.MessageType type, bool logToEventLog) { if (!line.EndsWith("<br />") && !line.EndsWith("<BR />")) { line = line + "<br />"; } ProgressMessagesHelper progressMessages = new ProgressMessagesHelper(); switch (type) { case CMSDatabaseHelper.MessageType.Info: progressMessages.LogInfo(line, SourceText, EventCodeText, logToEventLog); break; case CMSDatabaseHelper.MessageType.Error: progressMessages.LogError(line, SourceText, EventCodeText, logToEventLog); break; case CMSDatabaseHelper.MessageType.Finished: progressMessages.LogQuit(line, SourceText, EventCodeText, logToEventLog); break; } }
/// <summary> /// Logs message to install log. /// </summary> /// <param name="message">Message</param> /// <param name="type">Type of message ("E" - error, "I" - info)</param> /// <param name="ignore">Set to true if error can be ignored</param> public void Log(string message, CMSDatabaseHelper.MessageType type, ref bool ignore) { AddResult(message); if (type == CMSDatabaseHelper.MessageType.Error) { LogProgressState(LogStatusEnum.Error, message); } if (type == CMSDatabaseHelper.MessageType.Info) { LogProgressState(LogStatusEnum.Info, message); } }