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 static FileCompareResults ProcessUnifiedDiff(FileCompareResults fileData) { StringBuilder sb = new StringBuilder(); StringWriter sw = new StringWriter(sb); string leftFile = fileData.LeftScriptPath; string rightFile = fileData.RightScriptPath; string[] leftContents = new string[0]; string[] rightContents = new string[0]; if (File.Exists(rightFile)) { rightContents = File.OpenText(rightFile).ReadToEnd().Split('\n'); for (int i = 0; i < rightContents.Length; i++) { rightContents[i] = rightContents[i].TrimEnd(); // trim the end because the diff blocks a a WriteLine, don't want extra \r\n's } } if (File.Exists(leftFile)) { leftContents = File.OpenText(leftFile).ReadToEnd().Split('\n'); for (int i = 0; i < leftContents.Length; i++) { leftContents[i] = leftContents[i].TrimEnd(); // trim the end because the diff blocks a a WriteLine, don't want extra \r\n's } } //Get the diff UnifiedDiff.WriteUnifiedDiff(leftContents, leftFile, rightContents, rightFile, sw, 500, false, false); //If there is not a real diff, just add the file contents, otherwise, add the unified diff text if (sb.ToString().Trim().Split('\r').Length < 3) { fileData.LeftScriptText = String.Join("\r\n", leftContents); } else { fileData.UnifiedDiffText = sb.ToString(); fileData.LeftScriptText = String.Join("\r\n", leftContents); fileData.RightSciptText = String.Join("\r\n", rightContents); } return(fileData); }
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); }