Пример #1
0
        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);
            }
        }
Пример #2
0
        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);
            }
        }
Пример #3
0
 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;
     }
 }
Пример #4
0
 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;
     }
 }
Пример #5
0
 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;
     }
 }
Пример #6
0
        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);
            }
        }
Пример #7
0
        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);
            }
        }
Пример #8
0
        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);
        }
Пример #9
0
 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;
     }
 }
Пример #10
0
 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;
     }
 }
Пример #11
0
 public AuthenticationHeaderValue GetAuthHeader(JiraCredentials creds)
 {
     return(new AuthenticationHeaderValue("Basic", Convert.ToBase64String(Encoding.UTF8.GetBytes(creds.User + ":" + creds.Password))));
 }