Apr 22, 2008

Microsoft.TeamFoundation.WorkItemTracking.Client

I just figured out how easy it is to get access to TFS work items. In my case I was interested in linked work items of a given work item ID:

string workItemStore = ConfigurationManager.AppSettings["WorkItemStore"];

store = new WorkItemStore(workItemStore);


to connect to the TFS server and then

WorkItem m_workItem = store.GetWorkItem(int.Parse(this.tbID.Text));

 

if (m_workItem != null)

{

    lblWorkItem.Text = m_workItem.Title;

 

    foreach (Link link in m_workItem.Links)

    {

 

        RelatedLink rl = link as RelatedLink;

 

        if (rl != null)

        {

            WorkItem realtedWorkItem = m_workItem.Store.GetWorkItem(rl.RelatedWorkItemId);

            list.Add(realtedWorkItem);

        }

 

    }

}

 

dataGridView1.DataSource = list;


to list the linked work items in a simple grid.

When you want to query for WIs it should be possible to call:

// query retrieves all work items for the specified team project

string wiqlQuery = "SELECT [System.Id], [System.WorkItemType], [System.State], [System.AssignedTo], [System.Title] FROM WorkItems WHERE [System.TeamProject] = '" + teamProjectName + "' ORDER BY [System.WorkItemType], [System.Id]";

// execute the query and retrieve a collection of workitems

WorkItemCollection workitems = store.Projects[0].Store.Query(wiqlQuery);

// loop through work items

if (workitems.Count > 0)

{

    // select first Work Item

    retWi = workitems[0];

}


Note: To get rid of the assembly load exception just reference the shared assemblies from the disk path and do not use the GAC ones!

No comments:

Post a Comment