I'm trying to figure out a way to find details about a Code Review Request / Response item in TFS2012.
I can query for all Code Review Request/Response items in the following way:
const string TfsUri = "http://mytfsserver:8080/tfs/Default ProjectCollection";
var tfs = new TfsTeamProjectCollection(new Uri(TfsUri));
var store = tfs.GetService<WorkItemStore>();
var versionStore = tfs.GetService<Microsoft.TeamFoundation.VersionControl.Client.VersionControlServer>();
var queryText = "SELECT [System.Id],
FROM WorkItems
WHERE [System.WorkItemType] = 'Code Review Request'
or [System.WorkItemType] = 'Code Review Response'";
var query = new Query(store, queryText);
var result = query.RunQuery().OfType<WorkItem>();
This gives me a list of WorkItem
types. When I loop over the result.FirstOrDefault().Fields
property, it does give me some usefull information about the ShelveSet which is related to the Code Review, the "Associated Context". Using this information, I can query for the ShelveSet:
var versionStore = tfs.GetService<VersionControlServer>();
var shelveset = versionStore.QueryShelvesets("someCodeReviewId_xxxx","someUserName");
this gives me a ShelveSet
item, but that's where I get stuck.
I've looked into the Microsoft.TeamFoundation.CodeReview
namespace provided by both Microsoft.TeamFoundation.CodeReview.Components
and Microsoft.TeamFoundation.CodeReview.Controls
libraries, but this doesn't help me further either.
My question is: How can I find the actual comments made on a ShelveSet during a Code Review (both General comments and File comments) through the TFS API?