/// <summary>
        ///     Recupera las imagenes de las canciones
        /// </summary>
        private async void ColocarImagenesCanciones()
        {
            CancionesListView.IsEnabled = false;
            var clientePortadas = new CoversClient();

            foreach (var cancion in _canciones)
            {
                try
                {
                    var bitmap = await clientePortadas.GetAlbumCover(cancion.album.id, Calidad.Baja);

                    if (bitmap != null)
                    {
                        cancion.album.PortadaImagen = ImagenUtil.CrearBitmapDeMemory(bitmap);
                    }
                    else
                    {
                        cancion.album.PortadaImagen = (BitmapImage)FindResource("Cancion");
                    }
                    CancionesListView.ItemsSource = null;
                    CancionesListView.ItemsSource = _canciones;
                }
                catch (Exception)
                {
                    cancion.album.PortadaImagen = (BitmapImage)FindResource("Cancion");
                }
            }

            CancionesListView.IsEnabled = true;
        }
        /// <summary>
        ///     Recupera la imagen del Album y la coloca
        /// </summary>
        private async void ColocarImagenesAlbumes()
        {
            if (_albums != null)
            {
                var clientePortadas = new CoversClient();
                foreach (var album in _albums)
                {
                    try
                    {
                        var bitmap = await clientePortadas.GetAlbumCover(album.id, Calidad.Baja);

                        if (bitmap != null)
                        {
                            album.PortadaImagen = ImagenUtil.CrearBitmapDeMemory(bitmap);
                        }
                        else
                        {
                            album.PortadaImagen = (BitmapImage)FindResource("AlbumDesconocido");
                        }
                    }
                    catch (Exception)
                    {
                        album.PortadaImagen = (BitmapImage)FindResource("AlbumDesconocido");
                    }
                }

                AlbumsListView.ItemsSource = null;
                AlbumsListView.ItemsSource = _albums;
            }
        }
        /// <summary>
        ///     Edita la informacion de un creador de contenido en base a lo que hay en los campos
        /// </summary>
        private async void EditarCreadorDeContenido()
        {
            if (ValidarTextBoxNombre() && ValidarTextBoxBiografia())
            {
                cancelarButton.IsEnabled         = false;
                registrarCreadorButton.IsEnabled = false;
                ActualizarCreadorDeContenidoAPartirDeCampos();
                var editado = false;
                try
                {
                    _creadorContenidoAEditar =
                        await CreadorContenidoClient.EditCreadorContenido(_creadorContenidoAEditar, _listaGenero);

                    editado = true;
                    if (_rutaImagen != "")
                    {
                        var clientePortadas = new CoversClient();
                        clientePortadas.UploadContentCreatorCover(_rutaImagen, _creadorContenidoAEditar.id);
                    }
                }
                catch (HttpRequestException)
                {
                    new MensajeEmergente().MostrarMensajeError("No se puede conectar al servidor");
                }
                catch (RpcException)
                {
                    new MensajeEmergente().MostrarMensajeError(
                        "No se pudo guardar la imagen de portada, puede subirla " +
                        "mas adelante");
                }
                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().MostrarMensajeAdvertencia(ex.Message);
                    }
                }

                if (editado)
                {
                    NavigationService?.Navigate(new PerfilCreadorDeContenido());
                }
                cancelarButton.IsEnabled         = true;
                registrarCreadorButton.IsEnabled = true;
            }
        }
