Ejemplo n.º 1
0
        async void BtnRegistrar_Clicked(object sender, EventArgs e)
        {
            Loading(true);
            var ruta = (Ruta)BindingContext;

            if (Ruta.Id > 0)
            {
                Ruta rutaActualizada = await FirebaseHelper.ObtenerRuta(Ruta.Id);

                Audios = rutaActualizada.Audios;
            }
            if (string.IsNullOrEmpty(txtNombre.Text))
            {
                Loading(false);
                UserDialogs.Instance.Alert(Constantes.TitleRutaRequired, "Advertencia", "OK");
                return;
            }
            if (ruta.Id > 0)
            {
                if (ruta.Stream == null)
                {
                    await FirebaseHelper.ActualizarRuta(ruta.Id, ruta.Nombre, ruta.Descripcion, ruta.ImagenPrincipal, ruta.VideoUrl, ruta.IdPueblo, ruta.Camino, ruta.Ubicaciones, Audios, ruta.Valoraciones);
                }
                else
                {
                    //await FirebaseHelper.BorrarFoto("Imagen principal de " + ruta.Nombre);
                    await FirebaseHelper.ActualizarRuta(ruta.Id, ruta.Nombre, ruta.Descripcion, ruta.ImagenPrincipal = await FirebaseHelper.SubirFoto(ruta.Stream, "Imagen principal de " + ruta.Nombre), ruta.VideoUrl, ruta.IdPueblo, ruta.Camino, ruta.Ubicaciones, Audios, ruta.Valoraciones);
                }
            }
            else
            {
                if (ruta.Stream == null)
                {
                    await FirebaseHelper.InsertarRuta(ruta.Id = Constantes.GenerarId(), ruta.Nombre, ruta.Descripcion, ruta.ImagenPrincipal, ruta.VideoUrl, ruta.IdPueblo, ruta.Camino, ruta.Ubicaciones, Audios, ruta.Valoraciones);
                }
                else
                {
                    await FirebaseHelper.InsertarRuta(ruta.Id = Constantes.GenerarId(), ruta.Nombre, ruta.Descripcion, ruta.ImagenPrincipal = await FirebaseHelper.SubirFoto(ruta.Stream, "Imagen principal de " + ruta.Nombre), ruta.VideoUrl, ruta.IdPueblo, ruta.Camino, ruta.Ubicaciones, Audios, ruta.Valoraciones);
                }
            }
            Loading(false);
            UserDialogs.Instance.Alert("Registro realizado correctamente", "Correcto", "OK");
        }
Ejemplo n.º 2
0
        async void BtnRegistrar_Clicked(object sender, EventArgs e)
        {
            Loading(true);
            var ruta            = (Ruta)BindingContext;
            var rutaActualizada = await FirebaseHelper.ObtenerRuta(Ruta.Id);

            var audios = rutaActualizada.Audios;

            if (ruta.Id > 0)
            {
                //Actualiza los audios que se hayan guardado en la otra pantalla, pero no hayan tenido efecto en esta
                await FirebaseHelper.ActualizarRuta(ruta.Id, ruta.Nombre, ruta.Descripcion, ruta.ImagenPrincipal, ruta.VideoUrl, ruta.IdPueblo, ruta.Camino, ruta.Ubicaciones, audios, ruta.Valoraciones);
            }
            else
            {
                await FirebaseHelper.InsertarRuta(ruta.Id = Constantes.GenerarId(), ruta.Nombre, ruta.Descripcion, ruta.ImagenPrincipal, ruta.VideoUrl, ruta.IdPueblo, ruta.Camino, ruta.Ubicaciones, audios, ruta.Valoraciones);
            }
            Loading(false);
            UserDialogs.Instance.Alert("Registro realizado correctamente", "Correcto", "OK");
            //await Navigation.PopAsync();
        }
Ejemplo n.º 3
0
        private async void BtnBorrarExp_Clicked(object sender, EventArgs e)
        {
            if (await DisplayAlert("Advertencia", "¿Deseas eliminar este registro?", "Si", "No"))
            {
                Loading(true);
                var audio = (Audio)BindingContext;
                var ruta  = await FirebaseHelper.ObtenerRuta(audio.IdRuta);

                for (int pos = 0; pos < ruta.Audios.Count; pos++)
                {
                    if (ruta.Audios[pos].Id.Equals(audio.Id))
                    {
                        ruta.Audios.RemoveAt(pos);
                        break;
                    }
                }
                await FirebaseHelper.ActualizarRuta(ruta.Id, ruta.Nombre, ruta.Descripcion, ruta.ImagenPrincipal, ruta.VideoUrl, ruta.IdPueblo, ruta.Camino, ruta.Ubicaciones, ruta.Audios, ruta.Valoraciones);

                Loading(false);
                UserDialogs.Instance.Alert("Explicación eliminada correctamente", "Correcto", "OK");
                await Navigation.PopAsync();
            }
        }
