Пример #1
0
        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));
        }