public string BuildPublicApisReport(IEnumerable <MethodDefinition> candidates, List <Regex> reviewedMethods, ReportWriter format)
        {
            var report = SelectVisibleEntryPoints(candidates)
                         .Select(m => new
            {
                Method  = m,
                Comment = CommentFor(m, format, reviewedMethods)
            }).GroupBy(row => row.Comment)
                         .OrderByDescending(g => g.Key)
                         .SelectMany(g => g.OrderBy(row => row.Method.DeclaringType.FullName + row.Method.Name));

            var writer = new StringWriter();

            format.BeginReport(writer);
            foreach (var row in report)
            {
                format.PublicMethod(writer, row.Method, row.Comment);
            }
            format.EndReport(writer);

            return(writer.ToString());
        }
        public string BuildPublicApisReport(IEnumerable<MethodDefinition> candidates, List<Regex> reviewedMethods, ReportWriter format)
        {
            var report = SelectVisibleEntryPoints(candidates)
                .Select(m => new
                             	{
                             		Method = m,
                             		Comment = CommentFor(m, format, reviewedMethods)
                             	}).GroupBy(row => row.Comment)
                .OrderByDescending(g => g.Key)
                .SelectMany(g => g.OrderBy(row => row.Method.DeclaringType.FullName + row.Method.Name));

            var writer = new StringWriter();
            format.BeginReport(writer);
            foreach (var row in report)
                format.PublicMethod(writer, row.Method, row.Comment);
            format.EndReport(writer);

            return writer.ToString();
        }