Beispiel #1
0
        private async void MostrarCancionesDeAlbumDeArtista(Album album)
        {
            CancionDAO     cancionDAO = new CancionDAO(UsuarioActual.Token);
            List <Cancion> respuesta;

            try
            {
                respuesta = await cancionDAO.CargarPorIdAlbum(album.Id);
            }
            catch (Exception ex)
            {
                MensajeDeErrorParaMessageBox mensaje = EncadenadorDeExcepciones.ManejarExcepcion(ex);
                MessageBox.Show(mensaje.Mensaje, mensaje.Titulo);
                return;
            }
            if (respuesta.Count == 1 && respuesta[0].Id == 0)
            {
                ListaDeCancionesDeArtista.Visibility  = Visibility.Collapsed;
                LabelNoHayCancionesDeAlbum.Visibility = Visibility.Visible;
            }
            else
            {
                ListaDeCancionesDeArtista.Visibility  = Visibility.Visible;
                LabelNoHayCancionesDeAlbum.Visibility = Visibility.Collapsed;
                ListaDeCancionesDeArtista.AsignarCanciones(respuesta);
                await CargarArtistasDeCanciones(respuesta);

                ListaDeCancionesDeArtista.AsignarCanciones(respuesta);
                await CargarAlbumDeCanciones(respuesta);

                ListaDeCancionesDeArtista.AsignarCanciones(respuesta);
            }
            ImageCaratulaDeAlbum.Source = CargarImagen(await ServiciosDeIO.CargarCaratulaDeAlbumPorId(album.Id, UsuarioActual.Token));
        }
        public bool AgregarCancion(int idPlaylist, int idCancion)
        {
            bool respuesta = false;

            try
            {
                Playlists       playlist        = CargarPorId(idPlaylist);
                CancionDAO      cancionDAO      = new CancionDAO();
                Canciones       cancion         = cancionDAO.CargarPorId(idCancion);
                CancionPlaylist cancionPlaylist = new CancionPlaylist
                {
                    CancionId   = cancion.Id,
                    PlaylistsId = playlist.Id
                };
                using (UVFYContext context = new UVFYContext())
                {
                    context.CancionPlaylist.Add(cancionPlaylist);
                    context.SaveChanges();
                }
                respuesta = true;
            }
            catch (SqlException e)
            {
                Console.WriteLine(e.ToString());
                throw new AccesoADatosException(e.Message, e);
            }
            catch (DbUpdateException e)
            {
                Console.WriteLine(e.ToString());
                throw new RecursoYaExisteException(e.Message, e);
            }
            return(respuesta);
        }
Beispiel #3
0
        private async Task <bool> CargarCanciones()
        {
            if (CargarCancionesLibre)
            {
                CargarCancionesLibre = false;
                CancionDAO cancionDAO = new CancionDAO(UsuarioActual.Token);
                var        respuesta  = await cancionDAO.CargarTodas();

                if (respuesta.Count == 1 && respuesta[0].Id == 0)
                {
                    ListaDeCanciones.Visibility    = Visibility.Collapsed;
                    LabelNoHayCanciones.Visibility = Visibility.Visible;
                }
                else
                {
                    ListaDeCanciones.Visibility    = Visibility.Visible;
                    LabelNoHayCanciones.Visibility = Visibility.Collapsed;
                    ListaDeCanciones.AsignarCanciones(respuesta);
                    await CargarArtistasDeCanciones(respuesta);

                    ListaDeCanciones.AsignarCanciones(respuesta);
                    await CargarAlbumDeCanciones(respuesta);

                    ListaDeCanciones.AsignarCanciones(respuesta);
                }
                CargarCancionesLibre = true;
            }
            return(true);
        }
