public async Task <List <Match> > Get(MatchCollectionRequest request) { var query = from match in _ctx.Matches where (request.Team1ID.HasValue) ? (match.Team1ID == request.Team1ID || match.Team2ID == request.Team1ID) : true where (request.Team2ID.HasValue) ? (match.Team2ID == request.Team2ID || match.Team1ID == request.Team2ID) : true where (request.ConfederationID.HasValue) ? match.Team1.ConfederationID == request.ConfederationID || match.Team2.ConfederationID == request.ConfederationID : true where (request.TournamentID.HasValue) ? match.TournamentID == request.TournamentID : true where (request.TournamentTypeID.HasValue) ? match.Tournament.TournamentTypeID == request.TournamentTypeID : true where (request.StartDate.HasValue) ? match.Date >= request.StartDate : true where (request.EndDate.HasValue) ? match.Date <= request.EndDate : true orderby match.Date ascending select match; var matchesList = await query.Include(e => e.Team1) .Include(e => e.Team2) .Include(e => e.Tournament) .Take(request.Quantity.GetValueOrDefault(int.MaxValue)) .ToListAsync(); return(_mapper.Map <List <Match> >(matchesList)); }
public Task <List <Match> > Get(MatchCollectionRequest request) { return(_matchRepository.Get(request)); }