public List <Trip> Execute(SearchTripsModel searchTripsModel, Guid userId) { var trips = _tripRepository .GetAll() .Include(x => x.Driver) .Include(x => x.Passengers) .Where(x => x.From.Equals(searchTripsModel.From) && x.To.Equals(searchTripsModel.To) && !x.Driver.Id.Equals(userId) && !x.Passengers.Any(y => y.PassengerId.Equals(userId)) && x.Seats - x.Passengers.Count >= searchTripsModel.Seats && x.StartingTime >= searchTripsModel.DateTime && (searchTripsModel.OnlyTwo ? x.OnlyTwoBehind.Equals(searchTripsModel.OnlyTwo) : x.OnlyTwoBehind.Equals(true) || x.OnlyTwoBehind.Equals(false))) .ToList(); foreach (var trip in trips) { trip.CheckUserApplied(userId); } return(trips); }
public ActionResult <IEnumerable <Trip> > Search(SearchTripsModel searchTripsModel) { var userId = User.GetUserIdentifier(); return(_searchTripsQuery.Execute(searchTripsModel, userId)); }