public ClearScriptData(string[] selectedScriptIds, SqlSyncBuildData buildData, string projectFileName, string buildZipFileName) { this.SelectedScriptIds = selectedScriptIds; this.BuildData = buildData; this.ProjectFileName = projectFileName; this.BuildZipFileName = buildZipFileName; }
public Package CreateScriptPolicyPackage(SqlSyncBuildData buildData, string extractedProjectPath) { Package scriptPackage = new Package(); Script scriptItem; foreach (SqlSyncBuildData.ScriptRow row in buildData.Script) { try { string scriptContents = File.ReadAllText(Path.Combine(extractedProjectPath, row.FileName)); scriptItem = this.ValidateScriptAgainstPolicies(row.FileName, row.ScriptId, scriptContents, row.Database, 80); if (scriptItem == null) { row.PolicyCheckState = ScriptStatusType.PolicyPass; } else { scriptItem.LastChangeDate = (row.DateModified == DateTime.MinValue) ? row.DateAdded.ToString() : row.DateModified.ToString(); scriptItem.LastChangeUserId = (row.ModifiedBy.Length == 0) ? row.AddedBy : row.ModifiedBy; scriptPackage.Add(scriptItem); row.PolicyCheckState = ScriptStatusType.PolicyFail; } } catch (Exception exe) { log.LogError(exe, $"Unable to read file '{extractedProjectPath + row.FileName}' for policy check validation"); } } return(scriptPackage); }
public static void GetLastBuildNumberAndDb(SqlSyncBuildData buildData, out double lastbuildNumber, out string lastDatabase) { //Use the dataset to get the last build number and Db if (buildData != null && buildData.Script.Rows.Count > 0) { DataView view = buildData.Script.DefaultView; view.RowFilter = buildData.Script.BuildOrderColumn.ColumnName + " < " + ((int)ResequenceIgnore.StartNumber).ToString(); view.Sort = buildData.Script.BuildOrderColumn + " DESC"; if (view.Count > 0) { lastbuildNumber = ((SqlSyncBuildData.ScriptRow)view[0].Row).BuildOrder; lastDatabase = ((SqlSyncBuildData.ScriptRow)view[0].Row).Database; } else { lastbuildNumber = 0; lastDatabase = ""; } return; } lastbuildNumber = 0; lastDatabase = string.Empty; return; }
public void CleanProjectFileForRemoteExecutionTest_NothingToClean() { Initialization init = GetInitializationObject(); //Create the build package... SqlSyncBuildData buildData = init.CreateSqlSyncSqlBuildDataObject(); init.AddInsertScript(ref buildData, true); init.AddFailureScript(ref buildData, true, true); init.AddFailureScript(ref buildData, true, true); foreach (SqlSyncBuildData.ScriptRow row in buildData.Script) { row.FileName = Path.GetFileName(row.FileName); } string zipFileName = init.GetTrulyUniqueFile() + ".sbm"; string path = Path.GetDirectoryName(zipFileName); SqlBuildFileHelper.PackageProjectFileIntoZip(buildData, path, zipFileName, false); byte[] expected = File.ReadAllBytes(zipFileName); byte[] actual; SqlSyncBuildData cleanedBuildData; actual = SqlBuildFileHelper.CleanProjectFileForRemoteExecution(zipFileName, out cleanedBuildData); Assert.IsTrue(cleanedBuildData.GetXml().ToString().Length > 100); Assert.AreEqual(buildData.GetXml().ToString().Length, cleanedBuildData.GetXml().ToString().Length); Assert.IsTrue(1500 <= actual.Length, string.Format("Actual length of cleaned XML {0}.\r\n{1}", actual.Length.ToString(), cleanedBuildData.GetXml())); //can't get exact length due to variations in guids and dates. Assert.IsTrue(expected.Length == actual.Length); Assert.IsTrue(cleanedBuildData.ScriptRun.Rows.Count == 0); Assert.IsTrue(cleanedBuildData.Build.Rows.Count == 0); Assert.IsTrue(cleanedBuildData.CodeReview.Rows.Count == 0); Assert.AreEqual(buildData.Script.Rows.Count, cleanedBuildData.Script.Rows.Count); }
public SqlBuildHelper CreateSqlBuildHelperAccessor(SqlSyncBuildData buildData) { SqlBuildHelper target = new SqlBuildHelper(this.connData); //Set fields BackgroundWorker bg = new BackgroundWorker(); bg.WorkerReportsProgress = true; bg.WorkerSupportsCancellation = true; target.bgWorker = bg; target.buildData = buildData; string logFile = this.GetTrulyUniqueFile(); this.tempFiles.Add(logFile); target.scriptLogFileName = logFile; SqlSyncBuildData buildHist = CreateSqlSyncSqlBuildDataObject(); target.buildHistoryData = buildHist; this.projectFileName = this.GetTrulyUniqueFile(); this.tempFiles.Add(projectFileName); target.projectFileName = projectFileName; this.buildHistoryXmlFile = this.GetTrulyUniqueFile(); this.tempFiles.Add(buildHistoryXmlFile); target.buildHistoryXmlFile = buildHistoryXmlFile; return(target); }
public SqlBuildHelper SetSqlBuildHelperValues(SqlBuildHelper sbh, SqlSyncBuildData buildData) { BackgroundWorker bg = new BackgroundWorker(); bg.WorkerReportsProgress = true; bg.WorkerSupportsCancellation = true; sbh.bgWorker = bg; sbh.buildData = buildData; string logFile = this.GetTrulyUniqueFile(); sbh.scriptLogFileName = logFile; SqlSyncBuildData buildHist = CreateSqlSyncSqlBuildDataObject(); sbh.buildHistoryData = buildHist; this.projectFileName = this.GetTrulyUniqueFile(); sbh.projectFileName = projectFileName; this.buildHistoryXmlFile = this.GetTrulyUniqueFile(); sbh.buildHistoryXmlFile = buildHistoryXmlFile; return(sbh); }
public StatusReporting(SqlSyncBuildData buildData, MultiDb.MultiDbData multiDbData, string projectFilePath, string buildZipFileName) { this.buildData = buildData; this.multiDbData = multiDbData; this.buildZipFileName = buildZipFileName; this.projectFilePath = projectFilePath; }
public void AddPreRunScript(ref SqlSyncBuildData data, bool multipleRun) { SqlSyncBuildData.ScriptRow row = data.Script.NewScriptRow(); row.AllowMultipleRuns = multipleRun; row.BuildOrder = 1; row.CausesBuildFailure = true; row.Database = testDatabaseNames[0]; row.DateAdded = testTimeStamp; string fileName = this.GetTrulyUniqueFile(); row.FileName = fileName; row.RollBackOnError = true; row.StripTransactionText = true; row.Description = "Test Script to be skipped"; row.AddedBy = "UnitTest"; row.ScriptId = PreRunScriptGuid; row.SetParentRow(data.Scripts[0]); data.Script.AddScriptRow(row); data.Script.AcceptChanges(); string script = "INSERT INTO TransactionTest (Message, Guid, DateTimeStamp) VALUES ('INSERT TEST','" + testGuid + "','" + testTimeStamp.ToString() + "')"; File.WriteAllText(fileName, script); InsertPreRunScriptEntry(); }
private List <FileCompareResults> GetFileListDiff(SqlSyncBuildData master, SqlSyncBuildData child, bool masterIsLeftFile) { bool foundScript = false; List <FileCompareResults> results = new List <FileCompareResults>(); foreach (SqlSyncBuildData.ScriptRow masterRow in master.Script) { foreach (SqlSyncBuildData.ScriptRow childRow in child.Script) { if (masterRow.FileName.Trim().ToLower() == childRow.FileName.Trim().ToLower()) { foundScript = true; break; } } if (!foundScript) { FileCompareResults result = new FileCompareResults(); if (masterIsLeftFile) { result.LeftScriptRow = masterRow; } else { result.RightScriptRow = masterRow; } results.Add(result); } foundScript = false; } return(results); }
public StatusReportRunner(SqlSyncBuildData buildData, string serverName, List <DatabaseOverride> dbOverrides, string projectFilePath) { this.buildData = buildData; this.serverName = serverName; this.dbOverrides = dbOverrides; this.projectFilePath = projectFilePath; }
public static bool MarkCodeReviewOutOfDate(ref SqlSyncBuildData buildData, ref SqlSyncBuildData.CodeReviewRow reviewRow) { reviewRow.ReviewStatus = (short)CodeReviewStatus.OutOfDate; buildData.CodeReview.AcceptChanges(); return(true); }
public static bool SaveCodeReview(ref SqlSyncBuildData buildData, ref SqlSyncBuildData.ScriptRow scriptRow, string scriptText, string comment, string reviewBy, DateTime reviewDate, string reviewNumber, int reviewStatus) { try { SqlSyncBuildData.CodeReviewRow newRow = buildData.CodeReview.NewCodeReviewRow(); newRow.CodeReviewId = Guid.NewGuid(); newRow.Comment = comment; newRow.ReviewBy = reviewBy; newRow.ReviewDate = reviewDate; newRow.ReviewNumber = reviewNumber; newRow.ReviewStatus = (short)reviewStatus; newRow.CheckSum = CodeReviewManager.CalculateReviewCheckSum(newRow.CodeReviewId, newRow.ReviewBy, newRow.ReviewDate, newRow.Comment, newRow.ReviewNumber, newRow.ReviewStatus, scriptText); newRow.SetParentRow(scriptRow); CodeReviewManager.SetValidationKey(ref newRow); buildData.CodeReview.AddCodeReviewRow(newRow); buildData.CodeReview.AcceptChanges(); CodeReviewManager.SaveCodeReviewToDatabase(newRow); return(true); } catch { return(false); } }
internal static bool RebuildBuildManagerFile(int defaultTimeout, string buildFileName, List <RebuilderData> rebuildData) { string tempPath = System.IO.Path.GetTempPath() + System.Guid.NewGuid(); Directory.CreateDirectory(tempPath); try { string projFileName = Path.Combine(tempPath, SqlSync.SqlBuild.XmlFileNames.MainProjectFile); for (int i = 0; i < rebuildData.Count; i++) { File.WriteAllText(Path.Combine(tempPath, rebuildData[i].ScriptFileName), rebuildData[i].ScriptText); } SqlSyncBuildData buildData = SqlBuildFileHelper.CreateShellSqlSyncBuildDataObject(); buildData.AcceptChanges(); if (!SqlBuildFileHelper.PackageProjectFileIntoZip(buildData, tempPath, buildFileName)) { return(false); } if (!ZipHelper.UnpackZipPackage(tempPath, buildFileName, false)) { return(false); } for (int i = 0; i < rebuildData.Count; i++) { SqlBuildFileHelper.AddScriptFileToBuild(ref buildData, projFileName, rebuildData[i].ScriptFileName, rebuildData[i].Sequence + 1, string.Empty, true, true, rebuildData[i].Database, false, buildFileName, false, false, System.Environment.UserName, defaultTimeout, rebuildData[i].ScriptId, rebuildData[i].Tag); } SqlBuildFileHelper.SaveSqlBuildProjectFile(ref buildData, projFileName, buildFileName); return(true); } finally { if (Directory.Exists(tempPath)) { Directory.Delete(tempPath, true); } } }
public PastBuildReviewForm(SqlSyncBuildData buildData) { // // Required for Windows Form Designer support // InitializeComponent(); this.sqlSyncBuildData1 = buildData; }
public StatusReportForm(SqlSyncBuildData buildData, MultiDb.MultiDbData multiDbData, string projectFilePath, string buildZipFileName, ConnectionData connData) : this(multiDbData, connData) { this.buildData = buildData; this.buildZipFileName = buildZipFileName; this.projectFilePath = projectFilePath; this.ddOutputType.SelectedIndex = 0; }
public void CalculateBuildPackageSHA1_CompareMethodologyTest() { //Set up directory and files... string projectFileExtractionPath = Path.GetTempPath() + Guid.NewGuid().ToString() + "\\"; if (!Directory.Exists(projectFileExtractionPath)) { Directory.CreateDirectory(projectFileExtractionPath); } string file1 = "File1.sql"; File.WriteAllText(projectFileExtractionPath + file1, Properties.Resources.CreateDatabaseScript); string file2 = "File2.sql"; File.WriteAllText(projectFileExtractionPath + file2, Properties.Resources.CreateTestTablesScript); string file3 = "File3.sql"; File.WriteAllText(projectFileExtractionPath + file3, Properties.Resources.LoggingTable); SqlSyncBuildData buildData = SqlBuildFileHelper.CreateShellSqlSyncBuildDataObject(); SqlSyncBuildData.ScriptRow row1 = buildData.Script.NewScriptRow(); row1.BuildOrder = 1; row1.FileName = file1; row1.StripTransactionText = true; SqlSyncBuildData.ScriptRow row2 = buildData.Script.NewScriptRow(); row2.BuildOrder = 2; row2.FileName = file2; row2.StripTransactionText = true; SqlSyncBuildData.ScriptRow row3 = buildData.Script.NewScriptRow(); row3.BuildOrder = 3; row3.FileName = file3; row3.StripTransactionText = true; buildData.Script.Rows.Add(row1); buildData.Script.Rows.Add(row2); buildData.Script.Rows.Add(row3); string fromPath = SqlBuildFileHelper.CalculateBuildPackageSHA1SignatureFromPath(projectFileExtractionPath, buildData); ScriptBatchCollection batch = SqlBuildHelper.LoadAndBatchSqlScripts(buildData, projectFileExtractionPath); string fromBatch = SqlBuildFileHelper.CalculateBuildPackageSHA1SignatureFromBatchCollection(batch); if (Directory.Exists(projectFileExtractionPath)) { Directory.Delete(projectFileExtractionPath, true); } Assert.AreEqual(fromPath, fromBatch); }
public BackoutPackageForm(ConnectionData connData, SqlSyncBuildData sourceBuildData, string sourceSbmFullFileName, string extractedPath, string extractedProjectFile) : this() { this.connData = connData; this.sourceSbmFullFileName = sourceSbmFullFileName; this.extractedPath = extractedPath; this.extractedProjectFile = extractedProjectFile; this.sourceBuildData = sourceBuildData; }
public BulkAddConfirmation(List <string> fileList, string projectFilePath, SqlSyncBuildData buildData) { // // Required for Windows Form Designer support // InitializeComponent(); this.projectFilePath = projectFilePath; this.incommingFileList = fileList; this.buildData = buildData; }
public void BuildDataTest() { MultiDbData target = new MultiDbData(); SqlSyncBuildData expected = new SqlSyncBuildData(); SqlSyncBuildData actual; target.BuildData = expected; actual = target.BuildData; Assert.AreEqual(expected, actual); }
public static void SetScriptRunStatusAndDates(ref SqlSyncBuildData buildData, ConnectionData connData, string projectFilePath) { DateTime commitDate; DateTime serverChangeDate; foreach (SqlSyncBuildData.ScriptRow row in buildData.Script) { row.ScriptRunStatus = DetermineScriptRunStatus(row, connData, projectFilePath, true, OverrideData.TargetDatabaseOverrides, out commitDate, out serverChangeDate); row.LastCommitDate = commitDate; row.ServerChangeDate = serverChangeDate; } }
public void CalculateBuildPackageSHA1SignatureFromPathTest_GetHashSuccessfully() { //Set up directory and files... string projectFileExtractionPath = Path.GetTempPath() + Guid.NewGuid().ToString() + "\\"; if (!Directory.Exists(projectFileExtractionPath)) { Directory.CreateDirectory(projectFileExtractionPath); } string file1 = "File1.sql"; File.WriteAllText(projectFileExtractionPath + file1, Properties.Resources.CreateDatabaseScript); string file2 = "File2.sql"; File.WriteAllText(projectFileExtractionPath + file2, Properties.Resources.CreateTestTablesScript); string file3 = "File3.sql"; File.WriteAllText(projectFileExtractionPath + file3, Properties.Resources.LoggingTable); SqlSyncBuildData buildData = SqlBuildFileHelper.CreateShellSqlSyncBuildDataObject(); SqlSyncBuildData.ScriptRow row1 = buildData.Script.NewScriptRow(); row1.BuildOrder = 1; row1.FileName = file1; SqlSyncBuildData.ScriptRow row2 = buildData.Script.NewScriptRow(); row2.BuildOrder = 2; row2.FileName = file2; SqlSyncBuildData.ScriptRow row3 = buildData.Script.NewScriptRow(); row3.BuildOrder = 3; row3.FileName = file3; buildData.Script.Rows.Add(row1); buildData.Script.Rows.Add(row2); buildData.Script.Rows.Add(row3); string expected = "4E0F54A4BA40DC62A78822B20C7D83713CE4F766"; string actual; actual = SqlBuildFileHelper.CalculateBuildPackageSHA1SignatureFromPath(projectFileExtractionPath, buildData); if (Directory.Exists(projectFileExtractionPath)) { Directory.Delete(projectFileExtractionPath, true); } Assert.AreEqual(expected, actual); }
public SqlSyncBuildData CreateSqlSyncSqlBuildDataObject() { try { SqlSyncBuildData data = SqlBuildFileHelper.CreateShellSqlSyncBuildDataObject(); return(data); } catch { return(null); } }
public void ClearScriptDataConstructorTest() { string[] selectedScriptIds = new string[] { "1", "3", "5" }; SqlSyncBuildData buildData = new SqlSyncBuildData(); string projectFileName = "MyProjectFile"; string buildZipFileName = "MyZipFileName.sbm"; ClearScriptData target = new ClearScriptData(selectedScriptIds, buildData, projectFileName, buildZipFileName); Assert.AreEqual(selectedScriptIds, target.SelectedScriptIds); Assert.AreEqual(buildData, target.BuildData); Assert.AreEqual(projectFileName, target.ProjectFileName); Assert.AreEqual(buildZipFileName, target.BuildZipFileName); }
public void CleanProjectFileForRemoteExecutionTest_CleanOutUnitTest() { Initialization init = GetInitializationObject(); //Create the build package... SqlSyncBuildData buildData = init.CreateSqlSyncSqlBuildDataObject(); init.AddInsertScript(ref buildData, true); init.AddFailureScript(ref buildData, true, true); foreach (SqlSyncBuildData.ScriptRow row in buildData.Script) { row.FileName = Path.GetFileName(row.FileName); } //Add in code review rows buildData.CodeReview.AddCodeReviewRow( Guid.NewGuid(), buildData.Script[0], DateTime.Now, "Reviewer", 1, "Comment", "12345", "AABBCCDD", "EEFFGGHHII"); buildData.AcceptChanges(); string zipFileName = init.GetTrulyUniqueFile(); string path = Path.GetDirectoryName(zipFileName); string projectFileName = Path.Combine(path, XmlFileNames.MainProjectFile); buildData.WriteXml(projectFileName); SqlBuildFileHelper.PackageProjectFileIntoZip(buildData, path, zipFileName, false); byte[] expected = File.ReadAllBytes(zipFileName); byte[] actual; SqlSyncBuildData cleanedBuildData; actual = SqlBuildFileHelper.CleanProjectFileForRemoteExecution(zipFileName, out cleanedBuildData); Assert.IsTrue(actual.Length >= 1200); //can't get exact length due to variations in guids and dates. Assert.IsTrue(cleanedBuildData.GetXml().ToString().Length > 100); Assert.IsTrue(buildData.GetXml().ToString().Length > cleanedBuildData.GetXml().ToString().Length); Assert.IsTrue(cleanedBuildData.ScriptRun.Rows.Count == 0); Assert.IsTrue(cleanedBuildData.Build.Rows.Count == 0); Assert.IsTrue(cleanedBuildData.CodeReview.Rows.Count == 0); Assert.AreEqual(buildData.Script.Rows.Count, cleanedBuildData.Script.Rows.Count); }
public MultiDbRunForm(ConnectionData connData, List <string> defaultDatabases, DatabaseList databaseList, string buildZipFileName, string projectFilePath, ref SqlSyncBuildData buildData) : this() { //perform real copy to prevent data slipping back into main form string[] tmp = new string[defaultDatabases.Count]; defaultDatabases.CopyTo(tmp); this.defaultDatabases = new List <string>(tmp); this.databaseList = databaseList; this.server = connData.SQLServerName; this.DialogResult = DialogResult.Cancel; this.buildZipFileName = buildZipFileName; this.buildData = buildData; this.projectFilePath = projectFilePath; this.connData = connData; }
public static bool UpdateCodeReview(ref SqlSyncBuildData buildData, ref SqlSyncBuildData.CodeReviewRow reviewRow, string scriptText) { try { reviewRow.CheckSum = CodeReviewManager.CalculateReviewCheckSum(reviewRow, scriptText); CodeReviewManager.SetValidationKey(ref reviewRow); buildData.CodeReview.AcceptChanges(); CodeReviewManager.UpdateCodeReviewToDatabase(reviewRow); return(true); } catch { return(false); } }
public void CleanProjectFileForRemoteExecutionTest_CleanOutScriptRunRowsTest() { Initialization init = GetInitializationObject(); //Create the build package... SqlSyncBuildData buildData = init.CreateSqlSyncSqlBuildDataObject(); init.AddInsertScript(ref buildData, true); init.AddInsertScript(ref buildData, true); init.AddInsertScript(ref buildData, true); init.AddFailureScript(ref buildData, true, true); foreach (SqlSyncBuildData.ScriptRow row in buildData.Script) { row.FileName = Path.GetFileName(row.FileName); } buildData.Builds.AddBuildsRow((SqlSyncBuildData.SqlSyncBuildProjectRow)buildData.SqlSyncBuildProject.Rows[0]); buildData.Build.AddBuildRow("Script", "Development", DateTime.Now, DateTime.Now, "Server", "Committed", Guid.NewGuid().ToString(), "user", buildData.Builds[0]); buildData.ScriptRun.AddScriptRunRow("HASH", "Committed", "FileName", 2.2, DateTime.Now, DateTime.Now, true, "Database", Guid.NewGuid().ToString(), (SqlSyncBuildData.BuildRow)buildData.Build[0]); buildData.AcceptChanges(); string zipFileName = init.GetTrulyUniqueFile(); string path = Path.GetDirectoryName(zipFileName); string projectFileName = Path.Combine(path, XmlFileNames.MainProjectFile); buildData.WriteXml(projectFileName); SqlBuildFileHelper.PackageProjectFileIntoZip(buildData, path, zipFileName, false); byte[] expected = File.ReadAllBytes(zipFileName); byte[] actual; SqlSyncBuildData cleanedBuildData; actual = SqlBuildFileHelper.CleanProjectFileForRemoteExecution(zipFileName, out cleanedBuildData); Assert.IsTrue(2000 <= actual.Length); //can't get exact length due to variations in guids and dates. Assert.IsTrue(cleanedBuildData.GetXml().ToString().Length > 100); Assert.IsTrue(buildData.GetXml().ToString().Length > cleanedBuildData.GetXml().ToString().Length); Assert.IsTrue(cleanedBuildData.ScriptRun.Rows.Count == 0); Assert.IsTrue(cleanedBuildData.Build.Rows.Count == 0); Assert.IsTrue(cleanedBuildData.CodeReview.Rows.Count == 0); Assert.AreEqual(buildData.Script.Rows.Count, cleanedBuildData.Script.Rows.Count); }
internal void BindData(ref SqlSyncBuildData buildData, ref SqlSyncBuildData.ScriptRow scriptRow, string scriptText, string lastEditor) { this.startingScriptText = scriptText; //Can't create a new review for yourself unless you are a "SelfReviewer" var isSelfReviewer = from s in EnterpriseConfigHelper.EnterpriseConfig.CodeReviewConfig.SelfReviewer where s.LoginId.ToLower() == lastEditor.ToLower() select s.LoginId; if ((lastEditor.Length == 0 || lastEditor.Trim().ToLower() == System.Environment.UserName.ToLower().Trim()) && !isSelfReviewer.Any()) { this.Height = collapsedHeight; this.tblPanel.Controls.Clear(); if (lastEditor.Length > 0) { lblLastEditor.Visible = true; } } this.scriptRow = scriptRow; this.buildData = buildData; SqlSyncBuildData.CodeReviewRow[] rows = scriptRow.GetCodeReviewRows(); if (rows != null && rows.Length > 0) { var sorted = from r in rows orderby r.ReviewDate descending select r; foreach (SqlSyncBuildData.CodeReviewRow row in sorted) { if (!CodeReviewManager.ValidateReviewCheckSum(row, scriptText)) { row.ReviewStatus = (short)CodeReviewStatus.OutOfDate;; this.buildData.AcceptChanges(); } CodeReviewItemControl itemCtrl = new CodeReviewItemControl(row); itemCtrl.Dock = DockStyle.Fill; this.tblPanel.Controls.Add(itemCtrl); this.Height = this.Height + itemCtrl.Height + 7; } } this.fullHeight = this.Height; }
public SqlBuildRunData GetSqlBuildRunData_TransactionalNotTrial(SqlSyncBuildData buildData) { SqlBuildRunData runData = new SqlBuildRunData() { BuildData = buildData, BuildDescription = "UnitTestRun", BuildFileName = @"C:\temp\UnitTestBuildFile.sbm", BuildType = "Development", ProjectFileName = @"C:\temp\ProjectFile.xml", Server = this.serverName, StartIndex = 0 }; runData.IsTransactional = true; runData.IsTrial = false; runData.TargetDatabaseOverrides = GetDatabaseOverrides(); return(runData); }
private List <FileCompareResults> GetCommonFileList(SqlSyncBuildData left, SqlSyncBuildData right) { //bool foundScript = false; List <FileCompareResults> results = new List <FileCompareResults>(); foreach (SqlSyncBuildData.ScriptRow leftRow in left.Script) { foreach (SqlSyncBuildData.ScriptRow rightRow in right.Script) { if (leftRow.FileName.Trim().ToLower() == rightRow.FileName.Trim().ToLower()) { FileCompareResults result = new FileCompareResults(); result.LeftScriptRow = leftRow; result.RightScriptRow = rightRow; //Only file name, not full path yet results.Add(result); } } } return(results); }