Example #1
0
        public async Task <IActionResult> OnGetAsync(string id, string revisionId = null)
        {
            TempData["Page"] = "api";

            Review = await _manager.GetReviewAsync(User, id);

            if (!Review.Revisions.Any())
            {
                return(RedirectToPage("LegacyReview", new { id = id }));
            }

            Comments = await _commentsManager.GetReviewCommentsAsync(id);

            Revision = revisionId != null?
                       Review.Revisions.Single(r => r.RevisionId == revisionId) :
                           Review.Revisions.Last();

            PreviousRevisions = Review.Revisions.TakeWhile(r => r != Revision).ToArray();

            var renderedCodeFile = await _codeFileRepository.GetCodeFileAsync(Revision);

            CodeFile = renderedCodeFile.CodeFile;

            var fileDiagnostics = CodeFile.Diagnostics ?? Array.Empty <CodeDiagnostic>();
            var fileHtmlLines   = renderedCodeFile.Render(ShowDocumentation);

            if (DiffRevisionId != null)
            {
                DiffRevision = PreviousRevisions.Single(r => r.RevisionId == DiffRevisionId);

                var previousRevisionFile = await _codeFileRepository.GetCodeFileAsync(DiffRevision);

                var previousHtmlLines         = previousRevisionFile.RenderReadOnly(ShowDocumentation);
                var previousRevisionTextLines = previousRevisionFile.RenderText(ShowDocumentation);
                var fileTextLines             = renderedCodeFile.RenderText(ShowDocumentation);

                var diffLines = InlineDiff.Compute(
                    previousRevisionTextLines,
                    fileTextLines,
                    previousHtmlLines,
                    fileHtmlLines);

                Lines = CreateLines(fileDiagnostics, diffLines, Comments);
            }
            else
            {
                Lines = CreateLines(fileDiagnostics, fileHtmlLines, Comments);
            }

            ActiveConversations      = ComputeActiveConversations(fileHtmlLines, Comments);
            TotalActiveConversations = Comments.Threads.Count(t => !t.IsResolved);
            var filterPreference = _preferenceCache.GetFilterType(User.GetGitHubLogin(), Review.FilterType);

            ReviewsForPackage = await _manager.GetReviewsAsync(Review.ServiceName, Review.PackageDisplayName, filterPreference);

            return(Page());
        }
        public async void GetReviews()
        {
            RestService   restSevice      = new RestService();
            ReviewManager myReviewManager = new ReviewManager(restSevice);
            List <Review> listReviewss    = await myReviewManager.GetReviewsAsync(profileUser.Id);

            Reviews.Clear();
            foreach (var item in listReviewss)
            {
                Reviews.Add(item);
            }
        }
        public async Task <ActionResult> GetReviewStatus(string language, string packageName)
        {
            // This API is used by prepare release script to check if API review for a package is approved or not.
            // This caller script doesn't have artifact to submit and so it can't check using create review API
            // So it rely on approval status of latest revision of automatic review for the package
            // With new restriction of creating automatic review only from master branch or GA version, this should ensure latest revision
            // is infact the version intended to be released.
            var reviews = await _reviewManager.GetReviewsAsync(false, language, packageName : packageName, ReviewType.Automatic);

            var review = reviews.FirstOrDefault();

            if (review != null)
            {
                _logger.LogInformation("Found review ID " + review.ReviewId + " for package " + packageName);
                // Return 200 OK for approved review and 201 for review in pending status
                return(review.Revisions.LastOrDefault().IsApproved ? Ok() : StatusCode(statusCode: StatusCodes.Status201Created));
            }

            throw new Exception("Automatic review is not found for package " + packageName);
        }
Example #4
0
 public async Task OnGetAsync()
 {
     Assemblies = await _manager.GetReviewsAsync(Closed);
 }
Example #5
0
 public async Task OnGetAsync()
 {
     Assemblies = await _manager.GetReviewsAsync(Closed, Language, Automatic);
 }
Example #6
0
 public async Task OnGetAsync()
 {
     Assemblies = await _manager.GetReviewsAsync(Closed, Language, filterType : FilterType);
 }