/// <summary> /// Edita la informacion de una cancion y sube la cancion al servidor /// </summary> private async void EditarCancion() { if (ValidarNombre() && ValidarGeneroSeleccionado() && ValidarCancionSeleccionada()) { DeshabilitarElementosPantalla(); ActualizarCancionEditar(); try { _cancionAEditar.album = new Album(); _cancionRegistrada = await CancionClient.EditSong(_cancionAEditar, _idAlbum, _listaGeneros, _creadoresDeContenido); if (ArchivoSeleccionadoText.Text != "") { try { var clienteCanciones = new SongsClient(); clienteCanciones.OnPorcentageUp += SubirPorcentajeAvanza; clienteCanciones.OnUploadTerminated += TerminarSubirCancion; await clienteCanciones.UploadSong(ArchivoSeleccionadoText.Text, _cancionRegistrada.id, false); } catch (RpcException) { new MensajeEmergente().MostrarMensajeError( "No se pudo subir la cancion, 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(); } } else { new MensajeEmergente().MostrarMensajeInformacion("La cancion se ha modifico correctamente"); 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(); } }