Beispiel #1
0
        public async Task <ActionResult <List <JourneyDto> > > SearchJourney2([FromBody] JourneyAdvancedSearchDto dto)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }
            var origin = await locationRepository.Get(dto.OriginId);

            var destination = await locationRepository.Get(dto.DestinationId);

            if (origin == null || destination == null)
            {
                return(NotFound(""));
            }

            // TODO : Send/Get all active the journeys into/from Redis
            var journeys = journeyRepository.GetAllLazy();

            var eligibleJourneys = journeys.ToList().Where(j => j.IsActive && CoordinateHelper.IsBetween(
                                                               new Coordinate {
                X = origin.CoorditateX, Y = origin.CoorditateY
            },
                                                               new Coordinate {
                X = destination.CoorditateX, Y = destination.CoorditateY
            },
                                                               new Coordinate {
                X = j.Origin.CoorditateX, Y = j.Origin.CoorditateY
            },
                                                               new Coordinate {
                X = j.Destination.CoorditateX, Y = j.Destination.CoorditateY
            }
                                                               ));

            return(Ok(eligibleJourneys.ToList()));
        }