2016-07-28 9 views
1

aus meiner ASP.Net-App Ich möchte alle Code-Kommentare für einen bestimmten Änderungssatz mithilfe des C# TFS-Client-SDK (oder der REST-API, falls möglich) abrufen. prem TFS 2015 Update 3. Ich habe bereits das nugget-Paket Microsoft.TeamFoundationServer.ExtendedClient installiert. Ich weiß, wie man einen Änderungssatz oder eine bestimmte Datei bekommt - aber ich weiß nicht, wie ich die Kommentare laden soll.Abrufen von "Lightweight Code Comments" mithilfe der Team Foundation Server-API

Lightweight code comments

Nachdem die Kommentare bekommen, Ich mag auch (add) ändern Kommentare zu einem changeset (nicht in einer Datei).

Thx, für Ihre Hilfe!

Antwort

0

Dies kann mithilfe von Microsoft.TeamFoundation.Discussion.Client im TFS-Client-SDK erreicht werden. Folgendes ist das Codebeispiel:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using Microsoft.TeamFoundation.Client; 
using Microsoft.TeamFoundation.Discussion.Client; 
using Microsoft.TeamFoundation.VersionControl.Client; 

namespace LightweightCodeView 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      string projecturi = "https://xxx:8080/tfs/"; 
      int changesetid = xxx; 
      TfsTeamProjectCollection ttpc = new TfsTeamProjectCollection(new Uri(projecturi)); 
      VersionControlServer vcs = ttpc.GetService<VersionControlServer>(); 
      Changeset cset = vcs.GetChangeset(changesetid); 
      TeamFoundationDiscussionService tfds = new TeamFoundationDiscussionService(); 
      tfds.Initialize(ttpc); 
      IDiscussionManager idm = tfds.CreateDiscussionManager(); 
      IAsyncResult iar = idm.BeginQueryByVersion(cset.ArtifactUri, QueryStoreOptions.ServerOnly, new AsyncCallback(Callback), null); 
      var threads = idm.EndQueryByVersion(iar); 
      foreach (DiscussionThread dt in threads) 
      { 
       Console.WriteLine(dt.RootComment.Content); 
       Console.WriteLine(dt.RootComment.Author.DisplayName); 
       Console.ReadLine(); 
      } 
     //Update Changeset comments 
     cset.Comment = "New Comments"; 
     cset.Update(); 
     } 
     static void Callback(IAsyncResult result) 
     { 
     } 
    } 
} 
+0

Vielen Dank! Funktioniert perfekt :) – Marius