Cambiare il current sprint nelle query di TFS

You think it's good?

Se utilizzate le query di TFS per monitorare l’andamento di uno sprint vi sarete trovati nella condizione di dover modificare l’IterationPath al cambio dello sprint corrente. Questa noiosa attività può essere evitata con qualche riga di codice e l’aiuto delle API di TFS.

Prima di tutto aggiungiamo come referenze le seguenti librerie al progetto:

Se non le trovate tra gli assembly del framework cercatele nella seguente cartella di Visual Studio: C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\ReferenceAssemblies\v2.0\.

Poi ci colleghiamo alla collection:

Recuperiamo le informazioni sulla struttura dei progetti presenti nella collection attraverso il servizio ICommonStructureService:

Il servizio ICommonStructureService non è l’unico modo per conoscere le iterazioni di un progetto, ma è il solo che ci permette di recuperare le date di inizio e di fine sprint indispensabili per capire qual è lo sprint corrente.

Con il metodo ListStructures otteniamo le aree e le iterazioni del progetto come struttura di nodi. Da questa struttura prendiamo il nodo principale delle iterazioni e attraverso il metodo GetNodesXml portiamo il tutto in un documento xml che possiamo poi ispezionare con LINQ:

Tra tutti i nodi prendiamo quelli che non hanno figli (ovvero gli sprint):

Per ogni nodo carichiamo le informazioni in una lista:

Per rendere più agevole l’operazione ho creato una classe Iteration contente tutte le informazioni di uno sprint:

… e una classe Iterations, come lista di Iteration, che fornisce dei metodi per recuperare lo sprint corrente e quelli passati:

Attraverso il WorkItemStore recuperiamo le query di ogni progetto e per ogni query andiamo a sostituire l’iterazione passata con la corrente:

Il metodo AllQueries è un extension method che recupera tutte le query di un progetto come mostrato da Ewald Hofman in questo articolo. Se tutto è andato secondo i piani possiamo salvare le modifiche alle query attraverso il metodo Save dell’oggetto QueryHierarchy:

Come ulteriore conferma della correttezza dell’operazione possiamo eseguire la query sullo store. Ecco come fare:

Nella sezione materiale eventi del sito di 1nn0va, sotto la cartella ALM Saturday, trovate la solution di Visual Studio completa.

Comments are closed.