Exemplo n.º 1
0
        private void rebuildFileToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (lstBuildFiles.SelectedItems.Count == 0)
            {
                return;
            }

            CommittedBuildData dat = (CommittedBuildData)lstBuildFiles.SelectedItems[0].Tag;

            openFileDialog1.FileName = Path.GetFileNameWithoutExtension(dat.BuildFileName) + ".sbm";
            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                this.Cursor = Cursors.WaitCursor;
                Rebuilder blrd = new Rebuilder(this.connData, dat, openFileDialog1.FileName);
                if (blrd.RebuildBuildManagerFile(SqlSync.Properties.Settings.Default.DefaultMinimumScriptTimeout))
                {
                    if (DialogResult.Yes == MessageBox.Show("Reconstruction Complete. Open New Build File?", "Finished", MessageBoxButtons.YesNo, MessageBoxIcon.Question))
                    {
                        try
                        {
                            System.Diagnostics.Process prc = new System.Diagnostics.Process();
                            var me = System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName;
                            prc.StartInfo.FileName  = me;
                            prc.StartInfo.Arguments = openFileDialog1.FileName;
                            prc.Start();
                        }catch (Exception exe)
                        {
                            MessageBox.Show($"Oops..something went wrong. Please try to open the file manually.{Environment.NewLine}{exe.Message}");
                        }
                    }
                }
                this.Cursor = Cursors.Default;
            }
        }
Exemplo n.º 2
0
        public static List <CommittedBuildData> GetCommitedBuildList(ConnectionData connData, DatabaseList dbList)
        {
            string startingDb = connData.DatabaseName;
            string sql        = @"SELECT BuildFileName, count(ScriptFileName) as ScriptCount, commitDate, '' as [database] 
                    FROM SqlBuild_Logging GROUP BY BuildFileName,commitDate ORDER BY commitDate DESC";

            List <CommittedBuildData> data = new List <CommittedBuildData>();

            for (int i = 0; i < dbList.Count; i++)
            {
                if (dbList[i].IsManuallyEntered)
                {
                    continue;
                }

                connData.DatabaseName = dbList[i].DatabaseName;
                SqlConnection conn = SqlSync.Connection.ConnectionHelper.GetConnection(connData);
                try
                {
                    SqlCommand cmd = new SqlCommand(sql, conn);
                    conn.Open();
                    using (SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection))
                    {
                        bool filled;
                        while (!reader.IsClosed)
                        {
                            CommittedBuildData dat = new CommittedBuildData();
                            filled = dat.Fill(reader, false);
                            if (filled)
                            {
                                dat.Database = dbList[i].DatabaseName;
                                data.Add(dat);
                            }
                        }
                        conn.Close();
                    }
                }
                catch (SqlException)
                {
                    //ignore
                }
                catch (Exception)
                {
                    return(new List <CommittedBuildData>());
                }
                finally
                {
                    connData.DatabaseName = startingDb;
                }
            }
            return(MergeServerResults(data));;
        }
 public virtual bool Fill(CommittedBuildData dataClass)
 {
     try {
         this.BuildFileName = dataClass.BuildFileName;
         this.ScriptCount   = dataClass.ScriptCount;
         this.CommitDate    = dataClass.CommitDate;
         this.Database      = dataClass.Database;
         return(true);
     }
     catch (System.Exception ex) {
         throw new System.ApplicationException("Error in the Auto-Generated: CommittedBuildData.Fill(CommittedBuildData) Method", ex);
     }
 }
Exemplo n.º 4
0
        public static List <CommittedBuildData> GetCommitedBuildList(ConnectionData connData, string databaseName)
        {
            string startingDb = connData.DatabaseName;
            string sql        = @"SELECT BuildFileName, count(ScriptFileName) as ScriptCount, commitDate, '' as [database] 
                    FROM SqlBuild_Logging GROUP BY BuildFileName,commitDate ORDER BY commitDate DESC";

            List <CommittedBuildData> data = new List <CommittedBuildData>();

            connData.DatabaseName = databaseName;
            SqlConnection conn = SqlSync.Connection.ConnectionHelper.GetConnection(connData);

            try
            {
                SqlCommand cmd = new SqlCommand(sql, conn);
                conn.Open();
                using (SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection))
                {
                    bool filled;
                    while (!reader.IsClosed)
                    {
                        CommittedBuildData dat = new CommittedBuildData();
                        filled = dat.Fill(reader, false);
                        if (filled)
                        {
                            dat.Database = databaseName;
                            data.Add(dat);
                        }
                    }
                    conn.Close();
                }
            }
            catch (SqlException sExe)
            {
                log.LogError(sExe, $"Unable to get committed SBM package list from {connData.SQLServerName}.{databaseName}");
            }
            catch (Exception exe)
            {
                log.LogError(exe, $"Unable to get committed SBM package list from {connData.SQLServerName}.{databaseName}");
            }
            finally
            {
                connData.DatabaseName = startingDb;
            }

            return(data);
        }
Exemplo n.º 5
0
 public Rebuilder(ConnectionData connData, CommittedBuildData commitData, string newBuildFileName)
 {
     this.connData         = connData;
     this.commitData       = commitData;
     this.newBuildFileName = newBuildFileName;
 }