Exemple #1
0
        public async Task <IEnumerable <Route> > GetRoutesAsync(RoutesQuery query)
        {
            var routes = await _routesRepository.GetRoutesAsync(query);

            foreach (var route in routes)
            {
                OrderCheckpointsInRoute(route);
                OrderRankingInRoute(route);
            }

            return(routes);
        }
Exemple #2
0
        public async Task <IEnumerable <Route> > GetRoutesAsync(RoutesQuery query)
        {
            var currentLocation = new Point(query.CurrentLongitude, query.CurrentLatitude)
            {
                SRID = 4326
            };
            var routes = _context.Routes
                         .Where(r => r.Properties.PavedPercentage >= query.SurfacePavedPercentageFrom &&
                                r.Properties.PavedPercentage <= query.SurfacePavedPercentageTo)
                         .Where(r => r.Properties.Distance >= query.RouteLengthFrom && r.Properties.Distance <= query.RouteLengthTo)
                         .Where(r => r.Checkpoints.First(cp => cp.Number == 0).Coordinates.IsWithinDistance(currentLocation, query.SearchRadiusInMeters));

            if (query.SurfaceLevel > 0)
            {
                routes = routes.Where(r => r.Properties.TerrainLevel == (TerrainLevel)query.SurfaceLevel);
            }

            return(await routes
                   .Include(r => r.Checkpoints)
                   .Include(r => r.Properties)
                   .Include(r => r.Ranking).ThenInclude(rr => rr.User)
                   .ToListAsync());
        }
Exemple #3
0
        public async Task <IActionResult> GetRoutes([FromQuery] RoutesQuery query)
        {
            var routes = await _routeService.GetRoutesAsync(query);

            return(Ok(_mapper.Map <IEnumerable <CreateRouteDto> >(routes)));
        }
 public async Task <IList <Route> > Handle(RoutesQuery query, CancellationToken cancellationToken)
 {
     return(MapRoutesToViewModel(await _routeRepository.GetAll()));
 }