public async Task <PagedList <LikeDto> > GetUserLikes(LikesParameters likesParameters) { var users = this.dataContext.Users.OrderBy(user => user.UserName).AsQueryable(); var likes = this.dataContext.Likes.AsQueryable(); if (likesParameters.Predicate == "liked") { likes = likes.Where(like => like.SourceUserId == likesParameters.UserId); users = likes.Select(like => like.LikedUser); } if (likesParameters.Predicate == "LikedBy") { likes = likes.Where(like => like.LikedUserId == likesParameters.UserId); users = likes.Select(like => like.SourceUser); } var likedUsers = users.Select(user => new LikeDto { UserName = user.UserName, KnownAs = user.KnownAs, Age = user.DateOfBirth.CalculateAge(), PhotoUrl = user.Photos.FirstOrDefault(photo => photo.IsMain).Url, City = user.City, Id = user.Id, }); return(await PagedList <LikeDto> .CreateAsync(likedUsers, likesParameters.PageNumber, likesParameters.PageSize)); }
public async Task <ActionResult <PagedList <LikeDto> > > GetUserLikes([FromQuery] LikesParameters likesParameters) { likesParameters.UserId = User.GetUserId(); var users = await this.unitOfWork.LikesRepository.GetUserLikes(likesParameters); Response.AddPaginationHeader(users.CurrentPage, users.PageSize, users.TotalCount, users.TotalPages); return(Ok(users)); }