示例#1
0
        /// <summary>
        /// Render the comment block frontend view.
        /// </summary>
        /// <param name="pagingInfo">Paging info of block</param>
        /// <param name="currentBlock">The current frontend block instance.</param>
        /// <returns>The action's result.</returns>
        public IViewComponentResult GetComment(PagingInfo pagingInfo, Models.BlogCommentBlock currentBlock)
        {
            var pageId    = pagingInfo.PageId;
            var pageIndex = pagingInfo.PageNumber;
            var pageSize  = pagingInfo.PageSize;

            var pageReference   = new PageReference(pageId);
            var pageContentGuid = _pageRepository.GetPageId(pageReference);

            // Create a comments block view model to fill the frontend block view
            var blockViewModel = new BlogCommentsBlockViewModel(pageReference, currentBlock);

            // Try to get recent comments
            try
            {
                blockViewModel.PagingInfo = pagingInfo;
                var blogComments = _commentRepository.Get(
                    new PageCommentFilter
                {
                    Target     = pageContentGuid.ToString(),
                    PageSize   = pageSize,
                    PageOffset = pageIndex - 1
                },
                    out var totalComments
                    );

                blockViewModel.Comments = blogComments;
                blockViewModel.PagingInfo.TotalRecord = (int)totalComments;
            }
            catch (Exception ex)
            {
                blockViewModel.Messages.Add(ex.Message);
            }

            var viewData = new ViewDataDictionary <BlogCommentsBlockViewModel>(ViewData, blockViewModel);

            return(new CustomViewComponentResult
            {
                TempData = TempData,
                ViewEngine = ViewEngine,
                ViewName = "~/Features/CmsPages/Blog/BlogCommentBlock/Views/Default.cshtml",
                ViewData = viewData
            });
        }
        /// <summary>
        /// Render the comment block frontend view.
        /// </summary>
        /// <param name="pageId">ID of current page link that contain blogCommentBlock</param>
        /// <param name="pageIndex">Current page index of comments</param>
        /// <param name="recordPerPage">Records of comments per page</param>
        /// <returns>The action's result.</returns>
        public ActionResult GetComment(PagingInfo pagingInfo, Cms.Blocks.BlogCommentBlock currentBlock)
        {
            var pageId    = pagingInfo.PageId;
            var pageIndex = pagingInfo.PageNumber;
            var pageSize  = pagingInfo.PageSize;

            var pageReference   = new PageReference(pageId);
            var pageContentGuid = _pageRepository.GetPageId(pageReference);

            // Create a comments block view model to fill the frontend block view
            var blockViewModel = new BlogCommentsBlockViewModel(pageReference, currentBlock);

            // Try to get recent comments
            try
            {
                var blogComments = _commentRepository.Get(
                    new PageCommentFilter
                {
                    Target     = pageContentGuid.ToString(),
                    PageSize   = pageSize,
                    PageOffset = pageIndex - 1
                },
                    out var totalComments
                    );

                blockViewModel.Comments               = blogComments;
                blockViewModel.PagingInfo             = pagingInfo;
                blockViewModel.PagingInfo.TotalRecord = (int)totalComments;
            }
            catch (Exception ex)
            {
                blockViewModel.Messages.Add(ex.Message);
            }

            return(PartialView("~/Features/Blog/BlogCommentBlock/Index.cshtml", blockViewModel));
        }