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); }
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); }
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; } }
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; } }
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); }
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; }
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; } }
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]; } }
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); }
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); } }
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); }