Team Server Event Handlers made easy…

Audience

Everyone

Will, not really…

I work for a rather large organization and I wanted an easy way for power users of team system to deploy event handlers for the Team Foundation Server events. Essentially they create an assembly with as many EventHandler classes as they like and they can upload their assembly through an administration system, which in turn executes any handlers that exist on the system for any events.

The Event Handler class format:

<EventHandler(EventType:=EventTypes.WorkItemChangedEvent, LogEmail:=someone@company.com)>_

<Logging(Enable:=True, Verbose:=True) _

Public Class MyEventHandler

       Inherits AEventHandler(of WorkItemChangedEvent)

 

       Public Sub Run(TeamServer as TeamFoundation Server, e as EventHandlerArgs(of WorkItemChangedEvent))

           ‘ Run any code for the event

       End Sub

 

       Public Sub IsValid(TeamServer as TeamFoundation Server, e as EventHandlerArgs(of WorkItemChangedEvent))

            ‘ Check validity of the event

       End Sub

 

End Class

 

Public Class EventHandlerArgs(Of TEvent as {ATfsEvent})

    …

    ‘ This is the type of event that is being created as an enumerator   

    Public Readonly Property EventType as EventTypes

    …

    ‘ This is the actual body of the event as a WorkItemChangedEvent or CheckInEvent etc..

    Public Readonly Property [Event] as TEvent

    …

    ‘ This holds the URL of the Team Foundation Server server that the event originated from

    Public Readonly Property Identity as TfsIdentity

     … 

    ‘ The subscription info shows information about the subscription options

    Public Readonly Property SubscriptionInfo as SubscritpionInfo

     …

    Public Sub New(ByVal EventType as EventTypes, ByVal [Event] as TEvent, ByVal Identity as TfsIdentity, ByVal SubscriptionInfo as SubscritpionInfo)

    …

End Class

There is then a system that handles all of the events and is subscribed through the Bizsubscribe tool, but that allows a user to administer their own EventHandler’s through and admin system (Web, Form or XBAP) through a bunch of web services. There is a lot of code, and not enough room to put it up here, I may start a CodePlex project. I will be adding the admin system for this to our TeamPlain site and I may set it up to deploy as such. I will also require to create a visual studio project template thingy.

I am afraid I had to code from memory, so any errors or omissions are just my a sign of me getting old, but I hope you get the point and the ease with which you could write and deploy EventHandler’s with this.

Technorati Tags:    

Create a conversation around this article

Share on Facebook
Share on Twitter
Share on Linkdin

Read more

Martin Hinshelwood
In organizational development and team dynamics, Agile (as the Agile Manifesto delineates) and Scrum (as the Scrum Guide outlines) guide teams not by solving their problems but by illuminating the issues that demand attention. These frameworks aim to identify and spotlight the challenges within a team or organization’s processes, effectively …
Martin Hinshelwood
This week, I participated in a Scrum.org Webinar hosted by Sabrina Love (Scrum.org Product Owner) as well as my colleagues, Joanna Płaskonka, Ph.D. and Alex Ballarin to discuss the state of learning and how immersive learning is the future of training. You can watch the video below to hear what …
Martin Hinshelwood
For a long time now I have been searching for that perfect domain that epitomised the vision, the why, of what I am trying to achieve with my customers and the industry at large. Now I have found it in http://nkdagility.com
Martin Hinshelwood
At the MVP Summit I was appalled by the number of people who asked questions about new features for supporting hierarchical tasks! I shared a disgusted look with Peter Provost and we had a quick (and I mean really quick) conversation that resulted in this post. it really comes down …