Пример #1
0
        public async Task <IActionResult> GetLikes([FromQuery] LikesQueryParams likesQueryParams)
        {
            var currentUserId = int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value);

            likesQueryParams.CurrentUserId = currentUserId;

            var users = await _repo.GetUsers(likesQueryParams);

            var usersDtos = _mapper.Map <IEnumerable <UserForListDto> >(users);

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

            return(Ok(usersDtos));
        }
Пример #2
0
        public async Task <PagedList <User> > GetUsers(LikesQueryParams likesQueryParams)
        {
            var results = _context.Users.AsQueryable();

            if (likesQueryParams.Likers)
            {
                var userLikers = await GetUserLikers(likesQueryParams.CurrentUserId);

                results = results.Where(u => userLikers.Contains(u.Id));
            }

            if (likesQueryParams.Likees)
            {
                var userLikees = await GetUserLikees(likesQueryParams.CurrentUserId);

                results = results.Where(u => userLikees.Contains(u.Id));
            }

            results = results.Include(u => u.Photos);

            return(await PagedList <User> .CreateAsync(results, likesQueryParams.PageNumber, likesQueryParams.PageSize));
        }