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