Ejemplo n.º 4
0
        private async void BtnGuardarExp_Clicked(object sender, EventArgs e)
        {
            Loading(true);
            var audio = (Audio)BindingContext;
            var ruta  = await FirebaseHelper.ObtenerRuta(audio.IdRuta);

            //Pongo esta condición porque da un error (Null) que no logro controlar si no se pone
            if (txtNombre.Text == null)
            {
                txtNombre.Text = "";
            }
            if (audio.Id > 0)
            {
                if (txtNombre.Text.Equals("") || txtNombre == null || string.IsNullOrWhiteSpace(txtNombre.Text))
                {
                    UserDialogs.Instance.Alert("Es necesario introducir el nombre del audio/descripción correspondiente con la ubicación.", "Error", "OK");
                    return;
                }
                if (txtNumero.Text.Equals("") || txtNumero == null || string.IsNullOrWhiteSpace(txtNumero.Text))
                {
                    UserDialogs.Instance.Alert("Es necesario introducir el número del audio/descripción correspondiente con la ubicación.", "Error", "OK");
                    return;
                }
                if (txtNumero.Text.ToCharArray().All(char.IsDigit) == false)
                {
                    UserDialogs.Instance.Alert("Es necesario introducir un número para identificar al Audio.", "Error", "OK");
                    return;
                }
                else
                {
                    foreach (var audio1 in ruta.Audios)
                    {
                        if (audio1.Id == audio.Id)
                        {
                            audio1.Numero      = int.Parse(txtNumero.Text);
                            audio1.Nombre      = txtNombre.Text;
                            audio1.Descripcion = txtDescripcion.Text;
                            if (!string.IsNullOrEmpty(recorder.FilePath) || !string.IsNullOrEmpty(recorder.GetAudioFilePath()))
                            {
                                bool answer = await UserDialogs.Instance.ConfirmAsync("Hay información grabada con el micrófono. ¿Desea guardarla?", "Atención", "Sí", "No");

                                if (answer == true)
                                {
                                    audio1.Sonido = await FirebaseHelper.SubirAudio(recorder.GetAudioFileStream(), audio1.Nombre);
                                }
                            }
                            await FirebaseHelper.ActualizarRuta(ruta.Id, ruta.Nombre, ruta.Descripcion, ruta.ImagenPrincipal, ruta.VideoUrl, ruta.IdPueblo, ruta.Camino, ruta.Ubicaciones, ruta.Audios, ruta.Valoraciones);
                        }
                        break;
                    }
                }
            }
            else
            {
                if (ruta.Audios == null)
                {
                    ruta.Audios = new List <Audio>();
                }
                if (txtNombre.Text.Equals("") || string.IsNullOrWhiteSpace(txtNombre.Text) || string.IsNullOrEmpty(txtNombre.Text))
                {
                    UserDialogs.Instance.Alert("Es necesario introducir el nombre del audio/descripción correspondiente con la ubicación.", "Error", "OK");
                    return;
                }
                if (txtNumero.Text.Equals("") || txtNumero.Text == null || string.IsNullOrWhiteSpace(txtNumero.Text))
                {
                    UserDialogs.Instance.Alert("Es necesario introducir el número del audio/descripción correspondiente con la ubicación.", "Error", "OK");
                    return;
                }
                foreach (var audio1 in ruta.Audios)
                {
                    if (audio1.Numero.ToString().Equals(txtNumero.Text.ToString()))
                    {
                        UserDialogs.Instance.Alert("El número del audio/descripción pertenece a un registro ya guardado. Comprueba qué número deseas introducir.", "Error", "OK");
                        return;
                    }
                    break;
                }
                if (txtNumero.Text.ToCharArray().All(char.IsDigit) == false)
                {
                    UserDialogs.Instance.Alert("Es necesario introducir un número para identificar al audio/descripción.", "Error", "OK");
                    return;
                }
                else
                {
                    var audioNuevo = new Audio
                    {
                        Id          = Constantes.GenerarId(),
                        IdRuta      = ruta.Id,
                        Numero      = int.Parse(txtNumero.Text),
                        Nombre      = txtNombre.Text,
                        Descripcion = txtDescripcion.Text
                    };
                    if (!string.IsNullOrEmpty(recorder.FilePath) || !string.IsNullOrEmpty(recorder.GetAudioFilePath()))
                    {
                        bool answer = await UserDialogs.Instance.ConfirmAsync("Hay información grabada con el micrófono. ¿Desea guardarla?", "Atención", "Sí", "No");

                        if (answer == true)
                        {
                            audioNuevo.Sonido = await FirebaseHelper.SubirAudio(recorder.GetAudioFileStream(), audioNuevo.Nombre);
                        }
                    }
                    if (audioNuevo.Numero.Equals(""))
                    {
                        UserDialogs.Instance.Alert("Es necesario introducir el número del audio correspondiente con la ubicación.", "Error", "OK");
                        return;
                    }
                    ruta.Audios.Add(audioNuevo);
                    await FirebaseHelper.ActualizarRuta(ruta.Id, ruta.Nombre, ruta.Descripcion, ruta.ImagenPrincipal, ruta.VideoUrl, ruta.IdPueblo, ruta.Camino, ruta.Ubicaciones, ruta.Audios, ruta.Valoraciones);
                }
            }
            Loading(false);
            UserDialogs.Instance.Alert("Registro realizado correctamente.", "Correcto", "OK");
            await Navigation.PopAsync();
        }