I was sitting in Richard’s Scrum course last week when he mentioned “I wish we had notepad for creating work items”.   Since I had that hour kind of free I decided to write it for him.

While I wanted the finished product to be a Windows gadget I decided to initially shim the UI in WPF…See Below.

image

The next step was to implement the the “Save” Button.

 

Imports Microsoft.TeamFoundation.Client
Imports Microsoft.TeamFoundation.WorkItemTracking.Client

Public Class TFSnotePad
    Public Function addWI(ByVal title As String, ByVal desc As String) As String
        Dim tfsServer As String = "http://localhost:8080/tfs"
        Dim teamFoundationServer1 As Microsoft.TeamFoundation.Client.TfsTeamProjectCollection = Microsoft.TeamFoundation.Client.TfsTeamProjectCollectionFactory.GetTeamProjectCollection(New Uri(tfsServer))
        teamFoundationServer1.Authenticate()
        Dim workItemStore1 As New WorkItemStore(teamFoundationServer1)
        teamFoundationServer1.Authenticate()
        Dim WorkItemStore As WorkItemStore = New WorkItemStore(tfsServer)
        Dim tfsProject As Project = WorkItemStore.Projects(0)
        Dim wIType As WorkItemType = tfsProject.WorkItemTypes("Bug")
        Dim workItem As WorkItem = New WorkItem(wIType)
        workItem.Title = Now.ToLongTimeString + title
        workItem.Description = desc
        Dim result As ArrayList = workItem.Validate()

        If result.Count > 0 Then
            Return (result(0).ToString + "There was an error adding this work item to the work item repository")
        Else
            workItem.Save()
        End If

        For Each pr In WorkItemStore.Projects
            Return ("Added work items to: " + pr.Name.ToString)

        Next
    End Function
End Class

…I only needed to add references to the following three assemblies

image

And presto I was done!

…Now to get it working as a COM object from Javascript in a gadget (a Future post<g>)

Thanks for the great class Richard!