private static JsonPatchDocument BuildDocument(IDictionary <string, object> fields, Operation operation) { var operations = fields .Select(f => new JsonPatchOperation() { Path = f.Key, Operation = operation, Value = f.Value }).ToList(); var document = new Microsoft.VisualStudio.Services.WebApi.Patch.Json.JsonPatchDocument(); document.AddRange(operations); return(document); }
//public async Task<string> InsertWorkItem(string ProjectName, string Title, string AssignedTo, string Description) public async Task <IActionResult> InsertWorkItem([FromBody] Models.WorkItem WI) { await Security.GetSecretKeys(); VssConnection connection = null; connection = new VssConnection(new Uri(Security.DevOpsAccount), new VssBasicCredential(string.Empty, Security.PAT)); WorkItemTrackingHttpClient witClient = connection.GetClient <WorkItemTrackingHttpClient>(); var document = new Microsoft.VisualStudio.Services.WebApi.Patch.Json.JsonPatchDocument(); document.Add( new Microsoft.VisualStudio.Services.WebApi.Patch.Json.JsonPatchOperation() { Path = @"/fields/System.Title", Operation = Microsoft.VisualStudio.Services.WebApi.Patch.Operation.Add, Value = WI.Title }); document.Add( new Microsoft.VisualStudio.Services.WebApi.Patch.Json.JsonPatchOperation() { Path = @"/fields/System.AssignedTo", Operation = Microsoft.VisualStudio.Services.WebApi.Patch.Operation.Add, Value = WI.AssignedTo }); document.Add( new Microsoft.VisualStudio.Services.WebApi.Patch.Json.JsonPatchOperation() { Path = @"/fields/System.Description", Operation = Microsoft.VisualStudio.Services.WebApi.Patch.Operation.Add, Value = WI.Description }); var worktime = witClient.CreateWorkItemAsync(document, WI.ProjectName, "Task").Result; return(StatusCode(StatusCodes.Status201Created, "Work Item with Id " + worktime.Id + " created sucessfully!")); }