/// <summary> /// Update Iteration Dates /// </summary> /// <param name="project"></param> /// <param name="path"></param> /// <param name="startDate"></param> /// <param name="finishDate"></param> /// <returns></returns> public GetNodeResponse.Node UpdateIterationDates(string project, string path, DateTime startDate, DateTime finishDate) { try { CreateUpdateNodeViewModel.Node node = new CreateUpdateNodeViewModel.Node() { //name = path, attributes = new CreateUpdateNodeViewModel.Attributes() { startDate = startDate, finishDate = finishDate } }; GetNodeResponse.Node viewModel = new GetNodeResponse.Node(); using (var client = GetHttpClient()) { // serialize the fields array into a json string var patchValue = new StringContent(JsonConvert.SerializeObject(node), Encoding.UTF8, "application/json"); var method = new HttpMethod("PATCH"); // send the request var request = new HttpRequestMessage(method, project + "/_apis/wit/classificationNodes/iterations/" + path + "?api-version=" + _configuration.VersionNumber) { Content = patchValue }; var response = client.SendAsync(request).Result; if (response.IsSuccessStatusCode) { viewModel = response.Content.ReadAsAsync <GetNodeResponse.Node>().Result; viewModel.Message = "success"; } else { dynamic responseForInvalidStatusCode = response.Content.ReadAsAsync <dynamic>(); Newtonsoft.Json.Linq.JContainer msg = responseForInvalidStatusCode.Result; viewModel.Message = msg.ToString(); var errorMessage = response.Content.ReadAsStringAsync(); string error = Utility.GeterroMessage(errorMessage.Result.ToString()); this.LastFailureMessage = error; } viewModel.HttpStatusCode = response.StatusCode; return(viewModel); } } catch (Exception ex) { logger.Debug(DateTime.UtcNow.ToString("yyyy-MM-dd HH:mm:ss") + "\t" + "\t" + ex.Message + "\t" + "\n" + ex.StackTrace + "\n"); } return(new GetNodeResponse.Node()); }
/// <summary> /// Update Iteration Dates /// </summary> /// <param name="project"></param> /// <param name="path"></param> /// <param name="startDate"></param> /// <param name="finishDate"></param> /// <returns></returns> public GetNodeResponse.Node UpdateIterationDates(string project, string path, DateTime startDate, DateTime finishDate) { CreateUpdateNodeViewModel.Node node = new CreateUpdateNodeViewModel.Node() { //name = path, attributes = new CreateUpdateNodeViewModel.Attributes() { startDate = startDate, finishDate = finishDate } }; GetNodeResponse.Node viewModel = new GetNodeResponse.Node(); 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("Bearer", _credentials); // serialize the fields array into a json string var patchValue = new StringContent(JsonConvert.SerializeObject(node), Encoding.UTF8, "application/json"); var method = new HttpMethod("PATCH"); // send the request var request = new HttpRequestMessage(method, _configuration.UriString + project + "/_apis/wit/classificationNodes/iterations/" + path + "?api-version=" + _configuration.VersionNumber) { Content = patchValue }; var response = client.SendAsync(request).Result; if (response.IsSuccessStatusCode) { viewModel = response.Content.ReadAsAsync <GetNodeResponse.Node>().Result; viewModel.Message = "success"; } else { dynamic responseForInvalidStatusCode = response.Content.ReadAsAsync <dynamic>(); Newtonsoft.Json.Linq.JContainer msg = responseForInvalidStatusCode.Result; viewModel.Message = msg.ToString(); var errorMessage = response.Content.ReadAsStringAsync(); string error = Utility.GeterroMessage(errorMessage.Result.ToString()); this.LastFailureMessage = error; } viewModel.HttpStatusCode = response.StatusCode; return(viewModel); } }
public GetNodeResponse.Node CreateIteration(string project, string path) { CreateUpdateNodeViewModel.Node node = new CreateUpdateNodeViewModel.Node() { name = path //attributes = new CreateUpdateNodeViewModel.Attributes() //{ // startDate = startDate, // finishDate = finishDate //} }; GetNodeResponse.Node viewModel = new GetNodeResponse.Node(); 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); // serialize the fields array into a json string var postValue = new StringContent(JsonConvert.SerializeObject(node), Encoding.UTF8, "application/json"); var method = new HttpMethod("POST"); // send the request var request = new HttpRequestMessage(method, _configuration.UriString + project + "/_apis/wit/classificationNodes/iterations?api-version=2.2") { Content = postValue }; var response = client.SendAsync(request).Result; if (response.IsSuccessStatusCode) { viewModel = response.Content.ReadAsAsync <GetNodeResponse.Node>().Result; viewModel.Message = "success"; } 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 void WorkItemTracking_Nodes_UpdateIterationDates_Success() { // arrange ClassificationNodes request = new ClassificationNodes(_configuration); DateTime startDate = new DateTime(2016, 11, 29); DateTime finishDate = new DateTime(2016, 12, 17); string path = "Iteration Foo"; // act GetNodeResponse.Node response = request.UpdateIterationDates(_configuration.Project, path, startDate, finishDate); //assert Assert.AreEqual(HttpStatusCode.OK, response.HttpStatusCode); request = null; }
public void WorkItemTracking_Nodes_GetIteration_Success() { // arrange string path = System.Guid.NewGuid().ToString().ToUpper().Substring(0, 15); ClassificationNodes request = new ClassificationNodes(_configuration); // act GetNodeResponse.Node createResponse = request.CreateIteration(_configuration.Project, path); GetNodesResponse.Nodes getResponse = request.GetIteration(_configuration.Project, path); //assert Assert.AreEqual(HttpStatusCode.Created, createResponse.HttpStatusCode); Assert.AreEqual(HttpStatusCode.OK, getResponse.HttpStatusCode); request = null; }
public void WorkItemTracking_Nodes_RenameIteration_Success() { // arrange ClassificationNodes request = new ClassificationNodes(_configuration); string path = System.Guid.NewGuid().ToString().ToUpper().Substring(0, 15); string newName = System.Guid.NewGuid().ToString().ToUpper().Substring(0, 10) + "-Rename"; // act GetNodeResponse.Node responseCreate = request.CreateIteration(_configuration.Project, path); GetNodeResponse.Node responseUpdate = request.RenameIteration(_configuration.Project, path, newName); //assert Assert.AreEqual(HttpStatusCode.Created, responseCreate.HttpStatusCode); Assert.AreEqual(HttpStatusCode.OK, responseUpdate.HttpStatusCode); request = null; }
public void WorkItemTracking_Nodes_UpdateIterationDates_Success() { // arrange ClassificationNodes request = new ClassificationNodes(_configuration); DateTime startDate = new DateTime(2016, 11, 29); DateTime finishDate = new DateTime(2016, 12, 17); string path = System.Guid.NewGuid().ToString().ToUpper().Substring(0, 15); // act GetNodeResponse.Node responseCreate = request.CreateIteration(_configuration.Project, path); GetNodeResponse.Node responseUpdate = request.UpdateIterationDates(_configuration.Project, path, startDate, finishDate); //assert Assert.AreEqual(HttpStatusCode.Created, responseCreate.HttpStatusCode); Assert.AreEqual(HttpStatusCode.OK, responseUpdate.HttpStatusCode); request = null; }
public void WorkItemTracking_Nodes_DeleteIteration_Success() { // arrange ClassificationNodes request = new ClassificationNodes(_configuration); string masterIteration = System.Guid.NewGuid().ToString().ToUpper().Substring(0, 15) + "-MASTER"; string deleteIteration = System.Guid.NewGuid().ToString().ToUpper().Substring(0, 15) + "-delete"; // act GetNodeResponse.Node responseMaster = request.CreateIteration(_configuration.Project, masterIteration); GetNodeResponse.Node responseDelete = request.CreateIteration(_configuration.Project, deleteIteration); var responseMove = request.DeleteIteration(_configuration.Project, deleteIteration, responseMaster.id.ToString()); //assert Assert.AreEqual(HttpStatusCode.Created, responseMaster.HttpStatusCode); Assert.AreEqual(HttpStatusCode.Created, responseDelete.HttpStatusCode); Assert.AreEqual(HttpStatusCode.NoContent, responseMove); request = null; }
public void WorkItemTracking_Nodes_MoveArea_Success() { // arrange ClassificationNodes request = new ClassificationNodes(_configuration); string parent = System.Guid.NewGuid().ToString().ToUpper().Substring(0, 15) + "-PARENT"; string child = System.Guid.NewGuid().ToString().ToUpper().Substring(0, 15) + "-child"; // act GetNodeResponse.Node responseParent = request.CreateArea(_configuration.Project, parent); GetNodeResponse.Node responseChild = request.CreateArea(_configuration.Project, child); GetNodeResponse.Node responseMove = request.MoveArea(_configuration.Project, parent, responseChild.id); //assert Assert.AreEqual(HttpStatusCode.Created, responseParent.HttpStatusCode); Assert.AreEqual(HttpStatusCode.Created, responseChild.HttpStatusCode); Assert.AreEqual(HttpStatusCode.OK, responseMove.HttpStatusCode); request = null; }
public void WorkItemTracking_Nodes_CreateArea_Success() { // arrange ClassificationNodes request = new ClassificationNodes(_configuration); string path = "Area Foo"; // act GetNodeResponse.Node response = request.CreateArea(_configuration.Project, path); //assert if (response.Message.Contains("VS402371:")) { Assert.Inconclusive("Area path '" + path + "' already exists"); } else { Assert.AreEqual(HttpStatusCode.Created, response.HttpStatusCode); } request = null; }
public void WorkItemTracking_Nodes_CreateIteration_Success() { // arrange ClassificationNodes request = new ClassificationNodes(_configuration); string path = System.Guid.NewGuid().ToString().ToUpper().Substring(0, 15); // act GetNodeResponse.Node response = request.CreateIteration(_configuration.Project, path); //assert if (response.Message.Contains("VS402371: Classification node name " + path)) { Assert.Inconclusive("Iteration '" + path + "' already exists"); } else { Assert.AreEqual(HttpStatusCode.Created, response.HttpStatusCode); } request = null; }
/// <summary> /// Create Iterations /// </summary> /// <param name="projectName"></param> /// <param name="path"></param> /// <returns></returns> public GetNodeResponse.Node CreateIteration(string projectName, string path) { CreateUpdateNodeViewModel.Node node = new CreateUpdateNodeViewModel.Node() { name = path }; GetNodeResponse.Node viewModel = new GetNodeResponse.Node(); 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("Bearer", _credentials); // serialize the fields array into a json string //var patchValue = new StringContent(JsonConvert.SerializeObject(team), Encoding.UTF8, "application/json"); var jsonContent = new StringContent(JsonConvert.SerializeObject(node), Encoding.UTF8, "application/json"); var method = new HttpMethod("POST"); var request = new HttpRequestMessage(method, _configuration.UriString + string.Format("/{0}/_apis/wit/classificationNodes/iterations?api-version=1.0", projectName)) { Content = jsonContent }; var response = client.SendAsync(request).Result; if (response.IsSuccessStatusCode) { viewModel = response.Content.ReadAsAsync <GetNodeResponse.Node>().Result; } else { var errorMessage = response.Content.ReadAsStringAsync(); } viewModel.HttpStatusCode = response.StatusCode; } return(viewModel); }
public void WorkItemTracking_Nodes_CreateIteration_Success() { // arrange ClassificationNodes request = new ClassificationNodes(_configuration); DateTime startDate = new DateTime(2016, 11, 28); DateTime finishDate = new DateTime(2016, 12, 16); string path = "Iteration Foo"; // act GetNodeResponse.Node response = request.CreateIteration(_configuration.Project, path, startDate, finishDate); //assert if (response.Message.Contains("VS402371: Classification node name " + path)) { Assert.Inconclusive("Iteration '" + path + "' already exists"); } else { Assert.AreEqual(HttpStatusCode.Created, response.HttpStatusCode); } request = null; }
/// <summary> /// movie Iteration to parent /// </summary> /// <param name="projectName"></param> /// <param name="targetIteration"></param> /// <param name="sourceIterationId"></param> /// <returns></returns> public GetNodeResponse.Node MoveIteration(string projectName, string targetIteration, int sourceIterationId) { try { CreateUpdateNodeViewModel.Node node = new CreateUpdateNodeViewModel.Node() { id = sourceIterationId }; GetNodeResponse.Node viewModel = new GetNodeResponse.Node(); using (var client = GetHttpClient()) { var jsonContent = new StringContent(JsonConvert.SerializeObject(node), Encoding.UTF8, "application/json"); var method = new HttpMethod("POST"); var request = new HttpRequestMessage(method, string.Format("/{0}/_apis/wit/classificationNodes/iterations/{1}?api-version=" + _configuration.VersionNumber, projectName, targetIteration)) { Content = jsonContent }; var response = client.SendAsync(request).Result; if (response.IsSuccessStatusCode) { viewModel = response.Content.ReadAsAsync <GetNodeResponse.Node>().Result; } else { var errorMessage = response.Content.ReadAsStringAsync(); } viewModel.HttpStatusCode = response.StatusCode; } } catch (Exception ex) { logger.Debug(DateTime.UtcNow.ToString("yyyy-MM-dd HH:mm:ss") + "\t" + "\t" + ex.Message + "\t" + "\n" + ex.StackTrace + "\n"); } return(new GetNodeResponse.Node()); }
public GetNodeResponse.Node MoveArea(string project, string targetArea, int id) { CreateUpdateNodeViewModel.Node node = new CreateUpdateNodeViewModel.Node() { id = id }; GetNodeResponse.Node viewModel = new GetNodeResponse.Node(); 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); // serialize the fields array into a json string var patchValue = new StringContent(JsonConvert.SerializeObject(node), Encoding.UTF8, "application/json"); var method = new HttpMethod("POST"); // send the request var request = new HttpRequestMessage(method, _configuration.UriString + project + "/_apis/wit/classificationNodes/areas/" + targetArea + "?api-version=2.2") { Content = patchValue }; var response = client.SendAsync(request).Result; if (response.IsSuccessStatusCode) { viewModel = response.Content.ReadAsAsync <GetNodeResponse.Node>().Result; viewModel.Message = "success"; } viewModel.HttpStatusCode = response.StatusCode; return(viewModel); } }