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)); }
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)); }