/// <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();"));
            }
        }
    }
Example #2
0
    /// <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);
    }
Example #4
0
    /// <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));
    }
Example #5
0
    /// <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);
     }
 }