示例#1
0
        public async Task <IHttpActionResult> ApproveArticle([FromBody] UsersToReview param)
        {
            foreach (string userId in param.UserIds)
            {
                ReviewedArticleView reviewedArticle = new ReviewedArticleView();
                reviewedArticle.UserId    = userId;
                reviewedArticle.ArticleId = param.Article.Id;
                var item = ReviewedArticleComponent.Create(reviewedArticle);
                param.Article.ApprovalStatus = (int)ApprovalStatus.InReview;
                if (item == null)
                {
                    return(BadRequest("Server crashed! Review was not added"));
                }

                var userToReview = await this.AppUserManager.FindByIdAsync(userId);

                await this.AppUserManager.SendEmailAsync(userToReview.Id,
                                                         "Article needs review!",
                                                         "A new article '" + param.Article.Title + "' needs to be reviewed by you!");
            }

            if (param.UserIds.ToArray().Length > 0)
            {
                bool rez = Component.Update(param.Article);
            }

            var user = await this.AppUserManager.FindByIdAsync(param.Article.UserId);

            await this.AppUserManager.SendEmailAsync(user.Id,
                                                     "Article approved by editor",
                                                     "Your article '" + param.Article.Title + "' was approved by the editor of the journal you applied");

            return(Ok("Users added for review"));
        }
示例#2
0
        public IHttpActionResult AbstainReviewArticle([FromBody] ArticleView param)
        {
            string userId = User.Identity.GetUserId();
            ReviewedArticleView reviewedArticle = ReviewedArticleComponent.GetReviewedArticle(userId, param.Id);

            if (reviewedArticle == null)
            {
                return(BadRequest("Review is not available for this user and this article"));
            }
            reviewedArticle.ReviewStatus = (int)ReviewStatus.Abstain;
            bool updated = ReviewedArticleComponent.Update(reviewedArticle);

            if (!updated)
            {
                return(BadRequest("Server crashed! Review was not updated"));
            }
            return(Ok());
        }
示例#3
0
        public IHttpActionResult ApproveArticle([FromBody] ReviewArticleRequest param)
        {
            string userId = User.Identity.GetUserId();
            ReviewedArticleView reviewedArticle = ReviewedArticleComponent.GetReviewedArticle(userId, param.Article.Id);

            if (reviewedArticle == null)
            {
                return(BadRequest("Review is not available for this user and this article"));
            }
            reviewedArticle.ReviewPoints = param.ReviewPoints;
            reviewedArticle.Comment      = param.Comment;
            reviewedArticle.ReviewStatus = (int)ReviewStatus.Reviewed;
            bool updated          = ReviewedArticleComponent.Update(reviewedArticle);
            int  numberOfReviewed = ReviewedArticleComponent.GetNumberofReviewed(reviewedArticle);

            if (numberOfReviewed == 3)
            {
                bool isApproved = ReviewedArticleComponent.CheckIfApproved(reviewedArticle);
                if (isApproved)
                {
                    param.Article.ApprovalStatus = (int)ApprovalStatus.Approved;
                }
                else
                {
                    param.Article.ApprovalStatus = (int)ApprovalStatus.Rejected;
                }
                bool rez = Component.Update(param.Article);
                if (rez)
                {
                    return(Ok());
                }
                else
                {
                    return(BadRequest("Server crashed! Article was not updated"));
                }
            }
            if (!updated)
            {
                return(BadRequest("Server crashed! Review was not updated"));
            }
            return(Ok());
        }