2014-02-21 1 views
0

Не удается найти Whats Новое поле на TFS через C#. Я могу получить WorkItem, но где Whats New?Как получить Whats Новое значение поля из TFS

Как получить WorkItem:

public WorkItemCollection GetAllWorkItemsFromCollection(String collectionName, String date) 
    { 
     String collNameTemp = String.Empty; 
     try 
     { 

      var collNodes = this.GetAllCollectionsRaw(); 
      foreach (var c in collNodes) 
      { 

       TmpCl cl = new TmpCl(c, _InstanceId, _configurationServer); 

       var wis = cl.teamProjectCollection.GetService<WorkItemStore>(); 

       foreach (var p in cl.projCollectionInfo) 
       { 

        if (p.Name == collectionName) 
        { 

string newnewquery= @"SELECT [System.Id], [Microsoft.VSTS.Common.ClosedDate], [System.WorkItemType], [System.Title], [System.AssignedTo], [System.State] 

      FROM WorkItems 

      WHERE [System.TeamProject] = '" + p.Name + "' AND " + 

     " [System.WorkItemType] = 'Task' AND [System.ChangedDate] > '" + date + "' " + 

     " ORDER BY [System.Id]"; 


         collNameTemp = p.Name; 


         Query qry1 = new Query(wis,newnewquery, null, false); 
         ICancelableAsyncResult car1 = qry1.BeginQuery(); 

         WorkItemCollection items1 = qry1.EndQuery(car1); 


         return items1; 

        } 
        else { } 
       } 


      } 

     } 
     catch (Exception ex) 
     { 
      Console.WriteLine(ex.Message); 
     } 

     return null;  

public TmpCl(CatalogNode c,String InstanceId,TfsConfigurationServer configurationServer) 
    { 
     try 
     { 
      Guid collectionId = new Guid(c.Resource.Properties[InstanceId]); 
      teamProjectCollection = configurationServer.GetTeamProjectCollection(collectionId); 

      Iis = (ICommonStructureService)teamProjectCollection.GetService(typeof(ICommonStructureService)); 
      projCollectionInfo = Iis.ListAllProjects(); 


     } 
     catch (Exception ex) 
     { 
      Console.WriteLine(ex.Message); 
     } 
    } 

Таким образом, я могу получить законченную работу, например:

public String GetCompletedWorkByTaskWI(String collectionName, WorkItem taskWI) 
    { 
     try 
     { 
      foreach (Field f in taskWI.Fields) 
      { 
       if (f.Value != null && f.Name.Equals("Completed Work")) 
       { 

        return Convert.ToString(f.Value); 

       } 
       else if (f.Value == null && f.Name.Equals("Completed Work")) 
       { 
        return "0"; 
       } 
      } 
     } 
     catch (Exception ex) 
     { 
      Console.WriteLine(ex.Message); 
     } 
     return "0"; 
    } 

Но как получить Whats Новое поле? Я не могу найти его!

EDIT: К сожалению, это был еще один SQL-запрос. Этот запрос использует для получения объектов WorkItem.

PS - Поля:

DesiredCompliteDate 
Area Name 
Finish Date 
Start Date 
Completed Work 
Original Estimate 
Remaining Work 
Activity 
Integration Build 
Stack Rank 
Priority 
Closed By 
Closed Date 
Activated By 
Activated Date 
State Change Date 
Related Link Count 
History 
Description 
Created By 
Created Date 
Work Item Type 
Assigned To 
Reason 
Changed By 
Rev 
State 
Title 
Authorized As 
Area ID 
ID 
Changed Date 
Revised Date 
Area Path 
Node Name 
Attached File Count 
Hyperlink Count 
Team Project 
External Link Count 
Iteration ID 
Iteration Path 

EDIT: Это запрос для ПОЛУЧИТЬ задачи, содержащее Что новое значение (TFS генератор запросов):

SELECT [System.Id], [System.WorkItemType], [System.Title], 
     [System.AssignedTo], [System.State] 
    FROM WorkItems WHERE [System.TeamProject] = @project 
        AND [System.WorkItemType] &lt;&gt; '' 
        AND [System.State] &lt;&gt; '' 
        AND [WW.WhatsNew] CONTAINS '/' 
    ORDER BY [System.Id] 
+0

Что такое определение того, что нового. Возможно, нет такого поля, которое бы соответствовало этому требованию. – ChrisBint

+0

Что нового, так как разработчики пишут, что новые функции добавляют в эту задачу. – user2545071

+1

Нет поля с названием «Что нового». Кроме того, FYI, ваша обработка исключений плоха. Просто избавиться от блоков try/catch поможет вам. –

ответ

0

Я нашел это поле.

ansqwer Получить Ревизии IS-от WorkItem, получить Revision и иди:

if ((f.Name.Equals(Consts.WHATS_NEW) && f.Value != null)) 
        this.WhatsNew = (String)f.Value; 
1

Я хотел бы предложить, чтобы добавить What's new поля к списку SELECT:

SELECT [System.Id], [System.WorkItemType], [System.Title], 
     [System.AssignedTo], [System.State], [WW.WhatsNew] 
    FROM WorkItems WHERE [System.TeamProject] = @project 
        AND [System.WorkItemType] &lt;&gt; '' 
        AND [System.State] &lt;&gt; '' 
        AND [WW.WhatsNew] CONTAINS '/' 
    ORDER BY [System.Id] 

Многие другие поля, которые возвращаются, являются TFS out- я полагаю, что некоторые из них возвращаются, даже если они явно не содержатся в списке SELECT.

+0

Запрос ссылается на поле, которое не существует. Ошибка вызвана «[WW.WhatsNew] – user2545071