Пример #1
0
        public async Task <PagedList <LikeDto> > GetUserLikes(LikesParam likesParam)
        {
            var users = _context.Users.OrderBy(x => x.UserName).AsQueryable();
            var likes = _context.Likes.AsQueryable();

            if (likesParam.Predicate == "liked")
            {
                likes = likes.Where(like => like.SourceUserId == likesParam.UserId);
                users = likes.Select(like => like.LikedUser);
            }

            if (likesParam.Predicate == "likedby")
            {
                likes = likes.Where(like => like.LikedUserId == likesParam.UserId);
                users = likes.Select(likes => likes.SourceUser);
            }

            var listUsers = users.Select(user => new LikeDto
            {
                Username = user.UserName,
                KnownAs  = user.KnownAs,
                Age      = user.DateOfBirth.CaculateAge(),
                PhotoUrl = user.Photos.FirstOrDefault(x => x.IsMain).Url,
                City     = user.City,
                Id       = user.Id
            });

            return(await PagedList <LikeDto> .CreateAsync(listUsers,
                                                          likesParam.PageNumber, likesParam.PageSize));
        }
Пример #2
0
        public async Task <ActionResult <IEnumerable <LikeDto> > > GetUserLikes([FromQuery] LikesParam likesParam)
        {
            likesParam.UserId = User.GetUserId();

            var users = await _unitOfWork.LikesRepository.GetUserLikes(likesParam);

            Response.AddPaginationHeader(users.CurrentPage,
                                         users.PageSize, users.TotalCount, users.TotalPages);

            return(Ok(users));
        }