예제 #1
0
        /// <summary>
        /// 设置文章置顶
        /// </summary>
        /// <param name="articalId"></param>
        /// <param name="isSetTop"></param>
        /// <returns></returns>
        public async Task <IActionResult> OnPostSetTopAsync(long articalId, bool isSetTop)
        {
            var artical = await ArticalService.GetArticalByIdAsync(articalId).ConfigureAwait(false);

            if (artical == null)
            {
                return(NotFound());
            }

            //是否被授权
            AuthorizationResult authorizationResult = await AuthorizationService.AuthorizeAsync(
                User, Permissons.Permisson.Article_SetTop).ConfigureAwait(false);

            if (!authorizationResult.Succeeded)
            {
                return(Forbid());
            }

            //文章置顶
            var result = await ArticalService.SetArticleTopAsync(articalId, isSetTop).ConfigureAwait(false);

            if (!result.Succeeded)
            {
                AddModelError(result.ErrorMessage);
                return(BadRequest(ModelState));
            }
            return(this.Content(string.Empty));
        }
예제 #2
0
        //删除文章
        public async Task <IActionResult> OnPostDeleteAsync(long articalId)
        {
            if (articalId > 0)
            {
                var artical = await ArticalService.GetArticalByIdAsync(articalId).ConfigureAwait(false);

                if (artical == null)
                {
                    return(NotFound());
                }

                //是否被授权
                AuthorizationResult authorizationResult = await AuthorizationService.AuthorizeAsync(
                    User, Permissons.Permisson.Article_Delete).ConfigureAwait(false);

                if (!authorizationResult.Succeeded)
                {
                    return(Forbid());
                }

                //删除文章
                var resone = await ArticalService.DeleteArticalAsync(articalId).ConfigureAwait(false);

                if (resone.Succeeded)
                {
                    return(new NoContentResult());
                }
                ModelState.AddModelError(string.Empty, resone.ErrorMessage);
            }
            return(BadRequest(ModelState));
        }
예제 #3
0
        public async Task <IActionResult> OnGetAsync()
        {
            //获取这篇文章
            Artical = await ArticalService.GetArticalByIdAsync(ArticalId).ConfigureAwait(false);

            if (Artical == null)
            {
                return(NotFound());
            }

            //作者信息
            Author = await UserClient.FindByIdAsync(new UserIdReq { UserId = Artical.UserId });

            //文章分类信息
            ClassificationInfo = await ArticalService.GetArticalClassificationByIdAsync(Artical.ClassificationId).ConfigureAwait(false);

            //阅读量+1
            await ArticalService.UpdateArticalAsync(ArticalId, new UpdateArticalDto
            {
                ArticalId        = ArticalId,
                VisitCount       = Artical.VisitCount + 1,
                ClassificationId = Artical.ClassificationId,
                Content          = Artical.Content,
                Title            = Artical.Title
            }).ConfigureAwait(false);


            //评论列表
            Comments = ArticalService.GetArticalComments(Artical.Id).OrderByDescending(e => e.CommentTime);

            //评论数量
            CommentsCount = await Comments.CountAsync().ConfigureAwait(false);

            //获取作者其他文章且不包含这篇文章
            AuthorOtherArticals = await ArticalService.GetArticlesAsync(
                articles =>
            {
                return(articles.Where(e => e.Id != ArticalId).OrderByDescending(e => e.PublishTime));
            }, take : 5).ConfigureAwait(false);

            return(Page());
        }
예제 #4
0
        public async Task <IActionResult> OnGetAsync()
        {
            //修改
            if (Id.HasValue)
            {
                var artical = await ArticalService.GetArticalByIdAsync(Id.Value).ConfigureAwait(false);

                //更新文章
                if (artical == null)
                {
                    return(NotFound());
                }

                //禁止修改别人的文章
                if (artical.UserId != CurUserId)
                {
                    return(Forbid());
                }

                AddOrUpdateArtical = new AddOrUpdateArticalModel
                {
                    ClassificationId = artical.ClassificationId,
                    Content          = artical.Content,
                    Title            = artical.Title
                };
            }

            //有发布系统公告权限?
            if ((await AuthorizationService.AuthorizeAsync(User, Permissons.Permisson.Article_System)
                 .ConfigureAwait(false)).Succeeded)
            {
                ArticalClassifications = await ArticalService.GetArticalClassificationsAsync().ConfigureAwait(false);
            }
            else
            {
                ArticalClassifications = (await ArticalService.GetArticalClassificationsAsync()).Where(e => e.Name != "系统公告").ToList();
            }

            return(Page());
        }