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));
            }
        }
Exemple #2
0
        //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
            };
        }