private void SetPagingValues(ref PagedBlogPostCMSViewModel pager) { pager.StartPage = pager.CurrentPage - 5; pager.EndPage = pager.CurrentPage + 4; if (pager.StartPage <= 0) { pager.EndPage -= (pager.StartPage - 1); pager.StartPage = 1; } if (pager.EndPage > pager.TotalPages) { pager.EndPage = pager.TotalPages; if (pager.EndPage > 10) { pager.StartPage = pager.EndPage - 9; } } }
public async Task <ActionResult> GetBlogPostList(int iPageno, string sSortName) { int iPageSize = Convert.ToInt32(StringConstants.BLOG_PAGE_SIZE); PagedBlogPostCMSViewModel pagedView = new PagedBlogPostCMSViewModel(); //IEnumerable<IPublishedContent> pagedResults; try { if (Request.IsAjaxRequest()) { RealHomesDataTypesCMSModel settingsName = new RealHomesDataTypesCMSModel(); //Get the All the posts under blog content node var results = Umbraco.TypedContent(WebConfigurationManager.AppSettings[settingsName.BLOGMAINCT_SETTING_NAME]).Children(); if (results.Count() > 0) { pagedView.TotalRecords = results.Count(); } else { pagedView.TotalRecords = 0; } //filtered results for requested page var pagedResults = results.Skip((iPageno - 1) * iPageSize).Take(iPageSize); if (pagedResults.Count() > 0) { //Prepare Property Models to be displayed on the result page List <BlogPostCMSViewModel> BlogPosts = new List <BlogPostCMSViewModel>(); foreach (var result in pagedResults) { BlogPostCMSViewModel Post = new BlogPostCMSViewModel(); //IPublishedContent node = Umbraco.Content(result.Id); Post = MapNodeToModel(result); BlogPosts.Add(Post); } pagedView.BlogPostModels = BlogPosts; } } pagedView.TotalPages = Convert.ToInt32(Math.Ceiling((double)pagedView.TotalRecords / iPageSize)); pagedView.CurrentPage = iPageno; SetPagingValues(ref pagedView); PagedPropertyViews pagedresults = new PagedPropertyViews(); return(PartialView(StringConstants.PARTIAL_VIEW_PATH + PARTIAL_VIEW_LIST, await System.Threading.Tasks.Task.FromResult(pagedView))); } catch (Exception x) { //log the error return(null); } }