Beispiel #4
0
        private async void MostrarCancionesDePlaylist(Playlist playlist)
        {
            CancionDAO     cancionDAO = new CancionDAO(UsuarioActual.Token);
            List <Cancion> respuesta;

            try
            {
                respuesta = await cancionDAO.CargarPorIdPlaylist(playlist.Id);
            }
            catch (Exception ex)
            {
                MensajeDeErrorParaMessageBox mensaje = EncadenadorDeExcepciones.ManejarExcepcion(ex);
                MessageBox.Show(mensaje.Mensaje, mensaje.Titulo);
                return;
            }
            if (respuesta.Count == 1 && respuesta[0].Id == 0)
            {
                ListaDeCancionesDePlaylist.Visibility    = Visibility.Collapsed;
                LabelNoHayCancionesEnPlaylist.Visibility = Visibility.Visible;
            }
            else
            {
                ListaDeCancionesDePlaylist.Visibility    = Visibility.Visible;
                LabelNoHayCancionesEnPlaylist.Visibility = Visibility.Collapsed;
                ListaDeCancionesDePlaylist.AsignarCanciones(respuesta);
                await CargarArtistasDeCanciones(respuesta);

                ListaDeCancionesDePlaylist.AsignarCanciones(respuesta);
                await CargarAlbumDeCanciones(respuesta);

                ListaDeCancionesDePlaylist.AsignarCanciones(respuesta);
            }
        }
        private async void DataGridListaDeAlbumes_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            if (e.AddedItems.Count == 1)
            {
                Album albumSeleccionado = e.AddedItems[0] as Album;

                CancionDAO cancionDAO = new CancionDAO(Artista.Token);
                try
                {
                    CancionesDeAlbum = await cancionDAO.CargarPorIdAlbum(albumSeleccionado.Id);
                }
                catch (Exception ex)
                {
                    MensajeDeErrorParaMessageBox mensaje = EncadenadorDeExcepciones.ManejarExcepcion(ex);
                    MessageBox.Show(mensaje.Mensaje, mensaje.Titulo);
                }
                if (CancionesDeAlbum.Count == 1 && CancionesDeAlbum[0].Id == 0)
                {
                    DataGridListaDeCancionesEnAlbum.Visibility = Visibility.Collapsed;
                    LabelNoHayCancionesEnAlbum.Visibility      = Visibility.Visible;
                }
                else
                {
                    DataGridListaDeCancionesEnAlbum.Visibility = Visibility.Visible;
                    LabelNoHayCancionesEnAlbum.Visibility      = Visibility.Collapsed;
                }

                DataGridListaDeCancionesEnAlbum.ItemsSource = CancionesDeAlbum;
            }
        }
Beispiel #6
0
        private async void CargarPrivadas()
        {
            if (CargarPrivadasLibre)
            {
                CargarPrivadasLibre = false;
                CancionDAO     cancionDAO = new CancionDAO(UsuarioActual.Token);
                List <Cancion> respuesta;
                try
                {
                    respuesta = await cancionDAO.CargarPrivadasPorIdConsumidor(UsuarioActual.Id);
                }
                catch (Exception ex)
                {
                    MensajeDeErrorParaMessageBox mensaje = EncadenadorDeExcepciones.ManejarExcepcion(ex);
                    MessageBox.Show(mensaje.Mensaje, mensaje.Titulo);
                    return;
                }
                if (respuesta.Count == 1 && respuesta[0].Id == 0)
                {
                    ListaDeCancionesPrivadas.Visibility = Visibility.Collapsed;
                    LabelNoHayBiblioteca.Visibility     = Visibility.Visible;
                }
                else
                {
                    ListaDeCancionesPrivadas.AsignarCanciones(respuesta);
                    ListaDeCancionesPrivadas.Visibility = Visibility.Visible;
                    LabelNoHayBiblioteca.Visibility     = Visibility.Collapsed;
                }

                CargarPrivadasLibre = true;
            }
        }
Beispiel #7
0
        public bool Eliminar(int idAlbum)
        {
            bool       respuesta  = false;
            Albumes    album      = CargarPorId(idAlbum);
            CancionDAO cancionDAO = new CancionDAO();

            try
            {
                List <Canciones> cancionesEnAlbum = cancionDAO.CargarPorIdAlbum(album.Id);
                foreach (Canciones cancion in cancionesEnAlbum)
                {
                    cancionDAO.CambiarEstadoDeCancion(cancion.Id, Enumeradores.EstadoDeCancion.PrivadaDeArtista);
                }

                using (UVFYContext context = new UVFYContext())
                {
                    context.Albumes.Remove(album);
                    context.SaveChanges();
                }
                respuesta = true;
            }
            catch (SqlException e)
            {
                Console.WriteLine(e.ToString());
                throw new AccesoADatosException(e.Message, e);
            }
            return(respuesta);
        }
