コード例 #1
0
        public async Task <ActionResult <CursorPaginatedResponse <ExpenseDto> > > GetExpensesForBudgetAsync(int id, [FromQuery] CursorPaginationParameters searchParams)
        {
            var budget = await budgetRepository.GetByIdAsync(id);

            if (budget == null)
            {
                return(NotFound($"No Budget with Id {id} found."));
            }

            if (!IsUserAuthorizedForResource(budget))
            {
                return(Unauthorized("You can only access your own budget."));
            }

            var expenses = await budgetRepository.GetExpensesForBudgetAsync(id, searchParams);

            var paginatedResponse = CursorPaginatedResponse <ExpenseDto> .CreateFrom(expenses, mapper.Map <IEnumerable <ExpenseDto> >, searchParams.IncludeNodes, searchParams.IncludeEdges);

            return(Ok(paginatedResponse));
        }