public async Task <IActionResult> BlogPost(long?id) { if (id == null) { return(NotFound()); } var post = await _context.BlogPosts .AsNoTracking() .Include(bp => bp.Author) .Include(bp => bp.BlogPostCategory) .ThenInclude(bpc => bpc.Category) .Where(bp => bp.Id == id && bp.Public == true && bp.PublishOn < DateTime.Now) .FirstOrDefaultAsync(); if (post == null) { return(NotFound()); } var bpvm = new ViewBlogPostViewModel() { Author = $"{post.Author.FirstName} {post.Author.LastName}", Title = post.Title, Description = post.Description, Content = post.Content, ModifiedAt = post.ModifiedAt, Categories = post.BlogPostCategory.Select(c => c.Category).ToList() }; bpvm.Content = CommonMarkConverter.Convert(bpvm.Content); return(View(bpvm)); }
public IActionResult ViewBlog(int id) { if (id == 0) { return(View()); } IList <Blog> blogs = context.Blogs.Include(p => p.User).Where(x => x.UserID == id).ToList(); //User thePost = context.Users.Include(x => x.Blogs).Single(x => x.ID == id); User user = context.Users.Single(x => x.ID == id); ViewBlogPostViewModel posts = new ViewBlogPostViewModel { User = user, Blogs = blogs }; return(View(posts)); }
public async Task <IActionResult> FeaturePosts(long id) { var feature = await _context.Features.FindAsync(id); if (feature == null) { return(NotFound()); } var bpfs = await _context.BlogPostFeature .AsNoTracking() .Where(bpf => bpf.FeatureId == feature.Id && bpf.BlogPost.Public == true && bpf.BlogPost.PublishOn < DateTime.Now) .Include(bpf => bpf.BlogPost) .ThenInclude(bp => bp.Author) .Include(bpf => bpf.BlogPost) .ThenInclude(bp => bp.BlogPostCategory) .ThenInclude(bpc => bpc.Category) .ToListAsync(); List <ViewBlogPostViewModel> viewPosts = new List <ViewBlogPostViewModel>(); foreach (var bpf in bpfs) { var bpView = new ViewBlogPostViewModel() { Author = $"{bpf.BlogPost.Author.FirstName} {bpf.BlogPost.Author.LastName}", Title = bpf.BlogPost.Title, Description = bpf.BlogPost.Description, Categories = bpf.BlogPost.BlogPostCategory.Select(c => c.Category).ToList(), ModifiedAt = bpf.BlogPost.ModifiedAt, Id = bpf.BlogPost.Id }; viewPosts.Add(bpView); } ViewFeaturePostsViewModel vfpvm = new ViewFeaturePostsViewModel() { Feature = feature, BlogPosts = viewPosts }; return(View(vfpvm)); }