public GrupoClienteItemPage()
        {
            InitializeComponent();
            GrupoClienteViewModel grupoClienteViewModel = GrupoClienteViewModel.GetInstance();

            BindingContext = grupoClienteViewModel.CurrentGrupoCliente;
        }
        private void ExecuteEditar()
        {
            GrupoClienteViewModel grupoClienteViewModel = GrupoClienteViewModel.GetInstance();

            grupoClienteViewModel.SetCurrentGrupoCliente(this);
            this.Nuevo           = false;                                          /// Importante indicaque se modificara el registro actual
            this.DeleteIsEnabled = true;
            App.GrupoClientePage.Navigation.PushAsync(new GrupoClienteItemPage()); // Navegacion
        }
        private async void ExecuteGuardarAsync()
        {
            try
            {
                // validacion de los campos
                if (string.IsNullOrEmpty(this.nombreGrupo))
                {
                    await Application.Current.MainPage.DisplayAlert("Alerta", "Campo Nombre Grupo obligatoria", "Aceptar");

                    return;
                }

                // Estados
                this.IsRunning = true;
                this.IsEnabled = false;

                // Preparando el objeto para enviar

                if (this.Nuevo)
                {
                    // localhost:8080/admeli/xcore2/xcore/services.php/gcliente/guardar
                    Response response = await webService.POST <GrupoCliente, Response>("gcliente", "guardar", (GrupoCliente)this);

                    await App.Current.MainPage.DisplayAlert("Guardar", response.Message, "Aceptar");
                }
                else
                {
                    // localhost:8080/admeli/xcore2/xcore/services.php/gcliente/modificar
                    Response response = await webService.POST <GrupoCliente, Response>("gcliente", "modificar", (GrupoCliente)this);

                    await App.Current.MainPage.DisplayAlert("Modificar", response.Message, "Aceptar");
                }

                // Refrescar y regresar a la pagina anterior
                GrupoClienteViewModel.GetInstance().ExecuteRefresh();
                await App.GrupoClienteItemPage.Navigation.PopAsync();
            }
            catch (Exception ex)
            {
                // Error message
                await App.Current.MainPage.DisplayAlert("Error", ex.Message, "Aceptar");
            }
            finally
            {
                // Estados
                this.IsRunning = false;
                this.IsEnabled = true;
            }
        }
        private async void ExecuteAnular()
        {
            try
            {
                // Estados
                this.IsRunning = true;
                this.IsEnabled = false;

                /// Verificacion si el registro esta anulado
                if (this.estado == 0)
                {
                    await App.Current.MainPage.DisplayAlert("Anular", "Este registro ya esta anulado \n" + this.nombreGrupo, "Aceptar");

                    return;
                }

                // pregunta al usuario (Confirmacion)
                if (await App.Current.MainPage.DisplayAlert("Anular", "¿esta seguro de anular este registro? \n" + this.nombreGrupo, "Aceptar", "Cancelar") == false)
                {
                    return;
                }

                // Preparando el objeto para enviar
                GrupoCliente grupoCliente = new GrupoCliente();
                grupoCliente.idGrupoCliente = this.idGrupoCliente;

                /// Ejecutando el webservice
                // localhost:8080/admeli/xcore2/xcore/services.php/gcliente/desactivar
                Response response = await webService.POST <GrupoCliente, Response>("gcliente", "desactivar", grupoCliente);

                // Message response
                await App.Current.MainPage.DisplayAlert("Anular", response.Message, "Aceptar");

                // Refrescar la lista
                GrupoClienteViewModel.GetInstance().ExecuteRefresh();
            }
            catch (Exception ex)
            {
                // Error message
                await App.Current.MainPage.DisplayAlert("Error", ex.Message, "Aceptar");
            }
            finally
            {
                // Estados
                this.IsRunning = false;
                this.IsEnabled = true;
            }
        }