/// <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)); }