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