public async Task <ActionResult <IEnumerable <FETrip> > > GetAll([FromQuery] GetAllTripsRequest request)
 {
     try
     {
         return(await tripsRepository.GetAll(request));
     }
     catch (Exception e)
     {
         return(StatusCode(500, e));
     }
 }
        public async Task <List <FETrip> > GetAll(GetAllTripsRequest request)
        {
            var allTrips = appDbContext.Trips.Include(x => x.Passengers).Include(u => u.User);
            var allUsers = await appDbContext.Users.ToListAsync();

            var allPassengers = await appDbContext.Passengers.ToListAsync();

            var tripsListQuery = allTrips.Select(item => new FETrip
            {
                ID          = item.TripId,
                DriverID    = item.DriverId,
                Driver      = item.User.FullName,
                Origin      = item.Origin,
                Destination = item.Destination,
                LeavingDate = item.LeavingDate,
                ReturnDate  = item.ReturnDate,
                MaxSeats    = item.MaxSeats,
                CarPlate    = item.CarPlate,
                CarType     = item.CarType,
                Status      = item.Status,
                Comments    = item.Comments,
                PhoneNumber = item.User.PhoneNumber,
                SlackId     = item.User.SlackId,
                Passengers  = preparePassengers(allPassengers.Where(passenger => passenger.TripId == item.TripId).ToList(), allUsers)
            });

            if (!string.IsNullOrEmpty(request.Origin))
            {
                tripsListQuery = tripsListQuery.Where(trip => trip.Origin == request.Origin);
            }
            if (!string.IsNullOrEmpty(request.Destination))
            {
                tripsListQuery = tripsListQuery.Where(trip => trip.Destination == request.Destination);
            }
            if (request.Date.HasValue)
            {
                tripsListQuery = tripsListQuery.Where(trip => trip.LeavingDate.Equals(request.Date));
            }
            if (request.DriverID.HasValue)
            {
                tripsListQuery = tripsListQuery.Where(trip => trip.DriverID == request.DriverID);
            }
            if (!string.IsNullOrEmpty(request.Status))
            {
                tripsListQuery = tripsListQuery.Where(trip => trip.Status == request.Status);
            }
            if (!string.IsNullOrEmpty(request.CarType))
            {
                tripsListQuery = tripsListQuery.Where(trip => trip.CarType == request.CarType);
            }
            return(await tripsListQuery.ToListAsync());
        }