Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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
            }
        }