Beispiel #1
0
 public ResponseHelper GetObtenerColonias(Guid Ciudad, string ubicacion = "", string Nombre = "")
 {
     MVDireccion = new VMDireccion();
     Respuesta   = new ResponseHelper();
     MVDireccion.Colonias(Ciudad, ubicacion, Nombre);
     Respuesta.Data    = MVDireccion;
     Respuesta.Status  = true;
     Respuesta.Message = "Informacion recibida satisfactoriamente";
     return(Respuesta);
 }
Beispiel #2
0
        protected void MuestraColonia(string id, string tipo)
        {
            Guid Ciudad = new Guid(id);

            switch (tipo)
            {
            case "Gestion":
                DDLDColonia.DataSource     = MVDireccion.Colonias(Ciudad);
                DDLDColonia.DataTextField  = "Nombre";
                DDLDColonia.DataValueField = "IdColonia";
                DDLDColonia.DataBind();
                break;

            default:
                break;
            }
        }
Beispiel #3
0
        private async void Map_MapClicked(object sender, Xamarin.Forms.GoogleMaps.MapClickedEventArgs e)
        {
            try
            {
                SLColonias.IsVisible = false;
                SLMensaje.IsVisible  = false;
                var Latitud   = e.Point.Latitude;
                var Longitud  = e.Point.Longitude;
                Pin AquiEstoy = new Pin()
                {
                    Type     = PinType.Place,
                    Label    = "Ubicación",
                    Position = new Position(Latitud, Longitud)
                };
                map.Pins.Clear();
                map.Pins.Add(AquiEstoy);
                var pos = new Position(Latitud, Longitud);

                var    geo      = new Geocoder();
                var    location = new Location();
                string content  = string.Empty;
                IEnumerable <Placemark> placemarks = await Geocoding.GetPlacemarksAsync(Latitud, Longitud);

                IEnumerable <string> addresses = await geo.GetAddressesForPositionAsync(new Position(Latitud, Longitud));

                if (location != null)
                {
                    var oDireccion = new VMDireccion();
                    foreach (var item in placemarks)
                    {
                        string ciudad = string.Empty;
                        if (!string.IsNullOrEmpty(item.Locality))
                        {
                            ApiService ApiService = new ApiService("/api/Direccion");
                            Dictionary <string, string> parameters = new Dictionary <string, string>();
                            parameters.Add("StrNombreCiudad", item.Locality);
                            parameters.Add("CodigoEstado", item.AdminArea);
                            parameters.Add("CodigoPais", item.CountryCode);
                            parameters.Add("Latitud", item.Location.Latitude.ToString());
                            parameters.Add("Longitud", item.Location.Longitude.ToString());
                            var result = await ApiService.GET <VMDireccion>(action : "GetObtenerDireccionConDatosDeGoogle", responseType : ApiService.ResponseType.Object, arguments : parameters);

                            var oReponse = result as ResponseHelper;
                            if (result != null && oReponse.Status != false)
                            {
                                oDireccion = oReponse.Data as VMDireccion;
                                if (oDireccion.ListaDIRECCIONES.Count == 1)
                                {
                                    VMDireccion Colonias = new VMDireccion();
                                    DataTable   dt       = Colonias.Colonias(new Guid(oDireccion.ListaDIRECCIONES[0].CIUDAD));
                                    DireccionesListaColonia.Clear();
                                    MypickerColonia.Items.Clear();
                                    foreach (DataRow items in dt.Rows)
                                    {
                                        DireccionesListaColonia.Add(
                                            new VMDireccion()
                                        {
                                            ID      = new Guid(items["IdColonia"].ToString()),
                                            COLONIA = items["Nombre"].ToString()
                                        });
                                        MypickerColonia.Items.Add(items["Nombre"].ToString());
                                    }
                                    map.MoveToRegion(MapSpan.FromCenterAndRadius(pos, Distance.FromMiles(0.05)));
                                    SLColonias.IsVisible = true;
                                    odireccion           = oDireccion;
                                    break;
                                }
                            }
                            else
                            {
                                lblMensaje.Text     = "Sin servicio en esta ubicación, elige otra ";
                                SLMensaje.IsVisible = true;
                                // await DisplayAlert("Error extraño", "Ocurrio algo mal al recuperar la ubicación intenta de nuevo por favor", "aceptar");
                            }
                        }
                        else
                        {
                            lblMensaje.Text     = "Sin servicio en esta ubicación, elige otra";
                            SLMensaje.IsVisible = true;
                            //await DisplayAlert("Zona no disponible", "No existe servicio en el punto marcado", "Aceptar");
                        }
                    }
                }
            }
            catch (FeatureNotSupportedException)
            {
                // Handle not supported on device exception
                lblMensaje.Text     = "Servicios de ubicación no soportados, selecciona una ubicación en el mapa y descubre las colonias disponibles";
                SLMensaje.IsVisible = true;
                //await DisplayAlert("Aviso del sistema", "Los servicios de ubicacion no soportados por el dispositivo", "Aceptar");
            }
            catch (FeatureNotEnabledException)
            {
                lblMensaje.Text     = "Activa tu ubicación para mostrarte las colonias cercanas a ti, de lo contrario selecciona una ubicación en el mapa y descubre las colonias disponibles";
                SLMensaje.IsVisible = true;

                //await DisplayAlert("Ubicacion no activa", "Activa el GPS para obtener tu ubicacion", "Aceptar");
            }
            catch (PermissionException)
            {
                // Handle permission exception
                lblMensaje.Text     = "Activa los permisos de ubicación para poder mostrarte las colonias cercanas a ti, de lo contrario selecciona una ubicación en el mapa y descubre las colonias disponibles";
                SLMensaje.IsVisible = true;
                //await DisplayAlert("Aviso", "Activa los permisos de ubicacion para continuar", "Aceptar");
            }
            catch (Exception)
            {
                // Unable to get location
                lblMensaje.Text     = "Servicio no disponible en esta zona";
                SLMensaje.IsVisible = true;
                //await DisplayAlert("Aviso", "No se puede obtener la ubicacion, intenta otra", "Aceptar");
            }

            SLCargando.IsVisible = false;
            acLoading.IsRunning  = false;
            acLoading.IsVisible  = false;
            SLDatos.IsVisible    = true;
        }
