예제 #1
0
        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));
        }
예제 #2
0
        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));
        }
예제 #3
0
        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));
        }