public static IQueryable <DailyNutritionLogDTO> OrderDailyNutritionLogDTOsBy(
            this IQueryable <DailyNutritionLogDTO> dailyNutritionLogDTOs,
            DailyNutritionLogSortingOption sortingOption)
        {
            switch (sortingOption)
            {
            case DailyNutritionLogSortingOption.mostRecent:
                return(dailyNutritionLogDTOs.OrderByDescending(_ => _.NutritionLogDate));

            case DailyNutritionLogSortingOption.leastRecent:
                return(dailyNutritionLogDTOs.OrderBy(_ => _.NutritionLogDate));

            default:
                throw new ArgumentException("A valid ordering option must be supplied");
            }
        }
        public async Task <IActionResult> Get(
            [FromRoute] int userId,
            [FromQuery] int pageSize = 10,
            [FromQuery] int page     = 0,
            [FromQuery] DailyNutritionLogSortingOption orderBy = DailyNutritionLogSortingOption.mostRecent)
        {
            _claimsManager.Init(HttpContext.User);

            if (!_claimsManager.VerifyUserId(userId))
            {
                _logger.LogInformation(
                    $"User with id: {_claimsManager.GetUserIdClaim()} attempting to access nutrition target for userId: {userId}");
                return(Forbid());
            }

            var dailyNutritionLogs = await _context
                                     .DailyNutritionLogs
                                     .Where(_ => _.UserId == userId)
                                     .GetDailyNutritionLogDTOs()
                                     .OrderDailyNutritionLogDTOsBy(orderBy)
                                     .ToListAsync();

            return(Ok(dailyNutritionLogs));
        }