public async Task <IPagedList <ProgrammingLanguageNavigation> > GetAllLanguageNavigationPaginated( PaginationQueryBase paginationQuery) { return(await _context.ProgrammingLanguages .Where(l => !l.IsDeleted) .Select(l => new ProgrammingLanguageNavigation(l.Id, l.Name)) .FromPaginationQueryAsync(paginationQuery)); }
public static async Task <PagedList <T> > FromPaginationQueryAsync <T>(this IQueryable <T> query, PaginationQueryBase pageQuery) { var count = query.Count(); var skip = (pageQuery.Page - 1) * pageQuery.Size; var items = await query.Skip(skip).Take(pageQuery.Size).ToListAsync(); return(new PagedList <T>(items, count, pageQuery.Page, pageQuery.Size)); }
public static PagedList <T> FromEnumerable <T>(this IEnumerable <T> enumerable, PaginationQueryBase pageQuery) { var array = enumerable as T[] ?? enumerable.ToArray(); var count = array.Length; var skip = (pageQuery.Page - 1) * pageQuery.Size; var items = array.Skip(skip).Take(pageQuery.Size); return(new PagedList <T>(items.ToList(), count, pageQuery.Page, pageQuery.Size)); }
public async Task <IActionResult> GetTeamTournaments(Guid teamId, [FromQuery] PaginationQueryBase query) { var tournaments = await Mediator.Send(new GetTournamentNavigationPaginatedQuery { TeamId = teamId, Page = query.Page, Size = query.Size }); var tournamentsWithLinks = tournaments.Select(tournament => new HateoasResponse <TournamentNavigation>(tournament, GetLinksForTournament(tournament.Id, teamId))); return(Ok(HateoasResponseBuilder.FromPagedList( Url, tournaments.ToPagedListResume(), tournamentsWithLinks.ToList(), nameof(GetTeamTournaments)) )); }
public async Task <IActionResult> GetUsers(Guid participationId, [FromQuery] PaginationQueryBase query) { var users = await Mediator.Send(new GetParticipationSessionUsersPaginatedQuery { ParticipationId = participationId, Page = query.Page, Size = query.Size }); var usersWithLinks = users.Select(user => new HateoasResponse <UserSessionNavigation>(user, GetLinksForUser(participationId, user.Id))); return(Ok(HateoasResponseBuilder.FromPagedList( Url, users.ToPagedListResume(), usersWithLinks.ToList(), nameof(GetUsers)) )); }
public async Task <IActionResult> GetTeamParticipationsByTournament(Guid teamId, Guid tournamentId, [FromQuery] PaginationQueryBase query) { var participations = await Mediator.Send(new GetAllParticipationNavigationPaginatedQuery { TeamIdFilter = teamId, TournamentIdFilter = tournamentId, Page = query.Page, Size = query.Size }); var participationsWithLinks = participations.Select(participation => new HateoasResponse <ParticipationNavigation>(participation, GetLinksForParticipation(tournamentId, teamId, participation.StepId))); return(Ok(HateoasResponseBuilder.FromPagedList( Url, participations.ToPagedListResume(), participationsWithLinks.ToList(), nameof(GetTeamParticipationsByTournament)) )); }
public async Task <IPagedList <RightNavigation> > GetAllRightNavigationPaginated( PaginationQueryBase paginationQuery) { return(await _context.Rights.Select(r => ToRightNavigation(r)).FromPaginationQueryAsync(paginationQuery)); }