Beispiel #4
0
        public async void CargaDesdeMenu()
        {
            try
            {
                SLCargando.IsVisible = true;
                SLDatos.IsVisible    = false;
                acLoading.IsRunning  = true;
                acLoading.IsVisible  = true;
                double Latitud;
                double Longitud;
                var    location = new Location();
                location = await Geolocation.GetLocationAsync();

                if (location != null)
                {
                    Latitud  = location.Latitude;
                    Longitud = location.Longitude;
                    var geo = new Geocoder();
                    IEnumerable <Placemark> placemarks = null;

                    placemarks = await Geocoding.GetPlacemarksAsync(Latitud, Longitud);

                    var oDireccion = new VMDireccion();
                    foreach (var item in placemarks)
                    {
                        ApiService ApiService = new ApiService("/api/Direccion");
                        Dictionary <string, string> parameters = new Dictionary <string, string>();
                        parameters.Add("StrNombreCiudad", item.Locality);
                        parameters.Add("CodigoEstado", item.AdminArea);
                        parameters.Add("CodigoPais", item.CountryCode);
                        parameters.Add("Latitud", item.Location.Latitude.ToString());
                        parameters.Add("Longitud", item.Location.Longitude.ToString());
                        var result = await ApiService.GET <VMDireccion>(action : "GetObtenerDireccionConDatosDeGoogle", responseType : ApiService.ResponseType.Object, arguments : parameters);

                        var oReponse = result as ResponseHelper;
                        if (result != null && oReponse.Status != false)
                        {
                            oDireccion = oReponse.Data as VMDireccion;
                            if (oDireccion.ListaDIRECCIONES.Count == 1)
                            {
                                App.UidEstadoABuscar = oDireccion.ListaDIRECCIONES[0].ESTADO;
                                break;
                            }
                        }
                        else
                        {
                            //var objeto = new MasterMenuMenuItem { Id = 1, Title = "Busqueda", TargetType = typeof(HomePage), UrlResource = "IconoHomeMenu" };
                            //var Page = (Page)Activator.CreateInstance(objeto.TargetType);
                            //App app = Application.Current as App;
                            //App.Navegacion = Page.GetType().Name;
                            //MasterDetailPage md = (MasterDetailPage)app.MainPage;
                            //md.Detail = new NavigationPage(Page);
                        }
                    }
                    VMDireccion Colonias = new VMDireccion();
                    var         dt       = Colonias.Colonias(new Guid(oDireccion.ListaDIRECCIONES[0].CIUDAD));
                    DireccionesListaColonia.Clear();
                    foreach (DataRow item in dt.Rows)
                    {
                        DireccionesListaColonia.Add(
                            new VMDireccion()
                        {
                            ID      = new Guid(item["IdColonia"].ToString()),
                            COLONIA = item["Nombre"].ToString()
                        });
                        MypickerColonia.Items.Add(item["Nombre"].ToString());
                    }
                    Pin AquiEstoy = new Pin()
                    {
                        Type     = PinType.Place,
                        Label    = "Ubicación actual",
                        Position = new Position(Latitud, Longitud)
                    };
                    map.Pins.Clear();
                    map.Pins.Add(AquiEstoy);
                    var pos = new Position(Latitud, Longitud);
                    // map.MoveToRegion(MapSpan.FromCenterAndRadius(pos, Distance.FromMeters(100)));
                    await map.MoveCamera(CameraUpdateFactory.NewCameraPosition(new CameraPosition(pos, 15)));

                    odireccion           = oDireccion;
                    SLColonias.IsVisible = true;
                }
            }
            catch (FeatureNotSupportedException e)
            {
                // Handle not supported on device exception
                lblMensaje.Text = "Servicios de ubicación no soportados, selecciona una ubicación en el mapa y descubre las colonias disponibles";
                //await map.MoveCamera(CameraUpdateFactory.NewCameraPosition(new CameraPosition(new Position(20.6357046, -87.0757835), 15)));
                SLMensaje.IsVisible = true;

                //await DisplayAlert("Aviso del sistema", "Los servicios de ubicacion no soportados por el dispositivo", "Aceptar");
            }
            catch (FeatureNotEnabledException e)
            {
                lblMensaje.Text = "Activa tu ubicación para mostrarte las colonias cercanas a ti, de lo contrario selecciona una ubicación en el mapa y descubre las colonias disponibles";
                //await map.MoveCamera(CameraUpdateFactory.NewCameraPosition(new CameraPosition(new Position(20.6357046,-87.0757835), 15)));
                SLMensaje.IsVisible = true;

                //await DisplayAlert("Ubicacion no activa", "Activa el GPS para obtener tu ubicacion", "Aceptar");
            }
            catch (PermissionException e)
            {
                // Handle permission exception
                lblMensaje.Text = "Activa los permisos de ubicación para poder mostrarte las colonias cercanas a ti, de lo contrario selecciona una ubicación en el mapa y descubre las colonias disponibles";
                //await map.MoveCamera(CameraUpdateFactory.NewCameraPosition(new CameraPosition(new Position(20.6357046, -87.0757835), 15)));
                SLMensaje.IsVisible = true;
                //await DisplayAlert("Aviso", "Activa los permisos de ubicacion para continuar", "Aceptar");
            }
            catch (Exception e)
            {
                // Unable to get location
                lblMensaje.Text     = "Servicio no disponible en esta zona";
                SLMensaje.IsVisible = true;
                //await DisplayAlert("Aviso", "No se puede obtener la ubicacion, intenta otra", "Aceptar");
            }

            SLCargando.IsVisible = false;
            acLoading.IsRunning  = false;
            acLoading.IsVisible  = false;
            SLDatos.IsVisible    = true;
        }
