public async Task <List <ResponseModelTaskFull> > GetFilteredTeamTasks(string teamId, ParamsGetFilteredTeamTasks param) { var tasks = new List <ResponseModelTaskFull>(); var page = 0; while (true) { param.Page = page++; var queryString = OptionalParamGenerator.GenerateOptionalParams(param); var request = CreateRequest($"team/{teamId}/task?{queryString}", Method.GET); var res = await RestSharperHelper.ExecuteRequestAsync <ResponseTasksFull, ResponseError>(_client, request); if (res.ResponseError != null) { throw new Exception($"{res.ResponseError.ECode} {res.ResponseError.Status} {res.ResponseError.Err}"); } if (!res.ResponseSuccess.Tasks.Any()) { break; } tasks.AddRange(res.ResponseSuccess.Tasks); } return(tasks); }
public async Task <List <ResponseModelTimeEntry> > GetTimeEntries(string teamId, ParamsGetTimeEntries param) { var queryString = OptionalParamGenerator.GenerateOptionalParams(param); using var response = await _httpClient.GetAsync($"team/{teamId}/time_entries?{queryString}"); var responseData = await response.Content.ReadAsStringAsync(); // task:"0" という変なデータを{}に置換 responseData = responseData.Replace(@"""task"":""0""", @"""task"": null"); var timeEntries = JsonConvert.DeserializeObject <ResponseTimeEntries>(responseData); return(timeEntries.Data.Where(x => x.Task != null).ToList()); // var request = CreateRequest($"team/{teamId}/time_entries?{queryString}", Method.GET); // var res = await RestSharperHelper.ExecuteRequestAsync<ResponseTimeEntries, ResponseError>(_client, request); // if (res.ResponseError != null) // { // throw new Exception($"{res.ResponseError.ECode} {res.ResponseError.Status} {res.ResponseError.Err}"); // } // return res.ResponseSuccess.Data; }