public Task <CursorPagedList <Expense, int> > GetExpensesForBudgetAsync(int budgetId, CursorPaginationParameters searchParams) { IQueryable <Expense> query = context.Expenses .Where(expense => expense.BudgetId == budgetId); return(CursorPagedList <Expense, int> .CreateAsync(query, searchParams)); }
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)); }
public static Task <CursorPagedList <T> > CreateAsync(IQueryable <T> source, CursorPaginationParameters searchParams) { return(CreateAsync(source, searchParams.First, searchParams.After, searchParams.Last, searchParams.Before, searchParams.IncludeTotal)); }
public async Task <ActionResult <CursorPaginatedResponse <IncomeDto> > > GetIncomesAsync([FromQuery] CursorPaginationParameters searchParams) { var expenses = await incomeRepository.SearchAsync(searchParams); var paginatedResponse = CursorPaginatedResponse <IncomeDto> .CreateFrom(expenses, mapper.Map <IEnumerable <IncomeDto> >, searchParams.IncludeNodes, searchParams.IncludeEdges); return(Ok(paginatedResponse)); }
public async Task <ActionResult <CursorPaginatedResponse <UserDto> > > GetUsersAsync([FromQuery] CursorPaginationParameters searchParams) { var users = await userRepository.SearchAsync(searchParams); var paginatedResponse = CursorPaginatedResponse <UserDto> .CreateFrom(users, mapper.Map <IEnumerable <UserDto> >, searchParams); return(Ok(paginatedResponse)); }
public static CursorPaginatedResponse <TDestination, int> CreateFrom <TSource, TDestination>(CursorPagedList <TSource, int> items, Func <IEnumerable <TSource>, IEnumerable <TDestination> > mappingFunction, CursorPaginationParameters searchParams) where TSource : class, IIdentifiable <int> where TDestination : class, IIdentifiable <int> { return(CursorPaginatedResponse <TDestination, int> .CreateFrom(items, mappingFunction, searchParams.IncludeNodes, searchParams.IncludeEdges)); }
public static Task <CursorPagedList <T, R> > CreateAsync <T, R>(IQueryable <T> source, CursorPaginationParameters searchParams, Func <R, string> ConvertIdToBase64, Func <string, R> ConvertBase64ToIdType, Func <IQueryable <T>, R, IQueryable <T> > AddAfterExp, Func <IQueryable <T>, R, IQueryable <T> > AddBeforeExp) where T : class, IIdentifiable <R> where R : IEquatable <R>, IComparable <R> { return(CreateAsync(source, searchParams.First, searchParams.After, searchParams.Last, searchParams.Before, searchParams.IncludeTotal, ConvertIdToBase64, ConvertBase64ToIdType, AddAfterExp, AddBeforeExp)); }
public static Task <CursorPagedList <T, int> > CreateAsync <T>(IQueryable <T> source, CursorPaginationParameters searchParams) where T : class, IIdentifiable <int> { return(CreateAsync(source, searchParams.First, searchParams.After, searchParams.Last, searchParams.Before, searchParams.IncludeTotal)); }
public async Task <ActionResult <CursorPaginatedResponse <MuscleForReturnDto> > > GetMusclesAsync([FromQuery] CursorPaginationParameters searchParams) { var muscles = await muscleRepository.SearchAsync(searchParams); var paginatedResponse = CursorPaginatedResponse <MuscleForReturnDto> .CreateFrom(muscles, mapper.Map <IEnumerable <MuscleForReturnDto> >); return(Ok(paginatedResponse)); }
public async Task <ActionResult <CursorPaginatedResponse <BudgetDto> > > GetBudgetsForUserAsync([FromRoute] int userId, [FromQuery] CursorPaginationParameters searchParams) { if (!IsUserAuthorizedForResource(userId)) { return(Unauthorized("You can only access your own budgets.")); } var budgetParams = mapper.Map <BudgetQueryParameters>(searchParams); budgetParams.UserIds.Add(userId); var budgets = await budgetRepository.SearchAsync(budgetParams); var paginatedResponse = CursorPaginatedResponse <BudgetDto> .CreateFrom(budgets, mapper.Map <IEnumerable <BudgetDto> >, budgetParams); return(Ok(paginatedResponse)); }
public async Task <ActionResult <CursorPaginatedResponse <GymForReturnDto> > > GetUserGymsAsync([FromRoute] int userId, [FromQuery] CursorPaginationParameters searchParams) { if (!IsUserAuthorizedForResource(userId)) { return(Forbidden("You can only access your own gyms.")); } var gymSearchParams = this.mapper.Map <GymSearchParameters>(searchParams); gymSearchParams.UserId = userId; var gyms = await gymRepository.SearchAsync(gymSearchParams); var paginatedResponse = CursorPaginatedResponse <GymForReturnDto> .CreateFrom(gyms, mapper.Map <IEnumerable <GymForReturnDto> >, gymSearchParams); return(Ok(paginatedResponse)); }