Comment retrouver l’adresse du Team System Web Access avec le TFS SDK 2010 ?

Pour continuer la découverte du TFS SDK, je vous propose de découvrir comment retrouver l’adresse du Team System Web Access (TSWA) d’un serveur Team grâce au TFS SDK. Pour info je n’ai trouvé aucune documentation concernant cette partie du SDK sur la MSDN.

Pourquoi avoir besoin de récupérer les URL ? Tout simplement lorsque l’on étend les fonctionnalités de TFS vers d’autres outils tiers. Par exemple, dans une fonctionnalité de BOWIE 2010 d’envoie de Work Items par mail, je voulais, pour chacun des work items, avoir un lien qui pointe vers la page d’édition du work item comme indiqué ci-dessous :


image

Pour cela nous avons besoin d’une instance de la classe TeamFoundationServer que l’on trouve dans l’assembly Microsoft.TeamFoundation.Client.dll. Il faut ensuite récupérer une instance de la classe TswaClientHyperlinkService via la méthode GetService de l’objet TeamFoundationServer :

            TeamFoundationServer server = TeamFoundationServerFactory.GetServer("http://localhost:8080/tfs/DefaultCollection");
            TswaClientHyperlinkService tswa = server.GetService<TswaClientHyperlinkService>();

Grâce à cette classe nous allons pouvoir récupérer les url du Team System Web Access. Dans mon cas, pour récupérer l’url d’un work item à partir de son Id, il suffit d’utiliser la méthode GetWorkItemEditorUrl(int id) :

            int wiId = 3;
            Uri wiUri = tswa.GetWorkItemEditorUrl(wiId);

On obtient une URL du style : http://localhost:8080/tfs/web/wi.aspx?pcguid=7e6d1e34-000d-4adb-ad5e-93db70187570&id=3

Cette URL permet d’accéder à la page suivante :


image

Voici quelques unes des méthodes de la classe TswaClientHyperlinkService permettant de récupérer les url d’objets TFS:

  • GetChangesetDetailsUrl(int changeSetId)
  • GetHomeUrl(Uri projectUri)
  • GetShelvesetDetailsUrl(string shelvesetName, string shelvesetOwner)
  • GetSourceExplorerUrl(string serverItemPath)
  • GetViewBuildDetailsUrl(Uri buildUri)
  • GetWorkItemQueryEditorUrl(Uri projectUri, string queryPath)

La prochaine fois je vous ferai découvrir l’API de Build du TFS SDK, via le type IBuildServer.

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s