/// <summary> /// The blog post list. /// </summary> /// <param name="renderModel"> /// The render model. /// </param> /// <returns> /// The <see cref="ActionResult"/>. /// </returns> public ActionResult BlogPostList(RenderModel renderModel) { int pageNumber = 1; int itemsPerPage = 5; if (!string.IsNullOrEmpty(Request.QueryString["page"])) { int.TryParse(Request.QueryString["page"], out pageNumber); } List<BlogPost> blogPosts = ContentHelper.GetChildren<BlogPost>(1089, true).Where(p => p.CategoryId == renderModel.Content.Id).OrderByDescending(p => p.CreateDate).ToList(); int totalPageCount = (int)Math.Ceiling((double)blogPosts.Count() / itemsPerPage); PagedPostList viewModel = new PagedPostList { Header = string.Format("{0} posts", renderModel.Content.Name), CurrentUrl = renderModel.Content.Url, PageNumber = pageNumber, TotalNumberOfPages = totalPageCount }; IEnumerable<BlogPost> posts = blogPosts.Skip(itemsPerPage * (pageNumber - 1)).Take(itemsPerPage); // Will all be the same category Category category = ContentHelper.GetByNodeId<Category>(renderModel.Content.Id); CategoryViewModel categoryViewModel = new CategoryViewModel { Name = category.Name, Url = category.Url }; foreach (BlogPost blogPost in posts) { viewModel.Posts.Add(new PostViewModel { BodyContent = blogPost.BodyText, Category = categoryViewModel, PostDate = blogPost.CreateDate, Title = blogPost.Name, Url = blogPost.Url }); } return this.View("BlogPostList", viewModel); }
/// <summary> /// The blog post. /// </summary> /// <param name="renderModel"> /// The render model. /// </param> /// <returns> /// The <see cref="ActionResult"/>. /// </returns> public ActionResult BlogPost(RenderModel renderModel) { BlogPost post = ContentHelper.GetByNodeId<BlogPost>(renderModel.Content.Id); Category category = ContentHelper.GetByNodeId<Category>(post.CategoryId); CategoryViewModel categoryViewModel = new CategoryViewModel { Name = category.Name, Url = category.Url }; PostViewModel viewModel = new PostViewModel() { Content = post, BodyContent = post.BodyText, Category = categoryViewModel, PostDate = post.CreateDate, Title = post.Name, Url = post.Url }; return View("BlogPost", viewModel); }