public async Task <PagedList <MemeVM> > GetPagedUsersFavourites(int page, int itemsPerPage, System.Security.Claims.ClaimsPrincipal user) { string userId = user.Claims.First(c => c.Type == "UserID").Value; var MemeList = await _favouriteService.GetUsersFavourites(userId); List <MemeVM> listVM = new List <MemeVM>(); var resList = new PagedList <MemeVM>(); foreach (var m in MemeList) { listVM.Add(await MapMemeVM(m, user)); } //available pages resList.PageCount = (int)Math.Ceiling(((double)listVM.Count() / itemsPerPage)); listVM = listVM.Skip((page - 1) * itemsPerPage).Take(itemsPerPage).ToList(); resList.ItemsPerPage = itemsPerPage; resList.Page = page; resList.TotalItems = listVM.Count(); resList.Items = listVM; return(resList); }