Exemple #1
0
        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
            }));
        }
Exemple #2
0
        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));
            }
        }
Exemple #3
0
 public IEnumerable <FoodList> GetAll()
 {
     return(_foodListRepository.GetAll());
 }