Creating work items using vb.net and JSON.

LoveToCode 161 Reputation points
2021-04-01T11:25:14.397+00:00

Hi, I'm working on a desktop application to create work items using vb.net. Where I find myself stuck is on how to use the JSON document object and it's properties (operations values and elements)

Below is my code. Any help is much appreciated.

Imports Microsoft.VisualStudio.Services.Common
Imports Microsoft.VisualStudio.Services.WebApi.Patch.Json
Imports Microsoft.VisualStudio.Services.WebApi.Patch
Imports Microsoft.VisualStudio.Services.WebApi
Imports Microsoft.TeamFoundation.WorkItemTracking.WebApi
Imports System.Net
Imports System.Net.Http.Headers
Imports Microsoft.TeamFoundation.WorkItemTracking.WebApi.Models
Imports Microsoft.VisualStudio.Services
'Imports Microsoft.VisualStudio.Services.WebApi.Patch.Json.JsonPatchDocument
'Imports Microsoft.TeamFoundation.WorkItemTracking.WebApi.WorkItemTrackingHttpClientBase
'Imports Microsoft.TeamFoundation.WorkItemTracking.WebApi.WorkItemTrackingHttpClient



Public Class Form1

    Public _Uri As String
    Public OrgName As String
    Public _Personalaccesstoken As String
    Public _Projectname As String
    Private w As Object

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load


        OrgName = "https://dev.azure.com/mytestorg"
        _Personalaccesstoken = "pattoken"
        _Projectname = "testproject"


        'VssBasicCredential credentials = New VssBasicCredential("", _Personalaccesstoken)

        Dim credentials = New VssBasicCredential("", _Personalaccesstoken)

        Dim JPDocument As New JsonPatchDocument



        'With JPDocument                             [ here I don't know what to do ]
        '    .Item(1).Operation = Operation.Add
        '    .Item(1).Path = "/fields/System.Title"
        '    .Item(1).Value = "Visual basic rocks"
        'End With

        Dim _Uri = New Uri(OrgName)

        Dim c As New VssConnection(_Uri, credentials)
        Dim wclient As New WorkItemTrackingHttpClient(_Uri, credentials)

        wclient = c.GetClient(Of WorkItemTrackingHttpClient)

        Try
            Dim w As WorkItem
            w = wclient.CreateWorkItemAsync(JPDocument, _Projectname, "Epic").Result

        Catch ex As Exception

        End Try





    End Sub
End Class
Developer technologies VB
0 comments No comments
{count} votes

Accepted answer
  1. Karen Payne MVP 35,586 Reputation points Volunteer Moderator
    2021-04-01T11:55:15.487+00:00

    Hello,

    Take a look at ApplyTo (which is how to perform an update), a decent description and example

    <Route("api/[controller]")>  
    Public Class ContactsController  
    	Inherits Controller  
      
    	Private contact As New Contact With {  
    		.FirstName = "Ben",  
    		.LastName = "Foster",  
    		.Age = 30,  
    		.Links = New List(Of String) From {"http://benfoster.io"}  
    	}  
      
      
        <HttpPatch>  
        Public Function Patch(<FromBody> ByVal ContactPatch As JsonPatchDocument(Of Contact)) As IActionResult  
            Dim patched = contact.Copy()  
            ContactPatch.ApplyTo(patched, ModelState)  
      
            If Not ModelState.IsValid Then  
                Return New BadRequestObjectResult(ModelState)  
            End If  
      
            Dim model = New With {  
                Key .original = contact,  
                Key .patched = patched  
            }  
      
            Return Ok(model)  
        End Function  
    End Class  
    
     
    

0 additional answers

Sort by: Most helpful

Your answer

Answers can be marked as Accepted Answers by the question author, which helps users to know the answer solved the author's problem.