Esempio n. 1
0
 public IObservable <IPullRequestModel> GetPullRequest(string owner, string name, int number)
 {
     return(Observable.Defer(() =>
     {
         return hostCache.GetAndRefreshObject(PRPrefix + '|' + number, () =>
                                              Observable.CombineLatest(
                                                  ApiClient.GetPullRequest(owner, name, number),
                                                  ApiClient.GetPullRequestFiles(owner, name, number).ToList(),
                                                  ApiClient.GetIssueComments(owner, name, number).ToList(),
                                                  GetPullRequestReviews(owner, name, number).ToObservable(),
                                                  GetPullRequestReviewComments(owner, name, number).ToObservable(),
                                                  (pr, files, comments, reviews, reviewComments) => new
         {
             PullRequest = pr,
             Files = files,
             Comments = comments,
             Reviews = reviews,
             ReviewComments = reviewComments
         })
                                              .Select(x => PullRequestCacheItem.Create(
                                                          x.PullRequest,
                                                          (IReadOnlyList <PullRequestFile>)x.Files,
                                                          (IReadOnlyList <IssueComment>)x.Comments,
                                                          (IReadOnlyList <IPullRequestReviewModel>)x.Reviews,
                                                          (IReadOnlyList <IPullRequestReviewCommentModel>)x.ReviewComments)),
                                              TimeSpan.Zero,
                                              TimeSpan.FromDays(7))
         .Select(Create);
     }));
 }
Esempio n. 2
0
 public IObservable <IPullRequestModel> GetPullRequest(ILocalRepositoryModel repo, int number)
 {
     return(Observable.Defer(() =>
     {
         return hostCache.GetAndRefreshObject(PRPrefix + '|' + number, () =>
                                              Observable.CombineLatest(
                                                  apiClient.GetPullRequest(repo.CloneUrl.Owner, repo.CloneUrl.RepositoryName, number),
                                                  apiClient.GetPullRequestFiles(repo.CloneUrl.Owner, repo.CloneUrl.RepositoryName, number).ToList(),
                                                  apiClient.GetIssueComments(repo.CloneUrl.Owner, repo.CloneUrl.RepositoryName, number).ToList(),
                                                  apiClient.GetPullRequestReviewComments(repo.CloneUrl.Owner, repo.CloneUrl.RepositoryName, number).ToList(),
                                                  (pr, files, comments, reviewComments) => new
         {
             PullRequest = pr,
             Files = files,
             Comments = comments,
             ReviewComments = reviewComments
         })
                                              .Select(x => PullRequestCacheItem.Create(
                                                          x.PullRequest,
                                                          (IReadOnlyList <PullRequestFile>)x.Files,
                                                          (IReadOnlyList <IssueComment>)x.Comments,
                                                          (IReadOnlyList <PullRequestReviewComment>)x.ReviewComments)),
                                              TimeSpan.Zero,
                                              TimeSpan.FromDays(7))
         .Select(Create);
     }));
 }