lunedì 14 novembre 2011

How To: Do a TFS Query via C#

Una cosa sicuramente interessante di T.f.s è la gestione delle porprie query e di come lavorarci sopra.

Per comodo mi sono fatto un breve applicativo, per poter verificare che cosa ho aperto.

Ho creato un form è ho incluso le due referenze / librerie...
using Microsoft.TeamFoundation.Client;
using Microsoft.TeamFoundation.WorkItemTracking.Client;


public partial class frmQuery : Form
{

private string teamURL = "http://[URL]";

private string query = "SELECT * " +
" FROM WorkItems " +
" WHERE [System.TeamProject] " +
"=\"PATH\" and [System.AssignedTo] in " +
" ([User LIST]) " +
" ORDER BY [System.State] ";


private List<string> DefectList = new List<string>();

private NetworkCredential nc = new
NetworkCredential("[NomeUtente]", "[Password]", "[Dominio]");

public frmQuery()
{
InitializeComponent();

GetDefect();
}

public void GetDefect()
{

TfsTeamProjectCollection tpc = new
TfsTeamProjectCollection(new Uri(teamURL), nc);
WorkItemStore store = (WorkItemStore)tpc.GetService(typeof(WorkItemStore));


DefectList.Clear();

var wiCollection = store.Query(query);

// Iterate through all work items
foreach (WorkItem wi in wiCollection)
{
if (wi.Fields[35].Value.ToString() != "")
{
DefectList.Add(wi.Fields[35].Value.ToString()
+ "-" + wi.Fields[1].Value.ToString());
}
}
lstResult.DataSource = DefectList.ToArray<string>();
}
}


Ancora una volta il concetto è molto semplice, la resa è buona.

Nessun commento: