2012-05-10 2 views
2

이것은 TeamCitySharp 서버에 Json 연결을 설정하는 코드입니다. 로컬 호스트는 내 Json 연결입니다. 지금 당장은 localhost로 갈 때 시작 날짜를 표시하려고 시도하지만 null로 표시됩니다. 이 문제를 해결하는 방법에 대한 아이디어가 있습니까?팀 도시 샤프 서버에서 시작 날짜를 얻으려고 시도합니다

HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://localhost:81/Status/AllStatuses"); 
      var response = request.GetResponse(); 
      var reader = new StreamReader(response.GetResponseStream()); 
      var responseString = reader.ReadToEnd(); 

      var serializer = new JavaScriptSerializer(); 
      serializer.RegisterConverters((new[] { new DynamicJsonConverter() })); 
      dynamic obj = serializer.Deserialize(responseString, typeof(object)); 

      foreach (var objects in obj) 
      {  

       foreach (var project in client.Projects) 
       { 


        foreach (var build in project.Builds) 
        { 
         bs.date = project.ProjectStartDate.ToString();   

이것은 Jsonresult를 호출하는 별도의 프로젝트에서 다른 컨트롤러에 있습니다.

public JsonResult AllStatuses() //from the json called in the _client view 
    { 
     var buildStatuses = new List<BuildStatus>(); 

     var projects = Client.AllProjects(); 

     //var projects = storeDB.Projects.Include("Builds").ToList(); 
     //var buildStatuses = new List<BuildStatus>(); 


     foreach (var project in projects) 
     { 
      try 
      { 
       var buildConfigs = Client.BuildConfigsByProjectId(project.Id); 

       foreach (var buildConfig in buildConfigs) 
       { 
        var build = Client.LastBuildByBuildConfigId(buildConfig.Id); 

        var b = new BuildStatus(); 
        b.id = buildConfig.Id.ToString(); 
        if (b.date != null) 
         b.date = b.date.ToString(); 
        if (b.status != null) 
         b.status = build.Status.ToString(); 
        buildStatuses.Add(b); 
       } 
      } catch { } 
     } 
     //var query = buildStatuses.OrderBy(x => x.status); // Create a sorted list from Error - Unknown    

     return Json(buildStatuses, JsonRequestBehavior.AllowGet); 
    } 
+0

내 학사 (buildstatus)는 POCO입니다 :

IList builds = new RemoteTc().Connect(h => h.ToHost("teamcity.codebetter.com").AsGuest()) .GetBuilds(b => b.BuildConfiguration(c => c.Id("FluentTc_FluentTcDevelop")) .Branch(r => r.Branched()), i => i.IncludeStatusText().IncludeStartDate().IncludeFinishDate());

라이브러리는 nuget 패키지로 사용할 수 있습니다. – moutonc

+0

문제를 복제 할 수는 있지만 해결 방법은 없습니다. – John

답변

0

이 질문은 아직 질문에 대한 답변과 관련이 없습니다. 나는 같은 문제를 겪을지도 모르는 다른 사람들을 위해 대답 할 것이다.

REST API를 통해 TeamCity에 쉽게 액세스 할 수있는 FluentTc 라이브러리가 있습니다. 이 검색 할 수있는 방법은 시작과 함께 빌드 및/또는 완료 날짜 : https://www.nuget.org/packages/fluenttc

관련 문제