2017-11-03 1 views
-1

Der Versuch, die zuletzt eingecheckten Informationen mithilfe der Klasse TfvcHttpClient aus einem bestimmten Ordner in Team Foundation Server mithilfe seiner Client-API aus einer Konsolenanwendung abzurufen.Abruf der zuletzt eingecheckten Informationen mithilfe von TfvcHttpClient Clas

Bitte helfen, wie kann ich es erreichen? Ich habe persönliche Zugriffstoken und unten erwähnt ist in der Lage, indem Sie es verbinden:

Code:

string uri = _uri; 

string personalAccessToken = _personalAccessToken; 

string project = _project; 

string credentials = Convert.ToBase64String(System.Text.ASCIIEncoding.ASCII.GetBytes(string.Format("{0}:{1}", "", personalAccessToken))); 


//create wiql object 
     var wiql = new 
     { 
      query = "Select [State], [Title] " + 
        "From WorkItems " + 
        "Where [Work Item Type] = 'Bug' " + 
        "And [System.TeamProject] = '" + project + "' " + 
        "And [System.State] <> 'Closed' " + 
        "Order By [State] Asc, [Changed Date] Desc" 
     }; 

     using (var client = new HttpClient()) 
     { 
      client.BaseAddress = new Uri(uri); 
      client.DefaultRequestHeaders.Accept.Clear(); 
      client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json")); 
      client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", credentials); 

      //serialize the wiql object into a json string 
      var postValue = new StringContent(JsonConvert.SerializeObject(wiql), Encoding.UTF8, "application/json"); //mediaType needs to be application/json for a post call 

      //send query to REST endpoint to return list of id's from query 
      var method = new HttpMethod("POST"); 
      var httpRequestMessage = new HttpRequestMessage(method, uri + "/_apis/wit/wiql?api-version=2.2") { Content = postValue }; 
      var httpResponseMessage = client.SendAsync(httpRequestMessage).Result; 
} 

habe ich versucht, Code unten erwähnt zu erreichen:

VssConnection connection = new VssConnection(serverUrl, new 
VssBasicCredential(string.Empty, _personalAccessToken)); 

      var buildServer = connection.GetClient<BuildHttpClient>(); // connect to the build server subpart 
      var sourceControlServer = connection.GetClient<Microsoft.TeamFoundation.SourceControl.WebApi.TfvcHttpClient>(); // connect to the TFS source control subpart 

      var changesets = buildServer.GetChangesBetweenBuildsAsync("client-rsa", 1, 5).Result; 
      foreach (var changeset in changesets) 
      { 
       var csDetail = sourceControlServer.GetChangesetAsync("client-rsa", Convert.ToInt32(changeset.Id.Replace("C", string.Empty).Trim()), includeDetails: true).Result; 
       var checkinNote = csDetail.CheckinNotes?.FirstOrDefault(_ => _.Name == "My check-in note"); 
       if (checkinNote != null) 
       { 
        Console.WriteLine("{0}: {1}", changeset.Id, changeset.Message); 
        Console.WriteLine("Check-in note: {0}", checkinNote.Value); 
       } 
       else 
        Console.WriteLine("Warning: {0} has no check-in note", changeset.Id); 
      } 
+0

Welches Problem haben Sie? Das von Ihnen bereitgestellte Codebeispiel interagiert in keiner Weise mit der Versionskontrolle. Hast du die Dokumentation gelesen? –

+0

Daniel der Code, den ich gepostet habe Ich benutze es um Arbeitsinformationen zu erhalten und ich möchte Hilfe zum Abrufen der neuesten eingecheckten Informationen mit TfvcHttpClient Klasse aus einem bestimmten Ordner in TeamFoundationServer mit seinem Client HTTP API – Veejay

+0

Okay, und was haben Sie versucht, und was funktioniert nicht mit dem Code, den du geschrieben hast? –

Antwort

0

Hier ist die einfache Probe Code, der TfvcHttpClient verwendet, um die letzte Änderungssatzinformation zu erhalten:

Verwandte Themen