Example #1
0
 private static Tuple <List <int>, List <int> > FindDiffSourceLinesInImplementation(Implementation implementation1, SourceInfoManager v1srcInfo, Implementation implementation2, SourceInfoManager v2srcInfo)
 {
     if (implementation1 != null && implementation2 != null)
     {
         Console.WriteLine("----Diffing {0} and {1}-----", implementation1.Name, implementation2.Name);
         var v1Lines   = v1srcInfo.GetSrcLinesForImpl(implementation1);
         var v2Lines   = v2srcInfo.GetSrcLinesForImpl(implementation2);
         var diffLines = new DiffUsingTFS().DiffStrings(v1Lines, v2Lines);
         //add the offset to any difflines
         var i1StartLine = v1srcInfo.GetStartLineForImplInFile(implementation1);
         var i2StartLine = v2srcInfo.GetStartLineForImplInFile(implementation2);
         var d1          = diffLines.Item1.Select(x => x + i1StartLine).ToList();
         var d2          = diffLines.Item2.Select(x => x + i2StartLine).ToList();
         return(Tuple.Create(d1, d2));
     }
     else
     {
         var d1 = new List <int>();
         var d2 = new List <int>();
         if (implementation1 != null)
         {
             var i1StartLine = v1srcInfo.GetStartLineForImplInFile(implementation1);
             var i1EndLine   = v1srcInfo.GetEndLineForImplInFile(implementation1);
             d1.AddRange(Enumerable.Range(i1StartLine, i1EndLine - i1StartLine + 1));
         }
         if (implementation2 != null)
         {
             var i2StartLine = v2srcInfo.GetStartLineForImplInFile(implementation2);
             var i2EndLine   = v2srcInfo.GetEndLineForImplInFile(implementation2);
             d2.AddRange(Enumerable.Range(i2StartLine, i2EndLine - i2StartLine + 1));
         }
         return(Tuple.Create(d1, d2));
     }
 }