Beispiel #8
0
        private async void ButtonGuardar_Click(object sender, RoutedEventArgs e)
        {
            Mouse.OverrideCursor = Cursors.Wait;
            if (ValidarCampos())
            {
                byte[] datosDeAudio    = ServiciosDeIO.CargarBytesDeArchivo(DireccionDeArchivoDeAudio);
                byte[] datosDeCaratula = ServiciosDeIO.CargarBytesDeArchivo(DireccionDeArchivoDeCaratula);
                int    duracionDeAudio = ServiciosDeIO.ObtenerDuracionDeCancion(DireccionDeArchivoDeAudio);
                if (TipoDeUsuario == TipoDeUsuario.Artista)
                {
                    foreach (Genero item in DataGridGeneros.ItemsSource)
                    {
                        if (((CheckBox)CheckBoxColumn.GetCellContent(item)).IsChecked == true)
                        {
                            GenerosSeleccionados.Add(item.Id);
                        }
                    }
                }
                CancionDAO cancionDAO = new CancionDAO(UsuarioActual.Token);
                bool       resultado  = false;
                try
                {
                    if (TipoDeUsuario == TipoDeUsuario.Artista)
                    {
                        resultado = await cancionDAO.RegistrarCancionDeArtista(TextBoxNombreDeCancion.Text, GenerosSeleccionados, datosDeAudio, datosDeCaratula, duracionDeAudio);
                    }
                    else if (TipoDeUsuario == TipoDeUsuario.Consumidor)
                    {
                        resultado = await cancionDAO.RegistrarCancionDeConsumidor(TextBoxNombreDeCancion.Text, datosDeAudio, datosDeCaratula, duracionDeAudio);
                    }
                }
                catch (Exception ex)
                {
                    MensajeDeErrorParaMessageBox mensaje = EncadenadorDeExcepciones.ManejarExcepcion(ex);
                    MessageBox.Show(mensaje.Mensaje, mensaje.Titulo);
                    Mouse.OverrideCursor = null;
                }
                if (resultado)
                {
                    MessageBox.Show("Cancion registrada", "¡Exito!");
                    Close();
                }
                else
                {
                    MensajeDeErrorParaMessageBox mensaje = EncadenadorDeExcepciones.ManejarExcepcion(new Exception());
                    MessageBox.Show(mensaje.Mensaje, mensaje.Titulo);
                }
            }
            else
            {
                MessageBox.Show("Campos invalidos. Verifique e intentelo de nuevo", "Error");
                Mouse.OverrideCursor = null;
            }

            Mouse.OverrideCursor = null;
        }
Beispiel #9
0
        private async void CargarCancionesDescargadas()
        {
            if (CargarCancionesDescargadasLibre)
            {
                CargarCancionesDescargadasLibre = false;
                List <int>     idsCancionesDescargadas = ServiciosDeIO.ListarCancionesDescargadas();
                List <Cancion> cancionesDescargadas    = new List <Cancion>();
                foreach (int idCancion in idsCancionesDescargadas)
                {
                    if (ModoConectado)
                    {
                        CancionDAO cancionDAO = new CancionDAO(UsuarioActual.Token);
                        try
                        {
                            cancionesDescargadas.Add(await cancionDAO.CargarPorId(idCancion));
                        }
                        catch (Exception ex)
                        {
                            MensajeDeErrorParaMessageBox mensaje = EncadenadorDeExcepciones.ManejarExcepcion(ex);
                            MessageBox.Show(mensaje.Mensaje, mensaje.Titulo);
                            return;
                        }
                    }
                    else
                    {
                        cancionesDescargadas.Add(ServiciosDeIO.ObtenerCancionLocal(idCancion));
                    }
                }
                ListaDeCancionesDescargadas.AsignarCanciones(cancionesDescargadas);
                if (ModoConectado)
                {
                    if (cancionesDescargadas.Count == 1 && cancionesDescargadas[0].Id == 0)
                    {
                        ListaDeCancionesDescargadas.Visibility    = Visibility.Collapsed;
                        LabelNoHayCancionesDescargadas.Visibility = Visibility.Visible;
                    }
                    else
                    {
                        ListaDeCancionesDescargadas.Visibility    = Visibility.Visible;
                        LabelNoHayCancionesDescargadas.Visibility = Visibility.Collapsed;
                        ListaDeCancionesDescargadas.AsignarCanciones(cancionesDescargadas);
                        await CargarArtistasDeCanciones(cancionesDescargadas);

                        ListaDeCancionesDescargadas.AsignarCanciones(cancionesDescargadas);
                        await CargarAlbumDeCanciones(cancionesDescargadas);

                        ListaDeCancionesDescargadas.AsignarCanciones(cancionesDescargadas);
                    }
                }
                CargarCancionesDescargadasLibre = true;
            }
        }
