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"); }
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(); }
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(); } }
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(); }