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)); }
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)); }
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)); }