public async Task <ActionResult> BlogPostIndex(int?id, int?page) { if (id == null) { return(NotFound()); } var pageNumber = page ?? 1; var pageSize = 3; var blogPostsFiltered = await _context.Posts.Where(p => p.BlogId == id && p.PublishState == Enums.PublishState.ProductionReady) .OrderByDescending(b => b.Created) .ToPagedListAsync(pageNumber, pageSize); var blogPosts = await _context.Posts.Where(p => p.BlogId == id) .OrderByDescending(b => b.Created) .ToPagedListAsync(pageNumber, pageSize); //specify which view to redirect to, otherwise it will redirect to BlogPostIndex which doesn't exist var blog = await _context.Blogs.FirstOrDefaultAsync(m => m.Id == id); ViewData["HeaderText"] = blog.Name; ViewData["SubText"] = blog.Description; ViewData["HeaderImage"] = _blogImageService.DecodeImage(blog.ImageData, blog.ContentType); if (User.IsInRole("Administrator") || User.IsInRole("Moderator")) { return(View(blogPosts)); } else { return(View(blogPostsFiltered)); } }
//update image action to take in page number public async Task <IActionResult> Index(int?page) { var lpImageData = await _blogImageService.EncodeFileAsync("Banner.png"); ViewData["HeaderImage"] = _blogImageService.DecodeImage(lpImageData, "png"); ViewData["HeaderText"] = "Hi, I'm Stephen Souvall."; ViewData["SubText"] = "This is my blog."; //Load the view with all blog data //must inject ApplicationDbContext _context first then create an instance of it in HomeController var pageNumber = page ?? 1; var pageSize = 6; //var allBlogs = await _context.Blogs.OrderByDescending(b => b.Created) // .Include(b => b.Posts) // .ToPagedListAsync(pageNumber, pageSize); var indexVM = new HomeIndexViewModel() { FeaturedPosts = await _context.Posts.Where(p => p.IsFeatured == true).ToListAsync(), Blogs = await _context.Blogs.OrderByDescending(b => b.Created).Include(b => b.Posts).ToPagedListAsync(pageNumber, pageSize) }; //return View(allBlogs); return(View(indexVM)); }
private async Task LoadAsync(BlogUser user) { var userName = await _userManager.GetUserNameAsync(user); var phoneNumber = await _userManager.GetPhoneNumberAsync(user); Username = userName; CurrentImage = _blogImageService.DecodeImage(user.ImageData, user.ContentType); Input = new InputModel { DisplayName = user.DisplayName, PhoneNumber = phoneNumber }; }