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); }
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()); }
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())); }