Beispiel #10
0
        public override Task <Respuesta> GuardarCaratulaDeCancionPorId(PeticionGuardadoId request, ServerCallContext context)
        {
            Respuesta respuesta = new Respuesta();

            try
            {
                using (UVFYContext contexto = new UVFYContext())
                {
                    CancionDAO cancionDAO = new CancionDAO();
                    if (cancionDAO.CargarPorId(request.IdPeticion) != null)
                    {
                        try
                        {
                            if (ServiciosDeIO.VerificarEstructuraDeArchivosCancion(request.IdPeticion.ToString()))
                            {
                                ServiciosDeIO.GuardarArchivoDeCancion(request.IdPeticion.ToString(), request.Datos.ToByteArray(), TipoDeArchivo.png);
                                respuesta.Exitosa = true;
                            }
                            else
                            {
                                //No se pudo realizar el guardado, error de io
                                respuesta.Exitosa = false;
                                respuesta.Motivo  = 500;
                            }
                        }
                        catch (IOException)
                        {
                            //No se pudo realizar el guardado, error de io
                            respuesta.Exitosa = false;
                            respuesta.Motivo  = 500;
                        }
                    }
                    else
                    {
                        //No se encontro la cancion con el id dado (Deberia ser imposible porque se valida)
                        respuesta.Exitosa = false;
                        respuesta.Motivo  = 400;
                    }
                }
            }
            catch (AccesoADatosException)
            {
                //Error conectandose a la base de datos
                respuesta.Exitosa = false;
                respuesta.Motivo  = 500;
                return(Task.FromResult(respuesta));
            }
            return(Task.FromResult(respuesta));
        }
        private async void ButtonEliminarCancion_Click(object sender, RoutedEventArgs e)
        {
            Cancion    albumSeleccionado = ((FrameworkElement)sender).DataContext as Cancion;
            CancionDAO cancionDAO        = new CancionDAO(Artista.Token);

            try
            {
                bool resultado = await cancionDAO.Eliminar(albumSeleccionado.Id);

                CargarDatos();
            }
            catch (Exception ex)
            {
                MensajeDeErrorParaMessageBox mensaje = EncadenadorDeExcepciones.ManejarExcepcion(ex);
                MessageBox.Show(mensaje.Mensaje, mensaje.Titulo);
            }
        }
        private async void ButtonReproducir_Click(object sender, RoutedEventArgs e)
        {
            Album          albumSeleccionado = ((FrameworkElement)sender).DataContext as Album;
            CancionDAO     cancionDAO        = new CancionDAO(Token);
            List <Cancion> cancionesDeAlbum;

            try
            {
                cancionesDeAlbum = await cancionDAO.CargarPorIdAlbum(albumSeleccionado.Id);
            }
            catch (Exception ex)
            {
                MensajeDeErrorParaMessageBox mensaje = EncadenadorDeExcepciones.ManejarExcepcion(ex);
                MessageBox.Show(mensaje.Mensaje, mensaje.Titulo);
                return;
            }
            ControladorDeReproduccion.AsignarCanciones(cancionesDeAlbum);
        }
        private async void CargarDatos()
        {
            try
            {
                CancionDAO cancionDAO = new CancionDAO(Artista.Token);
                AlbumDAO   albumDAO   = new AlbumDAO(Artista.Token);
                AlbumesCargados = await albumDAO.CargarPorIdArtista(Artista.Id);

                CancionesPrivadas = await cancionDAO.CargarPrivadasPorIdArtista(Artista.Id);
            }
            catch (Exception ex)
            {
                MensajeDeErrorParaMessageBox mensaje = EncadenadorDeExcepciones.ManejarExcepcion(ex);
                MessageBox.Show(mensaje.Mensaje, mensaje.Titulo);
            }

            if (AlbumesCargados.Count == 1 && AlbumesCargados[0].Id == 0)
            {
                DataGridListaDeAlbumes.Visibility = Visibility.Collapsed;
                LabelNoHayAlbumes.Visibility      = Visibility.Visible;
            }
            else
            {
                DataGridListaDeAlbumes.Visibility = Visibility.Visible;
                LabelNoHayAlbumes.Visibility      = Visibility.Collapsed;
            }

            if (CancionesPrivadas.Count == 1 && CancionesPrivadas[0].Id == 0)
            {
                DataGridListaDeCancionesSinAlbum.Visibility = Visibility.Collapsed;
                LabelNoHayCancionesPrivadas.Visibility      = Visibility.Visible;
            }
            else
            {
                DataGridListaDeCancionesSinAlbum.Visibility = Visibility.Visible;
                LabelNoHayCancionesPrivadas.Visibility      = Visibility.Collapsed;
            }
            DataGridListaDeAlbumes.ItemsSource           = AlbumesCargados;
            DataGridListaDeCancionesSinAlbum.ItemsSource = CancionesPrivadas;
            if (DataGridListaDeAlbumes.Items.Count > 0)
            {
                DataGridListaDeAlbumes.SelectedItem = DataGridListaDeAlbumes.Items[0];
            }
        }
