Пример #1
0
        /// <summary>
        /// Borra la lista actual, y agrega los datos actualizados
        /// lo que permite que se visualizen en la vista inicial de la aplicación
        /// los datos refrescados, posible mejora obtener los datos directamente con
        /// el binding de observables - problematica el tipo de lista creada (ViewModels.LestaInicioView.cs)
        /// </summary>
        /// <returns></returns>
        async Task ExecuteLoadHumansCommand()
        {
            if (IsBusy)
            {
                return;
            }

            IsBusy = true;

            try
            {
                _lista.Clear();
                var items = await DataStore.GetItemsAsync(true);

                foreach (var item in items)
                {
                    Lista.Add(item);
                }
            }
            catch (System.Exception ex)
            {
                Debug.WriteLine(ex);
                throw new Exception(LiteralesService.GetLiteral("ex_2"));
            }
            finally
            {
                IsBusy = false;
            }
        }
Пример #2
0
        /// <summary>
        /// Botón que elimina a un elemento.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        async void DeleteItem_Clicked(object sender, EventArgs e)
        {
            var answer = await DisplayAlert(LiteralesService.GetLiteral("del_Eliminar"),
                                            LiteralesService.GetLiteral("del_seguro"),
                                            "del_Si",
                                            "del_No");

            if (answer)
            {
                Singleton.Instance.DeleteElement(ItemHumano.IdEntidad);
                await Navigation.PopModalAsync();
            }
        }
Пример #3
0
        /// <summary>
        /// Botón que permite elegir una imagen del movil
        /// se está utilizando la libreria <see cref="CrossMedia"/>
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        async void BtnCamara_Clicked(object sender, EventArgs e)
        {
            Button btn = (Button)sender;

            btn.BackgroundColor = Color.FromHex("#aee"); // select
            btn.Opacity         = 1;
            btn.BorderWidth     = 1;

            // if you want to take a picture use TakePhotoAsync instead of PickPhotoAsync
            var storageStatus = await CrossPermissions.Current.CheckPermissionStatusAsync(Permission.Storage);

            if (storageStatus == PermissionStatus.Granted)
            {
                //! added using Plugin.Media;
                await CrossMedia.Current.Initialize();

                //// if you want to take a picture use this
                // if(!CrossMedia.Current.IsTakePhotoSupported || !CrossMedia.Current.IsCameraAvailable)
                /// if you want to select from the gallery use this
                if (!CrossMedia.Current.IsPickPhotoSupported)
                {
                    await DisplayAlert(LiteralesService.GetLiteral("lbl_not_sup"), LiteralesService.GetLiteral("lbl_device"), LiteralesService.GetLiteral("lbl_ok"));

                    return;
                }

                //! added using Plugin.Media.Abstractions;
                // if you want to take a picture use StoreCameraMediaOptions instead of PickMediaOptions
                var mediaOptions = new PickMediaOptions()
                {
                    PhotoSize = PhotoSize.Medium
                };

                var selectedImageFile = await CrossMedia.Current.PickPhotoAsync(mediaOptions);

                if (selectedImageFile == null)
                {
                    await DisplayAlert(LiteralesService.GetLiteral("ex_error"), LiteralesService.GetLiteral("lbl_no_image"), LiteralesService.GetLiteral("lbl_ok"));

                    return;
                }
                ItemHumano.Photo = selectedImageFile.Path;
                CambiarImagen(selectedImageFile.Path);
            }
            else
            {
                await DisplayAlert(LiteralesService.GetLiteral("ex_error"), LiteralesService.GetLiteral("ex_2"), LiteralesService.GetLiteral("ex_salida"));
            }
        }
Пример #4
0
 /// <summary>
 /// Oculta el botón en el caso de encontrar una imagen y establece la imagen seleccionada
 /// usado por la función <see cref="BtnCamara_Clicked"/>
 /// </summary>
 /// <param name="path"></param>
 private void CambiarImagen(string path)
 {
     try
     {
         ImageSource auximg = ImageSource.FromFile(path);
         if (auximg != null)
         {
             _btnCamara.IsVisible = false;
             _imgPhoto.Source     = auximg;
             _imgPhoto.IsVisible  = true;
         }
     }
     catch (Exception)
     {
         DisplayAlert(LiteralesService.GetLiteral("ex_error"), LiteralesService.GetLiteral("lbl_no_image"), LiteralesService.GetLiteral("lbl_ok"));
     }
 }
Пример #5
0
        private async void VerBasesLegales(object sender, EventArgs e)
        {
            string _basesLegales = LiteralesService.GetLiteral("lbl_bases");
            string _acepto       = LiteralesService.GetLiteral("lbl_acepto");
            string _noacepto     = LiteralesService.GetLiteral("lbl_no_acepto");
            string _advertencia  = LiteralesService.GetLiteral("lbl_adv");
            string _leer         = LiteralesService.GetLiteral("lbl_leer");

            var action = await DisplayActionSheet(_basesLegales, _acepto, _noacepto, _advertencia, _leer);

            if (action.Equals(_noacepto))
            {
                Singleton.BasesLegales = false;
            }
            else if (action.Equals(_leer) || action.Equals(_advertencia))
            {
                await Navigation.PushModalAsync(new NavigationPage(new ScrollTextView()));
            }
        }
Пример #6
0
        /// <summary>
        /// Sobrecarga de la función que permite a Android volver a la pantalla anterior.
        /// La particularidad es que cuando volvemos hacia atrás guardamos los datos que se han rellenado
        /// en el caso de haber realizado algún cambio.
        /// </summary>
        /// <returns></returns>
        protected override bool OnBackButtonPressed()
        {
            try
            {
                if (CETNDomainService.CambioPicker ||
                    isBasicFill() ||
                    ItemHumano.Sexo != _valorInicialSexo ||
                    !String.IsNullOrEmpty(ItemHumano.Photo))
                {
                    if (_esNuevo)
                    {
                        ItemHumano = _esMujer ? Singleton.Instance.NewMujerAsync(ItemHumano) :
                                     Singleton.Instance.NewHombreAsync(ItemHumano);
                    }
                    else
                    {
                        Singleton.Instance.Update(ItemHumano);
                        if (Singleton.Instance.IsBusy)
                        {
                            DisplayAlert(LiteralesService.GetLiteral("ex_error"), LiteralesService.GetLiteral("ex_1"), LiteralesService.GetLiteral("ex_salida"));
                            return(false);
                        }
                    }
                }
            }
            catch (UnauthorizedAccessException un)
            {
                DisplayAlert(LiteralesService.GetLiteral("ex_error"), un.InnerException.Message, LiteralesService.GetLiteral("ex_salida"));
                return(false);
            }
            catch (Exception e)
            {
                DisplayAlert(LiteralesService.GetLiteral("ex_error"), e.InnerException.Message, LiteralesService.GetLiteral("ex_salida"));
                return(false);
            }

            return(base.OnBackButtonPressed());
        }