public IActionResult GetAllLists([FromQuery] QueryParameters queryParameters) { var foodItems = _foodListRepository.GetAll(queryParameters) .Where(x => x.UserId == _userManager.GetUserId(HttpContext.User)); var allItemCount = _foodListRepository.Count(); var paginationMetadata = new { totalCount = allItemCount, pageSize = queryParameters.PageSize, currentPage = queryParameters.Page, totalPages = queryParameters.GetTotalPages(allItemCount) }; Response.Headers.Add("X-Pagination", Newtonsoft.Json.JsonConvert.SerializeObject(paginationMetadata)); var links = CreateLinksForCollection(queryParameters, allItemCount); var toReturn = foodItems.Select(x => ExpandSingleFoodItem(x)); return(Ok(new { value = toReturn, links = links })); }
public IHttpActionResult GetAllLists(int page = 1, int pageSize = MaxPageSize) { try { if (pageSize > MaxPageSize) { pageSize = MaxPageSize; } IQueryable <FoodList> foodLists = _foodListRepository .GetAll() .Where(x => x.UserId == CurrentUserId); var paginationHeader = new { totalCount = foodLists.Count() // Add more headers here if you want... // Link to next and previous page etc. // Also see OData-Options for this }; var result = foodLists .OrderBy(x => x.Id) .Skip(pageSize * (page - 1)) .Take(pageSize) .ToList(); HttpContext.Current.Response.AppendHeader("X-Pagination", JsonConvert.SerializeObject(paginationHeader)); return(Ok(result.Select(x => Mapper.Map <FoodListViewModel>(x)))); } catch (Exception exception) { return(InternalServerError(exception)); } }
public IEnumerable <FoodList> GetAll() { return(_foodListRepository.GetAll()); }