private dynamic GetWorklogsForIssue(string issueKey, long startAt) { RestRequest restRequest = CreateRequest("issue/" + issueKey + "/worklog", Method.GET); restRequest.AddQueryParameter("startAt", startAt.ToString()); IRestResponse <dynamic> restResponse = _restClient.Execute <dynamic>(restRequest); restResponse.EnsureSuccessStatusCode(); return(restResponse.Data); }
protected override List <PublicHoliday> CalculateReportData() { Logger.Info("Getting public holidays"); string publicHolidayType = "National holiday"; List <PublicHoliday> result = new List <PublicHoliday>(); RestClient restClient = new RestClient(new Uri("https://calendarific.com/api/v2/")); restClient.AddHandler("application/json", () => new DynamicJsonDeserializer()); foreach (var year in _yearsToReport) { //?api_key={apiKey}&country=SK&year={year} var request = new RestRequest("holidays", Method.GET) { JsonSerializer = new NewtonsoftJsonSerializer() }; request.AddQueryParameter("api_key", _apiKey); request.AddQueryParameter("country", "SK"); request.AddQueryParameter("year", year.ToString()); IRestResponse <dynamic> restResponse = restClient.Execute <dynamic>(request); restResponse.EnsureSuccessStatusCode(); var holidaysResponseData = restResponse.Data; foreach (var holiday in holidaysResponseData.response.holidays) { var datetime = holiday.date.datetime; string[] types = holiday.type.ToObject <string[]>(); if (types.Contains(publicHolidayType)) { result.Add(new PublicHoliday { Date = new DateTime((int)datetime.year, (int)datetime.month, (int)datetime.day), Name = holiday.name }); } } //API limitation Thread.Sleep(TimeSpan.FromSeconds(1)); } return(result);; }
public static void CheckResponseAndThrowIfNeeded(this IRestResponse response) { response.EnsureSuccessStatusCode(); if (response.ErrorException != null) { throw response.ErrorException; } var msg = response.GetH3NonWarnings(); if (msg?.StartsWith("Error:") == true) { msg = msg.Substring(6).Trim(); throw new MailmanException(msg); } }
public async Task LogWork(Worklog worklog) { if (worklog.IsAtLeast(TimeSpan.FromMinutes(1))) { RestRequest restRequest = CreateRequest("issue/" + worklog.Issue.Key + "/worklog", Method.POST); var worklogJson = new { started = worklog.Start, timeSpentSeconds = worklog.DurationInSeconds }; restRequest.AddJsonBody(worklogJson); IRestResponse response = await _restClient.ExecuteTaskAsync(restRequest); response.EnsureSuccessStatusCode(); } }
public IEnumerable <JiraProject> GetJiraProjects() { RestRequest restRequest = CreateRequest("project", Method.GET); IRestResponse <dynamic> restResponse = _restClient.Execute <dynamic>(restRequest); restResponse.EnsureSuccessStatusCode(); var enumerable = restResponse.Data as IEnumerable <dynamic>; return(enumerable.Select(x => new JiraProject { Id = x.id, Key = x.key, Name = x.name, Category = x.projectCategory?.name })); }
public async Task <IEnumerable <Issue> > GetIssuesAsync() { RestRequest restRequest = CreateRequest("search", Method.GET); restRequest.AddQueryParameter("jql", "assignee = currentUser() AND status = Open"); IRestResponse <dynamic> restResponse = await _restClient.ExecuteTaskAsync <dynamic>(restRequest); restResponse.EnsureSuccessStatusCode(); List <Issue> issues = new List <Issue>(); foreach (dynamic issueJson in restResponse.Data.issues) { issues.Add(new Issue(issueJson.key.Value, issueJson.fields.issuetype.name.Value, issueJson.fields.summary.Value)); } return(issues); }
private dynamic GetAbsencePage(long startAt) { RestRequest restRequest = CreateRequest("search", Method.GET); restRequest.AddQueryParameter("jql", "project = ABS"); restRequest.AddQueryParameter("fields", $"creator,created,summary,status," + $"{CustomFieldsConverter.CustomFields[CustomFieldsConverter.CustomFieldsEnum.AbsEndDate]}," + $"{CustomFieldsConverter.CustomFields[CustomFieldsConverter.CustomFieldsEnum.AbsStartDate]}," + $"{CustomFieldsConverter.CustomFields[CustomFieldsConverter.CustomFieldsEnum.AbsActualNumberOfDaysHours]}," + $"{CustomFieldsConverter.CustomFields[CustomFieldsConverter.CustomFieldsEnum.AbsDaysHours]}," + $"{CustomFieldsConverter.CustomFields[CustomFieldsConverter.CustomFieldsEnum.AbsAbsenceCategory]}"); restRequest.AddQueryParameter("startAt", startAt.ToString()); IRestResponse <dynamic> restResponse = _restClient.Execute <dynamic>(restRequest); restResponse.EnsureSuccessStatusCode(); return(restResponse.Data); }
private dynamic GetIssuesPage(string jql, long startAt, string fields, string expand) { RestRequest restRequest = CreateRequest("search", Method.GET); restRequest.AddQueryParameter("jql", jql); restRequest.AddQueryParameter("startAt", startAt.ToString()); if (!String.IsNullOrEmpty(fields)) { restRequest.AddQueryParameter("fields", fields); } if (!String.IsNullOrEmpty(expand)) { restRequest.AddQueryParameter("expand", expand); } IRestResponse <dynamic> restResponse = _restClient.Execute <dynamic>(restRequest); restResponse.EnsureSuccessStatusCode(); return(restResponse.Data); }