예제 #1
0
        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);
        }
예제 #2
0
        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;
        }