public async Task <IEnumerable <View.Ride.Ride> > GetRides(RideGetBinding binding) { using (var context = GetMainContext()) { return(await context.Rides .WhereUser(UserId) .Where(binding) .Include(x => x.DestinationCity) .Include(x => x.OriginCity) .OrderBy(x => x.DateOfDeparture) .Select(x => new View.Ride.Ride(x)) .ToListAsync()); } }
public static IQueryable <Ride> Where(this IQueryable <Ride> query, RideGetBinding binding) { return(query.WhereIf(binding.From.HasValue, x => x.DateOfDeparture >= binding.From) .WhereIf(binding.To.HasValue, x => x.DateOfDeparture <= binding.To)); }
public async Task <IActionResult> Get([FromQuery] RideGetBinding binding) => Ok(await _rideHandler.GetRides(binding));