public void WorkItemTracking_RecycleBin_PermenentlyDeleteMultipleItems_Success() { // arrange WorkItems workItemsRequest = new WorkItems(_configuration); RecycleBin recyclebinRequest = new RecycleBin(_configuration); WorkItemPatchResponse.WorkItem createResponse; string[] ids = new string[3]; // act createResponse = workItemsRequest.CreateWorkItem(_configuration.Project); ids[0] = createResponse.id.ToString(); createResponse = workItemsRequest.CreateWorkItem(_configuration.Project); ids[1] = createResponse.id.ToString(); createResponse = workItemsRequest.CreateWorkItem(_configuration.Project); ids[2] = createResponse.id.ToString(); foreach (var id in ids) { var deleteResponse = workItemsRequest.DeleteWorkItem(id); } GetRestoreMultipleWorkItemsResponse.Items response = recyclebinRequest.PeremenentlyDeleteMultipleItems(ids); //assert Assert.AreEqual(HttpStatusCode.OK, createResponse.HttpStatusCode); Assert.AreEqual(HttpStatusCode.OK, response.HttpStatusCode); workItemsRequest = null; recyclebinRequest = null; }
public GetRestoreMultipleWorkItemsResponse.Items PeremenentlyDeleteMultipleItems(string[] ids) { GetRestoreMultipleWorkItemsResponse.Items viewModel = new GetRestoreMultipleWorkItemsResponse.Items(); WorkItemBatchPost.BatchRequest[] postDocument = new WorkItemBatchPost.BatchRequest[3]; Dictionary <string, string> headers = new Dictionary <string, string>() { { "Content-Type", "application/json-patch+json" } }; var i = 0; foreach (var id in ids) { postDocument[i] = new WorkItemBatchPost.BatchRequest { method = "DELETE", uri = "/_apis/wit/recyclebin/" + id + "?api-version=3.0-preview", headers = headers }; i = i + 1; } ; using (var client = new HttpClient()) { client.DefaultRequestHeaders.Accept.Clear(); client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json")); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", _credentials); var postValue = new StringContent(JsonConvert.SerializeObject(postDocument), Encoding.UTF8, "application/json"); var method = new HttpMethod("POST"); var request = new HttpRequestMessage(method, _configuration.UriString + "_apis/wit/$batch?api-version=3.0-preview") { Content = postValue }; var response = client.SendAsync(request).Result; if (response.IsSuccessStatusCode) { viewModel = response.Content.ReadAsAsync <GetRestoreMultipleWorkItemsResponse.Items>().Result; } else { dynamic responseForInvalidStatusCode = response.Content.ReadAsAsync <dynamic>(); Newtonsoft.Json.Linq.JContainer msg = responseForInvalidStatusCode.Result; viewModel.Message = msg.ToString(); } viewModel.HttpStatusCode = response.StatusCode; return(viewModel); } }
public GetRestoreMultipleWorkItemsResponse.Items RestoreMultipleItems(string[] ids) { GetRestoreMultipleWorkItemsResponse.Items viewModel = new GetRestoreMultipleWorkItemsResponse.Items(); WorkItemBatchPost.BatchRequest[] postDocument = new WorkItemBatchPost.BatchRequest[3]; Dictionary <string, string> headers = new Dictionary <string, string>() { { "Content-Type", "application/json-patch+json" } }; Object[] postBody = new Object[1]; postBody[0] = new { op = "replace", path = "/IsDeleted", value = "false" }; var i = 0; foreach (var id in ids) { postDocument[i] = new WorkItemBatchPost.BatchRequest { method = "PATCH", uri = "/_apis/wit/recyclebin/" + id + "?api-version=3.0-preview", headers = headers, body = postBody }; i = i + 1; } ; using (var client = new HttpClient()) { client.DefaultRequestHeaders.Accept.Clear(); client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json")); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", _credentials); var postValue = new StringContent(JsonConvert.SerializeObject(postDocument), Encoding.UTF8, "application/json"); var method = new HttpMethod("POST"); var request = new HttpRequestMessage(method, _configuration.UriString + "_apis/wit/$batch?api-version=3.0-preview") { Content = postValue }; var response = client.SendAsync(request).Result; if (response.IsSuccessStatusCode) { viewModel = response.Content.ReadAsAsync <GetRestoreMultipleWorkItemsResponse.Items>().Result; } viewModel.HttpStatusCode = response.StatusCode; return(viewModel); } }