public async Task <PagedList <BilliardsMatchDto> > GetFilteredMatches(BilliardsMatchParams matchParams)
        {
            var query = context.BilliardsMatches.AsQueryable();

            query = query.Where(x => x.TournamentId == matchParams.TournamentId);

            if (matchParams.TypeId != 0)
            {
                query = query.Where(x => x.TypeId == matchParams.TypeId);
            }
            else
            {
                // temporarily removed
                // added to automatically get first type of tournament
                // var firstType = await context.BilliardsMatchTypes.OrderBy(s => s.Id).FirstOrDefaultAsync();
                // query = query.Where(x => x.TypeId == firstType.Id);
            }

            if (matchParams.SeasonNumberId != 0)
            {
                query = query.Where(x => x.SeasonNumberId == matchParams.SeasonNumberId);
            }
            else
            {
                // temporarily removed
                // added to automatically get latest season of tournament
                // var firstSeason = await context.Seasons.OrderByDescending(s => s.Id).FirstOrDefaultAsync();
                // query = query.Where(x => x.SeasonNumberId == firstSeason.Id);
            }
            if (matchParams.ModeId != 0)
            {
                query = query.Where(x => x.ModeId == matchParams.ModeId);
            }

            query = query.OrderByDescending(s => s.SeasonNumberId).ThenByDescending(s => s.Id);

            return(await PagedList <BilliardsMatchDto> .CreateAsync(query.ProjectTo <BilliardsMatchDto>(mapper.ConfigurationProvider),
                                                                    matchParams.PageNumber, matchParams.PageSize));
        }
Exemple #2
0
        public async Task <ActionResult <IEnumerable <BilliardsMatchDto> > > GetFilteredMatches([FromQuery] BilliardsMatchParams matchParams)
        {
            var matches = await unitOfWork.BilliardsGameRepository.GetFilteredMatches(matchParams);

            Response.AddPaginationHeader(matches.CurrentPage, matches.PageSize, matches.TotalCount, matches.TotalPages);

            return(Ok(matches));
        }
Exemple #3
0
        public async Task <ActionResult <IEnumerable <BilliardsMatchDto> > > GetMatchesByTournament([FromQuery] BilliardsMatchParams matchParams)
        {
            var tournament = await unitOfWork.BilliardsTournamentRepository.GetTournamentById(matchParams.TournamentId);

            if (tournament == null)
            {
                return(BadRequest("Invalid tournament."));
            }

            var matches = await unitOfWork.BilliardsGameRepository.GetMatchesByTournamentAsync(matchParams);

            Response.AddPaginationHeader(matches.CurrentPage, matches.PageSize, matches.TotalCount, matches.TotalPages);

            return(Ok(matches));
        }
        public async Task <PagedList <BilliardsMatchDto> > GetMatchesByTournamentAsync(BilliardsMatchParams matchParams)
        {
            var query = context.BilliardsMatches.AsQueryable();

            query = query.Where(x => x.TournamentId == matchParams.TournamentId);

            query = query.OrderByDescending(s => s.Id).ThenByDescending(s => s.SeasonNumberId);

            return(await PagedList <BilliardsMatchDto> .CreateAsync(query.ProjectTo <BilliardsMatchDto>(mapper.ConfigurationProvider),
                                                                    matchParams.PageNumber, matchParams.PageSize));
        }