Example #1
0
 public async Task <ActionResult> Index()
 {
     var output = await _categoryAppService.GetPlates(BuildPageListRequstDto()); return(View(output));
 }
Example #2
0
        public async Task <ForumHomeData> GetHomeData()
        {
            ForumHomeData data = new ForumHomeData();

            data.Plates = (await _plateAppService.GetPlates(new GetPageListRequstDto())).Items;

            var list = await _forumPostRepository.GetAll()
                       .GroupJoin(_memberRepository.GetAll(), left => left.MemberId, right => right.Id,
                                  (left, right) => new
            {
                Posts  = left,
                Member = right
            })
                       .GroupJoin(_plateRepository.GetAll(), left => left.Posts.PlateId, right => right.Id,
                                  (left, right) => new
            {
                Posts  = left.Posts,
                Member = left.Member,
                Plate  = right
            })
                       .OrderByDescending(t => t.Posts.LastCommentTime)
                       .Take(5)
                       .ToListAsync();

            data.TopPosts = new EditableList <PostListItem>();
            foreach (var item in list)
            {
                data.TopPosts.Add(new PostListItem()
                {
                    Id              = item.Posts.Id,
                    CommentCount    = item.Posts.CommentCount,
                    CreationTime    = item.Posts.CreationTime,
                    MemberBindRooms = item.Member.FirstOrDefault()?.BindRooms,
                    MemberName      = item.Member.FirstOrDefault()?.Name,
                    MemberThumbnail = item.Member.FirstOrDefault()?.Thumbnail,
                    Images          = new List <string>(),
                    PlateName       = item.Plate.FirstOrDefault()?.Name,
                    ReadCount       = item.Posts.ReadCount,
                    Title           = item.Posts.Title,
                    Summary         = item.Posts.Summary
                });
            }

            foreach (var post in data.TopPosts)
            {
                var iamges =
                    await
                    _forumImageRepository.GetAll()
                    .Where(t => t.OwnerId == post.Id && t.Type == ForumImageType.Posts)
                    .OrderBy(t => t.Id)
                    .Take(3)
                    .ToListAsync();

                foreach (var iamge in iamges)
                {
                    post.Images.Add(iamge.Image);
                }
            }

            return(data);
        }