示例#4
0
        /// <summary>
        ///     Edita un album y guarda su portada
        /// </summary>
        private async void EditarAlbum()
        {
            if (ValidarTamañoNombre() && ValidarAño())
            {
                cancelarButton.IsEnabled       = false;
                registrarAlbumButton.IsEnabled = false;
                var album        = CrearAlbum();
                var albumEditado = false;
                try
                {
                    _albumRegistrado = await AlbumClient.EditAlbum(_albumEditar.id, album);

                    albumEditado = true;
                    if (_rutaImagen != "")
                    {
                        var clientePortadas = new CoversClient();
                        clientePortadas.UploadAlbumCover(_rutaImagen, _albumRegistrado.id);
                    }
                }
                catch (HttpRequestException)
                {
                    new MensajeEmergente().MostrarMensajeError("No se puede conectar al servidor");
                }
                catch (RpcException)
                {
                    new MensajeEmergente().MostrarMensajeError(
                        "No se pudo guardar la imagen de portada, puede subirla " +
                        "mas adelante");
                }
                catch (Exception exception)
                {
                    if (exception.Message == "AuntenticacionFallida")
                    {
                        new MensajeEmergente().MostrarMensajeError("No se pudo autenticar con las credenciales " +
                                                                   "con las que se inicio sesion ");
                        Close();
                    }

                    new MensajeEmergente().MostrarMensajeAdvertencia(exception.Message);
                }

                if (albumEditado)
                {
                    Close();
                }
                cancelarButton.IsEnabled       = true;
                registrarAlbumButton.IsEnabled = true;
            }
        }
        /// <summary>
        ///     Recupera la imagen del creador de contenido en calidad media y la colca en la portada del creador de
        ///     contenido
        /// </summary>
        private async void ColocarIamgenCreadorDeContenido()
        {
            var clientePortadas = new CoversClient();

            try
            {
                var portada = await clientePortadas.GetContentCreatorCover(_creadorContenido.id, Calidad.Media);

                if (portada != null)
                {
                    _creadorContenido.PortadaImagen = ImagenUtil.CrearBitmapDeMemory(portada);
                    PortadaImagen.Source            = null;
                    PortadaImagen.Source            = _creadorContenido.PortadaImagen;
                }
            }
            catch (RpcException)
            {
                PortadaImagen.Source = _creadorContenido.PortadaImagen;
            }
        }
        /// <summary>
        ///     Recupera las imagenes de los artistas
        /// </summary>
        private async Task ColocarImagenesCanciones(Cancion cancion)
        {
            var clientePortadas = new CoversClient();

            try
            {
                var bitmap = await clientePortadas.GetAlbumCover(cancion.album.id, Calidad.Baja);

                if (bitmap != null)
                {
                    cancion.album.PortadaImagen = ImagenUtil.CrearBitmapDeMemory(bitmap);
                }
                else
                {
                    cancion.album.PortadaImagen = (BitmapImage)FindResource("AlbumDesconocido");
                }
            }
            catch (Exception)
            {
                cancion.album.PortadaImagen = (BitmapImage)FindResource("AlbumDesconocido");
            }
        }
        /// <summary>
        ///     Recupera la portada del album de la cancion que se va a reproducir y se lo coloca
        /// </summary>
        /// <param name="album">El album a colocar la imagen</param>
        /// <param name="calidad">La calidad de la iamgen a recuperar</param>
        /// <returns>Task</returns>
        private async Task ColocarImagenAlbum(Album album, Calidad calidad)
        {
            var clientePortadas = new CoversClient();

            try
            {
                MostrarElementosSinConexion();
                var bitmap = await clientePortadas.GetAlbumCover(album.id, calidad);

                if (bitmap != null)
                {
                    album.PortadaImagen = ImagenUtil.CrearBitmapDeMemory(bitmap);
                }
                else
                {
                    album.PortadaImagen = (BitmapImage)FindResource("AlbumDesconocido");
                }
            }
            catch (Exception)
            {
                album.PortadaImagen = (BitmapImage)FindResource("AlbumDesconocido");
                OcultarElementosSinConexion();
            }
        }
        /// <summary>
        ///     Registra un nuevo usuario
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private async void OnClickRegistrarButton(object sender, RoutedEventArgs e)
        {
            if (ValidarTextBoxNombre() && ValidarTextBoxCorreo() && ValidarTextBoxNombreUsuario() &&
                ValidarTextBoxContraseña())
            {
                cancelarButton.IsEnabled         = false;
                registrarUsuarioButton.IsEnabled = false;
                var usuario           = CrearUsuario();
                var usuarioRegistrado = false;
                try
                {
                    await UsuarioClient.RegisterUsuario(usuario);

                    usuarioRegistrado = true;
                    var usuarioLogin = new Login
                    {
                        Password = usuario.contrasena,
                        User     = usuario.nombre_usuario
                    };
                    await ApiServiceLogin.GetServiceLogin().Login(usuarioLogin);

                    var usuarioLogeado = await UsuarioClient.GetUser();

                    usuarioLogeado.login = usuarioLogin;
                    ManejadorDeUsuariosLogeados.GetManejadorDeUsuariosLogeados().InicioSesionUsuario(usuarioLogeado);
                    if (_rutaImagen != "")
                    {
                        var clientePortadas = new CoversClient();
                        clientePortadas.UploadUserCover(_rutaImagen);
                    }
                }
                catch (HttpRequestException)
                {
                    new MensajeEmergente().MostrarMensajeError("No se puede conectar al servidor");
                }
                catch (RpcException)
                {
                    new MensajeEmergente().MostrarMensajeError(
                        "No se pudo guardar la imagen de portada, puede subirla " +
                        "mas adelante");
                }
                catch (Exception exception)
                {
                    new MensajeEmergente().MostrarMensajeAdvertencia(exception.Message);
                }

                if (usuarioRegistrado)
                {
                    if (usuario.tipo_usuario == TipoUsuario.CreadorDeContenido)
                    {
                        NavigationService?.Navigate(new RegistrarCreadorContenido());
                    }
                    else
                    {
                        NavigationService?.Navigate(new Canciones());
                    }
                }

                cancelarButton.IsEnabled         = true;
                registrarUsuarioButton.IsEnabled = true;
            }
        }