示例#1
0
        public async Task <IActionResult> GetFoodByCategoryId(int id, [FromQuery] PaginationFilter paginationFilter)
        {
            try
            {
                var queryResult     = _ctx.Foods.Include(c => c.Category).AsNoTracking().Where(f => f.Category.Id == id);
                var paginatedResult = await queryResult.Skip((paginationFilter.PageNumber - 1) *paginationFilter.PageSize).Take(paginationFilter.PageSize).ToListAsync();

                var pagination = new Pagination(queryResult.Count(), paginationFilter);
                var response   = new PaginatedResponse <IEnumerable <Food> >(paginatedResult, pagination);

                return(Ok(response));
            }
            catch (Exception e)
            {
                _logger.LogError(e, "error in " + e.TargetSite);
                return(StatusCode(500));
            }
        }
        public async Task <IActionResult> Get([FromQuery] PaginationFilter paginationFilter)
        {
            try
            {
                var queryResult     = _ctx.FoodEntries.Where(e => e.UserId == Guid.Parse(GetUserId())).Include(c => c.Food).AsNoTracking();
                var paginatedResult = await queryResult.Skip((paginationFilter.PageNumber - 1) *paginationFilter.PageSize).Take(paginationFilter.PageSize).ToListAsync();

                var pagination = new Pagination(queryResult.Count(), paginationFilter);
                var response   = new PaginatedResponse <IEnumerable <FoodEntry> >(paginatedResult, pagination);

                return(Ok(response));
            }
            catch (Exception e)
            {
                _logger.LogError(e, "error in " + e.TargetSite);
                return(StatusCode(500));
            }
        }