public PullRequestReviewCacheItem(IPullRequestReviewModel review) { Id = review.Id; NodeId = review.NodeId; User = new AccountCacheItem { Login = review.User.Login, AvatarUrl = review.User.AvatarUrl, }; Body = review.Body; State = review.State; SubmittedAt = review.SubmittedAt; }
PullRequestReviewViewModel CreateTarget( IPullRequestEditorService editorService = null, IPullRequestSession session = null, IPullRequestModel pullRequest = null, IPullRequestReviewModel model = null) { editorService = editorService ?? Substitute.For <IPullRequestEditorService>(); session = session ?? Substitute.For <IPullRequestSession>(); pullRequest = pullRequest ?? CreatePullRequest(); model = model ?? pullRequest.Reviews[0]; return(new PullRequestReviewViewModel( editorService, session, pullRequest, model)); }
/// <summary> /// Initializes a new instance of the <see cref="PullRequestReviewViewModel"/> class. /// </summary> /// <param name="editorService">The pull request editor service.</param> /// <param name="session">The pull request session.</param> /// <param name="pullRequest">The pull request model.</param> /// <param name="model">The pull request review model.</param> public PullRequestReviewViewModel( IPullRequestEditorService editorService, IPullRequestSession session, IPullRequestModel pullRequest, IPullRequestReviewModel model) { Guard.ArgumentNotNull(editorService, nameof(editorService)); Guard.ArgumentNotNull(session, nameof(session)); Guard.ArgumentNotNull(model, nameof(model)); Model = model; Body = string.IsNullOrWhiteSpace(Model.Body) ? null : Model.Body; StateDisplay = ToString(Model.State); var comments = new List <IPullRequestReviewFileCommentViewModel>(); var outdated = new List <IPullRequestReviewFileCommentViewModel>(); foreach (var comment in pullRequest.ReviewComments) { if (comment.PullRequestReviewId == model.Id) { var vm = new PullRequestReviewFileCommentViewModel( editorService, session, comment); if (comment.Position.HasValue) { comments.Add(vm); } else { outdated.Add(vm); } } } FileComments = comments; OutdatedFileComments = outdated; HasDetails = Body != null || FileComments.Count > 0 || OutdatedFileComments.Count > 0; }
async Task AddReview(IPullRequestReviewModel review) { PullRequest.Reviews = PullRequest.Reviews .Where(x => x.NodeId != review.NodeId) .Concat(new[] { review }) .ToList(); if (review.State != PullRequestReviewState.Pending) { foreach (var comment in PullRequest.ReviewComments) { if (comment.PullRequestReviewId == review.Id) { comment.IsPending = false; } } } await Update(PullRequest); }