2016-07-23 13 views
0

Ich versuche, die Review-Kommentare für alle meine Code-Reviews aus dem TFS zu erhalten. Ich bin nicht in der Lage, die Abfrage zu erstellen. Meine Parameter sind wie folgt. Ich verstehe nichts von diesem :-(Teamfundament-Server - Abfragekommentare abrufen

Team Project = @Project 
And Work Item Type  In Group Code Review Response Category 
And Requested By   =  @Me 
Or  Requested By  Was Ever @Me 

Dank

Antwort

0

Workitem Abfrage nicht in der Lage ist, um Code-Review-Kommentare abrufen, können Sie Ihr Ziel durch Verwendung von TFS API erreichen können. This case stellt eine Lösung bereit, Sie kann es:

Sie sollten in den Microsoft.TeamFoundation.Discussion.Client Namespace mit Funktionalität Code-Review Kommentare erhalten, können

Insbesondere die Kommentare über die DiscussionThread Klasse zugänglich sind und y.. Sie sollten Diskussionen unter Verwendung von IDiscussionManager abfragen können.

-Code-Schnipsel ist wie folgt:

public List<CodeReviewComment> GetCodeReviewComments(int workItemId) 
{ 
     List<CodeReviewComment> comments = new List<CodeReviewComment>(); 

     Uri uri = new Uri(URL_TO_TFS_COLLECTION); 
     TeamFoundationDiscussionService service = new TeamFoundationDiscussionService(); 
     service.Initialize(new Microsoft.TeamFoundation.Client.TfsTeamProjectCollection(uri)); 
     IDiscussionManager discussionManager = service.CreateDiscussionManager(); 

     IAsyncResult result = discussionManager.BeginQueryByCodeReviewRequest(workItemId, QueryStoreOptions.ServerAndLocal, new AsyncCallback(CallCompletedCallback), null); 
     var output = discussionManager.EndQueryByCodeReviewRequest(result); 

     foreach (DiscussionThread thread in output) 
     { 
      if (thread.RootComment != null) 
      { 
       CodeReviewComment comment = new CodeReviewComment(); 
       comment.Author = thread.RootComment.Author.DisplayName; 
       comment.Comment = thread.RootComment.Content; 
       comment.PublishDate = thread.RootComment.PublishedDate.ToShortDateString(); 
       comment.ItemName = thread.ItemPath; 
       comments.Add(comment); 
      } 
     } 

     return comments; 
    } 

    static void CallCompletedCallback(IAsyncResult result) 
    { 
     // Handle error conditions here 
    } 

    public class CodeReviewComment 
    { 
     public string Author { get; set; } 
     public string Comment { get; set; } 
     public string PublishDate { get; set; } 
     public string ItemName { get; set; } 
    }