/// <summary> /// Recupera las canciones de la bilioteca personal y las muestra /// </summary> private async void CargarCancionesEnBibliotecaPersonal() { try { _cancionesPersonales = await BibliotecaPersonalClient.GetCancionesPersonales(); ColocarInformacionBibliotecaPersonal(); ListViewCancionesPersonales.ItemsSource = _cancionesPersonales; ListViewCancionesPersonales.Visibility = Visibility.Visible; SinConexionGrid.Visibility = Visibility.Hidden; } catch (HttpRequestException) { ListViewCancionesPersonales.Visibility = Visibility.Hidden; SinConexionGrid.Visibility = Visibility.Visible; } catch (Exception ex) { if (ex.Message == "AuntenticacionFallida") { new MensajeEmergente().MostrarMensajeError("No se puede autentican con las credenciales " + "proporcionadas, se cerra la sesion"); MainWindow.OcultarMenu(); MainWindow.OcultarReproductor(); NavigationService?.Navigate(new IniciarSesion()); } else { new MensajeEmergente().MostrarMensajeError(ex.Message); } } }
/// <summary> /// Elimina la cancion seleccionada /// </summary> /// <param name="sender">El objeto que invoco el evento</param> /// <param name="e">El evento invocado</param> private async void OnClickEliminarCancion(object sender, RoutedEventArgs e) { var confirmacion = MensajeEmergente.MostrarMensajeConfirmacion("¿Seguro que desea eliminar la cancion seleccionada?"); if (confirmacion) { SinConexionGrid.Visibility = Visibility.Hidden; ListViewCancionesPersonales.Visibility = Visibility.Visible; var idCancion = (int)((Button)sender).Tag; try { await BibliotecaPersonalClient.DeteleCancion(idCancion); CargarCancionesEnBibliotecaPersonal(); } catch (HttpRequestException) { SinConexionGrid.Visibility = Visibility.Visible; ListViewCancionesPersonales.Visibility = Visibility.Hidden; } catch (Exception ex) { if (ex.Message == "AuntenticacionFallida") { new MensajeEmergente().MostrarMensajeError("No se puede autentican con las credenciales " + "proporcionadas, se cerrara la sesion"); MainWindow.OcultarMenu(); MainWindow.OcultarReproductor(); NavigationService?.Navigate(new IniciarSesion()); } else { new MensajeEmergente().MostrarMensajeError(ex.Message); } } } }
/// <summary> /// Registra la informacion de una cancion personal y sube la cancion al servidor /// </summary> private async void RegistrarNuevaCancion() { if (ValidarNombre() && ValidarArtistas() && ValidarAlbum() && ValidarCancionSeleccionada()) { DeshabilitarElementosPantalla(); var cancionARegistrar = CrearCancionPersonal(); try { _cancionRegistrada = await BibliotecaPersonalClient.RegisterSong(cancionARegistrar); try { var clienteCanciones = new SongsClient(); clienteCanciones.OnPorcentageUp += SubirPorcentajeAvanza; clienteCanciones.OnUploadTerminated += TerminarSubirCancion; await clienteCanciones.UploadSong(ArchivoSeleccionadoText.Text, _cancionRegistrada.id, true); } catch (RpcException) { new MensajeEmergente().MostrarMensajeError( "No se pudo subir la cancion personal, la puede volver a " + "subir mas adelante"); Close(); } catch (Exception ex) { if (ex.Message == "AuntenticacionFallida") { new MensajeEmergente().MostrarMensajeError("No se pudo autenticar con el usuario con el " + "cual inicio sesión, se guardo la informacion de la " + "cancion pero no el archivo"); } else { new MensajeEmergente().MostrarMensajeError(ex.Message); } Close(); } } catch (HttpRequestException) { new MensajeEmergente().MostrarMensajeError("No se puede conectar al servidor, porfavor verifique " + "su conexión a internet"); } catch (Exception ex) { if (ex.Message == "AuntenticacionFallida") { new MensajeEmergente().MostrarMensajeError("No se pudo autenticar con el usuario con el " + "cual inicio sesión, no se ha guardado la canción"); Close(); } else { new MensajeEmergente().MostrarMensajeError(ex.Message); } } HabilitarElementosPantalla(); } }