public async Task <IActionResult> Index(int id) { if (!ModelState.IsValid) { return(BadRequest()); } var post = await _postService.GetByIdAsync(id); IEnumerable <PostReplyData> replies = PostRepliesModelBuilder(post); var vm = new PostIndexData { Id = post.Id, Title = post.Title, Content = post.Content, Created = post.Created, AuthorId = post.User.Id, AuthorName = post.User.UserName, AuthorImageUrl = post.User.ProfileImageUrl, AuthorRating = post.User.Rating.ToString(), Replies = replies, }; return(View(vm)); }
// GET: Posts public IActionResult Index(int?id) //public async Task<IActionResult> Index(int? id) { // .Include is eager loading var viewModel = new PostIndexData(); viewModel.Posts = _context.Post .Include(i => i.Address) .Include(i => i.Animal) .Include(i => i.Animal.Species); //.Include(i => i.Animal.Breeds); if (id != null) { ViewBag.PostID = id.Value; viewModel.Animal = viewModel.Posts.Where(i => i.PostID == id.Value).Single().Animal; //viewModel.Species = viewModel.Posts.Where(i => i.PostID == id.Value).Single().Animal.Species; //viewModel.Breeds = viewModel.Posts.Where(i => i.PostID == id.Value).Single().Animal.Breeds; viewModel.Breeds = from s in _context.Breed.Where(i => i.AnimalID == viewModel.Animal.AnimalID) select s; viewModel.Address = viewModel.Posts.Where(i => i.PostID == id.Value).Single().Address; } return(View(viewModel)); }