예제 #1
0
        public static IQueryable <Trip> FindTrips(this IQueryable <Trip> trips, TripQueryModel request)
        {
            var origin      = request.Start.ToIntermediatePoint();
            var destination = request.End.ToIntermediatePoint();
            var radius      = request.Radius;

            trips = trips.Include(x => x.IntermediatePoints)
                    .Where(x => x.IntermediatePoints.Any(
                               ip => ip.Coordinates.Distance(origin.Coordinates) < radius))
                    .Where(x => x.IntermediatePoints.Any(
                               ip => ip.Coordinates.Distance(destination.Coordinates) < radius));

            return(trips);
        }
        public IHttpActionResult GetTrips(TripQueryModel request)
        {
            var trips = tripQuery.Trips.FindTrips(request).ToList();

            return(Ok(trips));
        }