예제 #1
0
        public async Task <IEnumerable <Route> > GetRoutes(RoutesFilterQuery query)
        {
            var routes = (await _routesWebRepository.GetRoutes(query)).ToList();

            foreach (var route in routes)
            {
                MarkUserRoute(route);
            }

            return(routes);
        }
예제 #2
0
        public async Task <IEnumerable <Route> > GetRoutes(RoutesFilterQuery query)
        {
            var httpClientQuery = HttpUtility.ParseQueryString(string.Empty);

            httpClientQuery[nameof(query.RouteLengthFrom)]            = query.RouteLengthFrom.ToString();
            httpClientQuery[nameof(query.RouteLengthTo)]              = query.RouteLengthTo.ToString();
            httpClientQuery[nameof(query.SearchRadiusInMeters)]       = query.SearchRadiusInMeters.ToString();
            httpClientQuery[nameof(query.SurfaceLevel)]               = query.SurfaceLevel.ToString();
            httpClientQuery[nameof(query.SurfacePavedPercentageFrom)] = query.SurfacePavedPercentageFrom.ToString();
            httpClientQuery[nameof(query.SurfacePavedPercentageTo)]   = query.SurfacePavedPercentageTo.ToString();
            httpClientQuery[nameof(query.CurrentLatitude)]            = query.CurrentLatitude.ToStringWithDot();
            httpClientQuery[nameof(query.CurrentLongitude)]           = query.CurrentLongitude.ToStringWithDot();

            var responseJson = await Client.GetStringAsync($"{_routesUri}?" + httpClientQuery);

            var result = JsonConvert.DeserializeObject <IEnumerable <Route> >(responseJson);

            return(result);
        }
예제 #3
0
        private async void Button_Click(object sender, System.EventArgs e)
        {
            ((MainActivity)Activity).ShowProgressBar();

            var location = await Geolocation.GetLastKnownLocationAsync();

            var query = new RoutesFilterQuery
            {
                RouteLengthFrom            = (int)_routeLengthSlider.GetSelectedMinValue(),
                RouteLengthTo              = (int)_routeLengthSlider.GetSelectedMaxValue(),
                SurfacePavedPercentageFrom = (int)_routeSurfaceSlider.GetSelectedMinValue(),
                SurfacePavedPercentageTo   = (int)_routeSurfaceSlider.GetSelectedMaxValue(),
                SurfaceLevel         = (TerrainLevel)_terrainLevelSelect.SelectedItemPosition,
                SearchRadiusInMeters = (int)_searchRadiusSlider.GetSelectedMaxValue() * 1000,
                CurrentLatitude      = location.Latitude,
                CurrentLongitude     = location.Longitude
            };

            await _routesAdapter.UpdateRoutes(query);

            ((MainActivity)Activity).HideProgressBar();
        }
예제 #4
0
 public async Task UpdateRoutes(RoutesFilterQuery query)
 {
     _routes = (await _routesService.GetRoutes(query)).ToList();
     NotifyDataSetChanged();
 }