コード例 #1
0
        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;
        }
コード例 #2
0
ファイル: RecycleBin.cs プロジェクト: iatecbr/Sda.TimeTracker
        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);
            }
        }
コード例 #3
0
ファイル: RecycleBin.cs プロジェクト: iatecbr/Sda.TimeTracker
        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);
            }
        }