public async Task OnGet(int index = 1) { IEnumerable <User_Picture> userPictures = null; var Pics = await _caching.GetPhotosByScoreAsync((index - 1) * 6, index * 6); if (Pics == null) { Pics = await _dataAccess.GetPaginatedPicturesAsync(index, 6); _caching.InsertPhotosAsync(Pics); } if (Pics != null) { if (!User.Identity.IsAuthenticated) { userPictures = Pics.Select(elem => new User_Picture { Id = elem.Id, Rating = elem.Rating, Votes = elem.Votes, Url = elem.Url, Thumbnail_Url = elem.Thumbnail_Url, Author = elem.User_Id, IsVoted = true }); } else { var userId = User.FindFirst("userId"); var userPics = await _caching.GetVotesByUserIdAsync(userId.Value); if (userPics == null || userPics.Count() == 0) { var picsVoted = await _dataAccess.GetVotesByUserIdAsync(userId.Value); _caching.InsertVotesAsync(picsVoted); userPics = picsVoted.Select(x => x.Picture_Id); } if (userPics != null) { userPictures = Pics.Select(elem => new User_Picture { Id = elem.Id, Rating = elem.Rating, Votes = elem.Votes, Url = elem.Url, Thumbnail_Url = elem.Thumbnail_Url, Author = elem.User_Id, IsVoted = elem.User_Id == userId.Value || userPics.Any(item => item == elem.Id) }); } else { userPictures = Pics.Select(elem => new User_Picture { Id = elem.Id, Rating = elem.Rating, Votes = elem.Votes, Url = elem.Url, Thumbnail_Url = elem.Thumbnail_Url, Author = elem.User_Id, IsVoted = elem.User_Id == userId.Value }); } } } var picCount = await _dataAccess.GetPictureCountAsync(); Pictures = new PaginatedList <User_Picture>(userPictures, (int)picCount, index, 6); }
public async Task <IActionResult> GetPaginatedPictures(int index) { IEnumerable <User_Picture> userPictures = null; var Pics = await _caching.GetPhotosByScoreAsync((index - 1) * 6, index * 6); if (Pics == null) { Pics = await _dataAccess.GetPaginatedPicturesAsync(index, 6); _caching.InsertPhotosAsync(Pics); } if (Pics != null) { if (!User.Identity.IsAuthenticated) { userPictures = Pics.Select(elem => new User_Picture { Id = elem.Id, Rating = elem.Rating, Votes = elem.Votes, Url = elem.Url, Thumbnail_Url = elem.Thumbnail_Url, Author = elem.User_Id, IsVoted = true }); } else { var userId = User.FindFirst("userId"); var userPics = await _caching.GetVotesByUserIdAsync(userId.Value); if (userPics == null || userPics.Count() == 0) { var picsVoted = await _dataAccess.GetVotesByUserIdAsync(userId.Value); _caching.InsertVotesAsync(picsVoted); userPics = picsVoted.Select(x => x.Picture_Id); } if (userPics != null) { userPictures = Pics.Select(elem => new User_Picture { Id = elem.Id, Rating = elem.Rating, Votes = elem.Votes, Url = elem.Url, Thumbnail_Url = elem.Thumbnail_Url, Author = elem.User_Id, IsVoted = elem.User_Id == userId.Value || userPics.Any(item => item == elem.Id) }); } else { userPictures = Pics.Select(elem => new User_Picture { Id = elem.Id, Rating = elem.Rating, Votes = elem.Votes, Url = elem.Url, Thumbnail_Url = elem.Thumbnail_Url, Author = elem.User_Id, IsVoted = elem.User_Id == userId.Value }); } } var picCount = await _dataAccess.GetPictureCountAsync(); return(Ok(new { pageCount = (int)Math.Ceiling(picCount / 6D), photos = userPictures })); } return(Ok("No data found")); }