private static HttpClient GetClient(JiraCredentials credentials) { try { if (credentials == null) { JiraSettings j = ModuleSettingsAccessor <JiraSettings> .GetSettings(); credentials = new JiraCredentials { JiraURL = j.JiraURL, Password = j.Password, User = j.UserId, JiraConnection = j.JiraConnection }; } HttpClient httpClient = new HttpClient { BaseAddress = new Uri(credentials.JiraURL.TrimEnd('/') + BASEPATH) }; httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); httpClient.DefaultRequestHeaders.TryAddWithoutValidation("Content-Type", "application/json; charset=utf-8"); httpClient.DefaultRequestHeaders.Authorization = new AuthenticationManager().GetAuthHeader(credentials); return(httpClient); } catch (Exception ex) { throw new LoggedException($"Error setting up connection to {credentials.JiraURL}", ex); } }
public static JiraResultWithData Get <R>(string requestUri, JiraCredentials credentials, HttpStatusCode expectedStatus = HttpStatusCode.OK) where R : class, new() { try { HttpResponseMessage response = JiraUtility.GetClient(credentials).GetAsync(requestUri).Result; return(ParseResponse <R>(response, expectedStatus)); } catch (Exception ex) { throw new LoggedException("Error to process GET to Jira", ex); } }
public static JiraResult Delete(JiraCredentials Credentials, JiraIssueDeleteModel IssueModel) { try { var response = new Utility().GetClient(Credentials).DeleteAsync($"issue/{IssueModel.IssueIdOrKey}?deleteSubtasks={IssueModel.DeleteSubtasks}").Result; var responseString = response.Content.ReadAsStringAsync().Result; return(new JiraResult { Message = response.StatusCode != HttpStatusCode.NoContent ? responseString : string.Empty, Status = response.StatusCode, Data = response.StatusCode == HttpStatusCode.NoContent ? responseString : string.Empty }); } catch (Exception ex) { throw ex; } }
public static JiraResult AssignProject(JiraCredentials Credentials, JiraAssignProjectModel JiraAssignmentModel) { try { var DataObj = new { user = JiraAssignmentModel.Users }; string data = JsonConvert.SerializeObject(DataObj); var content = new StringContent(data, Encoding.UTF8, "application/json"); var response = new Utility().GetClient(Credentials).PostAsync($"project/{JiraAssignmentModel.ProjectIdOrKey}/role/{JiraAssignmentModel.RoleId}", content).Result; var responseString = response.Content.ReadAsStringAsync().Result; return(new JiraResult { Message = response.StatusCode != HttpStatusCode.OK ? responseString : string.Empty, Status = response.StatusCode, Data = response.StatusCode == HttpStatusCode.OK ? responseString : string.Empty }); } catch (Exception ex) { throw ex; } }
public static JiraResult Assign(JiraCredentials Credentials, JiraAssignee Assign) { try { var DataObj = new { accountId = Assign.AccountId }; string data = JsonConvert.SerializeObject(DataObj); var content = new StringContent(data, Encoding.UTF8, "application/json"); var response = new Utility().GetClient(Credentials).PutAsync($"issue/{Assign.IssueIdOrKey}/assignee", content).Result; var responseString = response.Content.ReadAsStringAsync().Result; return(new JiraResult { Message = response.StatusCode != HttpStatusCode.NoContent ? responseString : string.Empty, Status = response.StatusCode, Data = response.StatusCode == HttpStatusCode.NoContent? responseString : string.Empty }); } catch (Exception ex) { throw ex; } }
public static JiraResultWithData Put <T, R>(string requestUri, JiraCredentials credentials, T content, HttpStatusCode expectedStatus) where R : class, new() { try { string data = ParseRequestContent(content); var contentStr = new StringContent(data, Encoding.UTF8, "application/json"); var client = JiraUtility.GetClient(credentials); HttpResponseMessage response = client.PutAsync(requestUri, contentStr).Result; return(ParseResponse <R>(response, expectedStatus)); } catch (Exception ex) { throw new LoggedException("Error to process PUT to Jira", ex); } }
public static BaseJiraResult Delete(string requestUri, JiraCredentials credentials, HttpStatusCode expectedStatus) { try { HttpResponseMessage response = JiraUtility.GetClient(credentials).DeleteAsync(requestUri).Result; var responseString = response.Content.ReadAsStringAsync().Result; return(new BaseJiraResult() { Status = response.StatusCode == expectedStatus ? JiraResultStatus.Success : JiraResultStatus.Fail, HttpStatus = (int)response.StatusCode, ErrorMessage = response.StatusCode != expectedStatus ? responseString : string.Empty, }); } catch (Exception ex) { throw new LoggedException("Error to process DELETE to Jira", ex); } }
public HttpClient GetClient(JiraCredentials credentials) { if (credentials == null) { JiraSettings j = ModuleSettingsAccessor <JiraSettings> .GetSettings(); credentials = new JiraCredentials(); credentials.JiraURL = j.JiraURL; credentials.Password = j.Password; credentials.User = j.UserId; } HttpClient httpClient = new HttpClient { BaseAddress = new Uri(credentials.JiraURL) }; httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); httpClient.DefaultRequestHeaders.TryAddWithoutValidation("Content-Type", "application/json; charset=utf-8"); httpClient.DefaultRequestHeaders.Authorization = new AuthenticationManager().GetAuthHeader(credentials); return(httpClient); }
public static JiraResult Edit(JiraCredentials Credentials, JiraProjectModel ProjectModel) { try { string data = JsonConvert.SerializeObject(ProjectModel, Formatting.None, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore }); var content = new StringContent(data, Encoding.UTF8, "application/json"); var response = new Utility().GetClient(Credentials).PutAsync($"project/{ProjectModel.ProjectIdOrKey}", content).Result; var responseString = response.Content.ReadAsStringAsync().Result; return(new JiraResult { Message = response.StatusCode != HttpStatusCode.OK ? responseString : string.Empty, Status = response.StatusCode, Data = response.StatusCode == HttpStatusCode.OK ? responseString : string.Empty }); } catch (Exception ex) { throw ex; } }
public static JiraResult CreateIssue(JiraCredentials Credentials, JiraIssue NewIssue) { try { var DataObj = new { fields = NewIssue }; string data = JsonConvert.SerializeObject(DataObj, Formatting.None, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore }); var content = new StringContent(data, Encoding.UTF8, "application/json"); var response = new Utility().GetClient(Credentials).PostAsync("issue", content).Result; var responseString = response.Content.ReadAsStringAsync().Result; return(new JiraResult { Message = response.StatusCode != HttpStatusCode.Created? responseString:string.Empty, Status = response.StatusCode, Data = response.StatusCode == HttpStatusCode.Created?responseString:string.Empty }); } catch (Exception ex) { throw ex; } }
public AuthenticationHeaderValue GetAuthHeader(JiraCredentials creds) { return(new AuthenticationHeaderValue("Basic", Convert.ToBase64String(Encoding.UTF8.GetBytes(creds.User + ":" + creds.Password)))); }