Beispiel #14
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            SetContentView(Resource.Layout.main_consumer);

            UsuarioActual       = new Usuario();
            UsuarioActual.Token = Intent.Extras.GetString("token");
            UsuarioActual.Id    = Intent.Extras.GetInt("token", -1);

            CancionDAO cancionDAO = new CancionDAO(UsuarioActual.Token);

            Cancion[]    cancions              = cancionDAO.CargarTodas().Result.ToArray();
            RecyclerView recyclerView          = FindViewById <RecyclerView>(Resource.Id.cancionesTodas);
            CancionRecyclerViewAdapter adapter = new CancionRecyclerViewAdapter(cancions);

            RecyclerView.LayoutManager layoutManager = new LinearLayoutManager(this);
            recyclerView.SetLayoutManager(layoutManager);
            recyclerView.SetAdapter(adapter);
        }
Beispiel #15
0
        private async void ButtonAñadirACola_Click(object sender, RoutedEventArgs e)
        {
            Playlist       playlistSeleccionada = ((FrameworkElement)sender).DataContext as Playlist;
            CancionDAO     cancionDAO           = new CancionDAO(Token);
            List <Cancion> cancionesDePlaylist;

            try
            {
                cancionesDePlaylist = await cancionDAO.CargarPorIdPlaylist(playlistSeleccionada.Id);
            }
            catch (Exception ex)
            {
                MensajeDeErrorParaMessageBox mensaje = EncadenadorDeExcepciones.ManejarExcepcion(ex);
                MessageBox.Show(mensaje.Mensaje, mensaje.Titulo);
                return;
            }
            foreach (Cancion cancion in cancionesDePlaylist)
            {
                ControladorDeReproduccion.AgregarCancionAlFinal(cancion);
            }
        }
Beispiel #16
0
        public bool EliminarCancionDeAlbum(int idCancion, int idAlbum)
        {
            bool respuesta = false;

            try
            {
                CancionDAO cancionDAO = new CancionDAO();
                Canciones  cancion    = cancionDAO.CargarPorId(idCancion);
                using (UVFYContext context = new UVFYContext())
                {
                    cancion.AlbumsId             = null;
                    context.Entry(cancion).State = Microsoft.EntityFrameworkCore.EntityState.Modified;
                    context.SaveChanges();
                }
                respuesta = true;
            }
            catch (SqlException e)
            {
                Console.WriteLine(e.ToString());
                throw new AccesoADatosException(e.Message, e);
            }
            return(respuesta);
        }