Beispiel #5
0
        private async void map_MapClicked(object sender, Xamarin.Forms.GoogleMaps.MapClickedEventArgs e)
        {
            try
            {
                var Latitud   = e.Point.Latitude;
                var Longitud  = e.Point.Longitude;
                Pin AquiEstoy = new Pin()
                {
                    Type     = PinType.Place,
                    Label    = "Nueva ubicación",
                    Position = new Position(Latitud, Longitud)
                };
                map.Pins.Clear();
                map.Pins.Add(AquiEstoy);
                var pos = new Position(Latitud, Longitud);
                map.MoveToRegion(MapSpan.FromCenterAndRadius(pos, Distance.FromMeters(500)));
                var    geo      = new Geocoder();
                var    location = new Location();
                string content  = string.Empty;
                IEnumerable <Placemark> placemarks = await Geocoding.GetPlacemarksAsync(Latitud, Longitud);

                IEnumerable <string> addresses = await geo.GetAddressesForPositionAsync(new Position(Latitud, Longitud));

                if (location != null)
                {
                    foreach (var item in placemarks)
                    {
                        using (HttpClient _webApi = new HttpClient())
                        {
                            string ciudad = string.Empty;
                            if (!string.IsNullOrEmpty(item.Locality))
                            {
                                ciudad = item.Locality;
                                string _URL = "" + Helpers.Settings.sitio + "/api/Direccion/GetObtenerDireccionConDatosDeGoogle?StrNombreCiudad=" + ciudad + "&Latitud=" + item.Location.Latitude + "&Longitud=" + item.Location.Longitude + "";
                                await Task.Run(async() => { content = await _webApi.GetStringAsync(_URL); });

                                string obj = JsonConvert.DeserializeObject <ResponseHelper>(content).Data.ToString();
                                oDireccionModificada = JsonConvert.DeserializeObject <VMDireccion>(obj);
                                if (oDireccionModificada.ListaDIRECCIONES.Count == 1)
                                {
                                    oDireccionModificada.ListaDIRECCIONES[0].Longitud = item.Location.Longitude.ToString();
                                    oDireccionModificada.ListaDIRECCIONES[0].Latitud  = item.Location.Latitude.ToString();
                                    MypickerPais.SelectedIndex = 1;
                                    int Estado = new int();
                                    for (int i = 0; i < DireccionesListaEstados.Count; i++)
                                    {
                                        if (DireccionesListaEstados[i].ID == new Guid(oDireccionModificada.ListaDIRECCIONES[0].ESTADO.ToUpper()))
                                        {
                                            Estado = i;
                                        }
                                    }
                                    MypickerEstado.SelectedIndex = Estado;
                                    int Municipio = new int();
                                    for (int i = 0; i < DireccionesListaMunicipios.Count; i++)
                                    {
                                        if (DireccionesListaMunicipios[i].ID == new Guid(oDireccionModificada.ListaDIRECCIONES[0].MUNICIPIO.ToUpper()))
                                        {
                                            Municipio = i;
                                        }
                                    }
                                    MypickerMunicipio.SelectedIndex = Municipio;
                                    int Ciudad = new int();
                                    for (int i = 0; i < DireccionesListaCiudad.Count; i++)
                                    {
                                        if (DireccionesListaCiudad[i].ID == new Guid(oDireccionModificada.ListaDIRECCIONES[0].CIUDAD.ToUpper()))
                                        {
                                            Ciudad = i;
                                        }
                                    }
                                    MypickerCiudad.SelectedIndex = Ciudad;
                                    VMDireccion Colonias = new VMDireccion();
                                    DataTable   dt       = Colonias.Colonias(new Guid(oDireccionModificada.ListaDIRECCIONES[0].CIUDAD));
                                    DireccionesListaColonia.Clear();
                                    MypickerColonia.Items.Clear();
                                    foreach (DataRow items in dt.Rows)
                                    {
                                        DireccionesListaColonia.Add(
                                            new VMDireccion()
                                        {
                                            ID      = new Guid(items["IdColonia"].ToString()),
                                            COLONIA = items["Nombre"].ToString()
                                        });
                                        MypickerColonia.Items.Add(items["Nombre"].ToString());
                                    }
                                    txtCalle.Text         = oDireccionModificada.ListaDIRECCIONES[0].CALLE0;
                                    txtEntreCalle.Text    = oDireccionModificada.ListaDIRECCIONES[0].CALLE1;
                                    txtYCalle.Text        = oDireccionModificada.ListaDIRECCIONES[0].CALLE2;
                                    txtReferencia.Text    = oDireccionModificada.ListaDIRECCIONES[0].REFERENCIA;
                                    txtIdentificador.Text = oDireccionModificada.ListaDIRECCIONES[0].IDENTIFICADOR;
                                    txtManzana.Text       = oDireccionModificada.ListaDIRECCIONES[0].MANZANA;
                                    txtLote.Text          = oDireccionModificada.ListaDIRECCIONES[0].LOTE;
                                    txtCodigoPostal.Text  = oDireccionModificada.ListaDIRECCIONES[0].CodigoPostal;
                                }
                            }
                            else
                            {
                                await DisplayAlert("Zona no disponible", "No existe servicio en el punto marcado", "Aceptar");
                            }
                        }
                    }
                }
            }
            catch (FeatureNotSupportedException)
            {
                // Handle not supported on device exception
                await DisplayAlert("Aviso del sistema", "Los servicios de ubicacion no soportados por el dispositivo", "Aceptar");
            }
            catch (FeatureNotEnabledException)
            {
                await DisplayAlert("Ubicacion no activa", "Activa el GPS para obtener tu ubicacion", "Aceptar");
            }
            catch (PermissionException)
            {
                // Handle permission exception
                await DisplayAlert("Aviso", "Activa los permisos de ubicacion para continuar", "Aceptar");
            }
            catch (Exception)
            {
                // Unable to get location
                await DisplayAlert("Aviso", "No se puede obtener la ubicacion", "Aceptar");
            }
        }