예제 #1
0
 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));
 }
예제 #2
0
        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))
                      ));
        }
예제 #5
0
        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));
 }