private async Task <IReadOnlyList <Issue> > RetrieveIssues(int page = 1) { var connection = _sessionService.GitHubClient.Connection; var parameters = new Dictionary <string, string>(); parameters["page"] = page.ToString(); parameters["per_page"] = 50.ToString(); AddRequestParameters(parameters); parameters = parameters.Where(x => x.Value != null).ToDictionary(x => x.Key, x => x.Value); var ret = await connection.Get <IReadOnlyList <Issue> >(RequestUri, parameters, "application/json"); if (ret.HttpResponse.ApiInfo.Links.ContainsKey("next")) { LoadMoreCommand = ReactiveCommand.CreateAsyncTask(async _ => { InternalItems.AddRange(await RetrieveIssues(page + 1)); }); } else { LoadMoreCommand = null; } return(ret.Body); }
private async Task <IReadOnlyList <Gist> > RetrieveGists(int page = 1) { var connection = _sessionService.GitHubClient.Connection; var parameters = new Dictionary <string, string>(); parameters["page"] = page.ToString(); var ret = await connection.Get <IReadOnlyList <Gist> >(ApiUrls.PublicGists(), parameters, "application/json"); if (ret.HttpResponse.ApiInfo.Links.ContainsKey("next")) { LoadMoreCommand = ReactiveCommand.CreateAsyncTask(async _ => { InternalItems.AddRange(await RetrieveGists(page + 1)); }); } else { LoadMoreCommand = null; } return(ret.Body); }
private async Task <IReadOnlyList <GitHubCommit> > RetrieveCommits(int page = 1) { var connection = SessionService.GitHubClient.Connection; var parameters = new Dictionary <string, string>(); parameters["page"] = page.ToString(); AddRequestParameters(parameters); var ret = await connection.Get <IReadOnlyList <GitHubCommit> >(RequestUri, parameters, "application/json"); if (ret.HttpResponse.ApiInfo.Links.ContainsKey("next")) { LoadMoreCommand = ReactiveCommand.CreateAsyncTask(async _ => { var loadMore = await RetrieveCommits(page + 1); InternalItems.AddRange(loadMore.Select(x => new CommitItemViewModel(x, GoToCommit))); }); } else { LoadMoreCommand = null; } return(ret.Body); }
private async Task <IReadOnlyList <PullRequest> > RetrievePullRequests(int page = 1) { var connection = _sessionService.GitHubClient.Connection; var parameters = new Dictionary <string, string>(); parameters["page"] = page.ToString(); parameters["per_page"] = 50.ToString(); parameters["state"] = SelectedFilter == 0 ? "open" : "closed"; var ret = await connection.Get <IReadOnlyList <PullRequest> >(ApiUrls.PullRequests(RepositoryOwner, RepositoryName), parameters, "application/json"); if (ret.HttpResponse.ApiInfo.Links.ContainsKey("next")) { LoadMoreCommand = ReactiveCommand.CreateAsyncTask(async _ => { InternalItems.AddRange(await RetrievePullRequests(page + 1)); }); } else { LoadMoreCommand = null; } return(ret.Body); }