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; } }
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); } }
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); }
public Rebuilder(ConnectionData connData, CommittedBuildData commitData, string newBuildFileName) { this.connData = connData; this.commitData = commitData; this.newBuildFileName = newBuildFileName; }