private void WriteFriendFinderLine(StreamWriter html, FriendOf f) { html.WriteLine(@"<tr class=""friend-table-group-row""> <td class=""friend-group-col""><a href=""{1}"">{0}</a></td> <td class=""friend-group-col right"">{2}</td> <td class=""friend-group-col right"">{3:n2}</td>", f.Submission.FilePath.MaxLength(17, "...", true), f.Submission.FilePath, f.InMatches.Count, 100.0 * f.SumSimilarity); var first = true; var lst = f.InMatches .OrderByDescending(i => f.Submission.FilePath == i.A.FilePath ? i.SimilarityB : i.SimilarityA); foreach (var match in lst) { if (!first) { html.WriteLine(@"<tr class=""friend-table-detail-row""> <td class=""friend-group-col empty first""></td> <td class=""friend-group-col empty""></td> <td class=""friend-group-col empty last""></td>"); } first = false; var isA = f.Submission.FilePath == match.A.FilePath; var path = isA ? match.B.FilePath : match.A.FilePath; html.WriteLine(@" <td class=""friend-detail-col""><a href=""{1}"">{0}</a></td> <td class=""friend-detail-col right"">{2:n2}</td> <td class=""friend-detail-col right"">{3}</td> <td class=""friend-detail-col""><a href=""{4}"">Diff</a></td> </tr>", path.MaxLength(17, "...", true), path, 100.0 * (isA ? match.SimilarityB : match.SimilarityA), match.MatchCount, GetDetailFileName(match) ); } }