예제 #1
0
        public bool CreateNewProject(ProjectType type)
        {
            if (IsDirty)
            {
                if (!SaveCurrent())
                {
                    return(false);
                }
            }
            var project = new DataCompareProject();

            project.Type = type;
            using (var selector = new DbSelectForm())
            {
                selector.Text = type == ProjectType.Compare ? "Select Database A" : "Select Source Database";

                selector.OkButtonText  = "Next";
                selector.OkButtonImage = DBCompare.Properties.Resources.Right;
ShowSelector:
                if (selector.ShowDialog() != System.Windows.Forms.DialogResult.OK)
                {
                    return(false);
                }
                if (type == ProjectType.Monitor)
                {
                    if (!Environment.MachineName.Equals(selector.HostName, StringComparison.InvariantCultureIgnoreCase))
                    {
                        MessageBox.Show("For monitoring projects, server must be on the same machine where DBCompare is running.\nThis is for backup and restore purposes.", "Invalid server", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        goto ShowSelector;
                    }
                }
                project.SetConnectionA(selector.ConnectionString);
            }
            if (type == ProjectType.Compare)
            {
                using (var selector = new DbSelectForm())
                {
                    selector.Text = "Select Database B";
                    if (selector.ShowDialog() != System.Windows.Forms.DialogResult.OK)
                    {
                        return(false);
                    }
                    project.SetConnectionB(selector.ConnectionString);
                }
            }
            else
            {
                using (var backupRestore = new BackupRestoreForm(project))
                {
                    if (backupRestore.ShowDialog() != System.Windows.Forms.DialogResult.OK)
                    {
                        return(false);
                    }
                }
            }
            return(ShowProject(project));
        }
예제 #2
0
        public void ChangeConnectionB()
        {
            if (CompareProject.Type == ProjectType.Monitor)
            {
                return;
            }
            var title      = "Change Connection B";
            var connection = CompareProject.ConnectionB;

            ChangeConnection(BtnConnectionB, connection, title);
            CompareProject.SetConnectionB(connection);
        }