public async Task <List <ElementoModelo> > Lista_Elementos(DispensadorModelo dispensador) { Elementos = new List <ElementoModelo>(); try { var gm = new GetMaker(); var url = GlobalSettings.BASE_URL + GlobalSettings.EQUIPOS_DISPENSADOR_URL; string[] contenido = new string[1]; contenido[0] = dispensador.Id_Dispensador.ToString(); string finalurl = gm.Replace(url, contenido); var httpResponse = await client.GetAsync(finalurl); if (httpResponse.IsSuccessStatusCode) { var responseContent = await httpResponse.Content.ReadAsStringAsync(); Elementos = JsonConvert.DeserializeObject <List <ElementoModelo> >(responseContent); } } catch (Exception e) { } return(Elementos); }
private async Task listarDispensadores() { var idEmpresa = Application.Current.Properties["idEmpresa"]; var idUsuario = Application.Current.Properties["UserID"]; var url = GlobalSettings.BASE_URL + GlobalSettings.DISPENSADORES_URL + idEmpresa + '/' + idUsuario; var dispensador = new DispensadorModelo(); var getDispensador = new GetService <DispensadorModelo>(url); Tuple <bool, string> ans = await getDispensador.SendRequest(dispensador); if (ans.Item1) { List <DispensadorModelo> listaDispensadores = JsonConvert.DeserializeObject <List <DispensadorModelo> >(ans.Item2); try { var position = await Geolocation.GetLastKnownLocationAsync();//gt current location if (position != null) { var locator = CrossGeolocator.Current; locator.DesiredAccuracy = 50; //var position = await locator.GetPositionAsync(); //var position = await Geolocation.GetLastKnownLocationAsync(); Location locacionUsuario = new Location(position.Latitude, position.Longitude); var numDispensadores = listaDispensadores.Count; NumeroTotalEquipos = 0; for (int i = 0; i < numDispensadores; i++) { Location dispensadorLocacion = new Location(listaDispensadores[i].Latitud, listaDispensadores[i].Longitud); listaDispensadores[i].Distancia = Math.Round(Location.CalculateDistance(dispensadorLocacion, locacionUsuario, DistanceUnits.Kilometers), 1); NumeroTotalEquipos = NumeroTotalEquipos + listaDispensadores[i].NumEquipos; } listaDispensadores = listaDispensadores.OrderBy(item => item.Distancia).ToList <DispensadorModelo>(); } } catch (FeatureNotSupportedException fnsEx) { await Application.Current.MainPage.DisplayAlert("Error", "Tu telefono no tiene gps", "OK"); } catch (FeatureNotEnabledException fneEx) { await Application.Current.MainPage.DisplayAlert("Error", "No tienes encendido el gps", "OK"); } catch (PermissionException pEx) { await Application.Current.MainPage.DisplayAlert("Error", "Debes conceder los permisos para acceder a tu ubicacion", "OK"); } catch (Exception ex) { await Application.Current.MainPage.DisplayAlert("Error", "No pudimos detectar tu ubicacion", "OK"); } Dispensadores = new ObservableCollection <DispensadorModelo>(listaDispensadores);//displego la lista de dispensadores en la vista } }