示例#1
0
        private void ButtonCancionesGustadas_Click(object sender, EventArgs e)
        {
            APIGatewayService api       = new APIGatewayService();
            List <Cancion>    canciones = new List <Cancion>();

            try
            {
                canciones = api.ObtenerCancionesGustadasPorIdUsuario(Usuario.Id);
            }
            catch (Exception ex)
            {
                canciones = new List <Cancion>();
                Toast.MakeText(View.Context, "Error al cargar canciones.", ToastLength.Short);
            }

            canciones.ForEach(c =>
            {
                try
                {
                    c.Artistas = api.ObtenerArtistasPorIdCancion(c.Id);
                }
                catch (Exception ex)
                {
                    c.Artistas = new List <Artista>();
                    Toast.MakeText(View.Context, "No se pudo cargar canciones completamente.", ToastLength.Short);
                }
            });

            var listasFragment = new ListasFragment(canciones, "Canciones gustadas", null, Reproductor, Usuario, CambiarContenido);

            CambiarContenido.CambiarContenido(listasFragment);
        }
示例#2
0
        private void AlbumAdapter_ItemClick(object sender, RecyclerViewAdapterClickEventArgs e)
        {
            APIGatewayService api       = new APIGatewayService();
            List <Cancion>    canciones = new List <Cancion>();

            try
            {
                canciones = api.ObtenerCancionesPorIdAlbum(e.Album.Id);
            }
            catch (Exception ex)
            {
                canciones = new List <Cancion>();
                Toast.MakeText(View.Context, "Error al cargar canciones.", ToastLength.Short);
            }

            canciones.ForEach(c =>
            {
                try
                {
                    c.Artistas = api.ObtenerArtistasPorIdCancion(c.Id);
                }
                catch (Exception ex)
                {
                    c.Artistas = new List <Artista>();
                    Toast.MakeText(View.Context, "No se pudo cargar canciones completamente.", ToastLength.Short);
                }

                c.Album = e.Album;
            });

            var listasFragment = new ListasFragment(canciones, e.Album.Nombre, e.Album.Ilustracion, Reproductor, Usuario, CambiarContenido);

            CambiarContenido.CambiarContenido(listasFragment);
        }
        private List <Album> CargarAlbumes()
        {
            APIGatewayService service = new APIGatewayService();
            List <Album>      albumes = service.ObtenerAlbumsPorIdArtista(Usuario.IdArtista);

            return(albumes);
        }
        private void ButtonMiHistorial_Click(object sender, EventArgs e)
        {
            APIGatewayService          api    = new APIGatewayService();
            List <ListaDeReproduccion> listas = null;

            try
            {
                listas = api.ObtenerTodasLasListasPorIdUsuario(Usuario.Id);
            }
            catch (Exception ex)
            {
                Toast.MakeText(View.Context, "Error al cargar mis listas.", ToastLength.Short);
            }

            if (listas == null)
            {
                listas = new List <ListaDeReproduccion>();
            }

            var historial = listas.FirstOrDefault(l => l.EsHistorialDeReproduccion);

            if (historial != null)
            {
                historial.CargarCancionesConArtistasYAlbum();

                var listasFragment = new ListasFragment(historial.Canciones, "Historial de reproducción", null, Reproductor, Usuario, CambiarContenido);
                CambiarContenido.CambiarContenido(listasFragment);
            }
            else
            {
                Toast.MakeText(View.Context, "No existe un historial de reproducción.", ToastLength.Short).Show();
            }
        }
示例#5
0
        private void AgregarCancionAHistorial(string idCancion)
        {
            APIGatewayService api = new APIGatewayService();

            HistorialDeReproduccion = ObtenerHistorialDeReproduccion();
            if (HistorialDeReproduccion == null)
            {
                Toast.MakeText(View.Context, "Lo sentimos ocurrio un error y no se puede recuperar su historial de canciones, intente mas tarde.", ToastLength.Long).Show();
            }
            else
            {
                if (HistorialDeReproduccion.IdsCanciones.Contains(idCancion))
                {
                    HistorialDeReproduccion.IdsCanciones.Remove(idCancion);
                    HistorialDeReproduccion.IdsCanciones.Insert(0, idCancion);
                }
                else
                {
                    HistorialDeReproduccion.IdsCanciones.Insert(0, idCancion);
                }

                try
                {
                    if (!api.ActualizarListaDeReproduccion(HistorialDeReproduccion.Id, HistorialDeReproduccion))
                    {
                        Toast.MakeText(View.Context, "Se produjo un error al agregar esta cancion al historial de reproduccion", ToastLength.Long).Show();
                    }
                }
                catch (Exception)
                {
                    Toast.MakeText(View.Context, "Error al conectarse al servidor. Intente mas tarde.", ToastLength.Long).Show();
                }
            }
        }
示例#6
0
        public void CargarCancionesConAlbumYArtistas()
        {
            APIGatewayService api = new APIGatewayService();

            Canciones = api.ObtenerCancionesPorIdArtista(Id);
            Canciones.ForEach(c => {
                try
                {
                    c.Artistas = api.ObtenerArtistasPorIdCancion(c.Id);
                }
                catch (Exception e)
                {
                    Console.WriteLine(e);
                }
            });
            Canciones.ForEach(c => {
                try
                {
                    c.Album = api.ObtenerAlbumPorIdCancion(c.Id);
                }
                catch (Exception e)
                {
                    Console.WriteLine(e);
                }
            });
        }
        public bool CargarCancionesConArtistasYAlbum()
        {
            APIGatewayService api = new APIGatewayService();
            bool huboExcepcion    = false;

            if (Canciones != null)
            {
                Canciones.Clear();
            }
            else
            {
                Canciones = new List <Cancion>();
            }

            foreach (string idCancion in IdsCanciones)
            {
                Cancion cancion = null;
                try
                {
                    cancion = api.ObtenerCancionPorId(idCancion);
                }
                catch (Exception)
                {
                    huboExcepcion = true;
                    break;
                }

                try
                {
                    cancion.Artistas = api.ObtenerArtistasPorIdCancion(idCancion);
                }
                catch (Exception)
                {
                    huboExcepcion = true;
                }

                try
                {
                    cancion.Album = api.ObtenerAlbumPorIdCancion(idCancion);
                }
                catch (Exception)
                {
                    huboExcepcion = true;
                }

                Canciones.Add(cancion);
            }

            return(huboExcepcion);
        }
示例#8
0
        public override void OnViewCreated(View view, Bundle savedInstanceState)
        {
            APIGatewayService api = new APIGatewayService();
            List <Album>      albumes;

            try
            {
                albumes = api.ObtenerTodosLosAlbumes();
            }
            catch (Exception e)
            {
                albumes = new List <Album>();
                Toast.MakeText(View.Context, "Error al cargar albumes.", ToastLength.Short);
            }


            RecyclerView recyclerView          = View.FindViewById <RecyclerView>(Resource.Id.recyclerViewAlbumes);
            AlbumesRecyclerViewAdapter adapter = new AlbumesRecyclerViewAdapter(albumes.ToArray());

            adapter.ItemClick += AlbumAdapter_ItemClick;
            RecyclerView.LayoutManager layoutManager = new LinearLayoutManager(View.Context, LinearLayoutManager.Horizontal, false);
            recyclerView.SetLayoutManager(layoutManager);
            recyclerView.SetAdapter(adapter);


            List <Artista> artistas;

            try
            {
                artistas = api.ObtenerArtistas();
            }
            catch (Exception e)
            {
                artistas = new List <Artista>();
                Toast.MakeText(View.Context, "Error al cargar artistas.", ToastLength.Short);
            }

            RecyclerView recyclerViewArtista           = View.FindViewById <RecyclerView>(Resource.Id.recyclerViewArtistas);
            ArtistasRecyclerViewAdapter adapterArtista = new ArtistasRecyclerViewAdapter(artistas.ToArray());

            adapterArtista.ItemClick += ArtistaAdapter_ItemClick;
            RecyclerView.LayoutManager layoutManagerArtista = new LinearLayoutManager(View.Context, LinearLayoutManager.Horizontal, false);
            recyclerViewArtista.SetLayoutManager(layoutManagerArtista);
            recyclerViewArtista.SetAdapter(adapterArtista);

            var buttonCancionesGustadas = View.FindViewById <ImageButton>(Resource.Id.imageButtonCancionesGustadas);

            buttonCancionesGustadas.Click += ButtonCancionesGustadas_Click;
        }
        public bool UsuarioExistente(string nombre)
        {
            bool resultado = false;

            APIGatewayService service = new APIGatewayService();

            List <Usuario> usuariosRecuperados = service.ObtenerTodosLosUsuarios();

            if (usuariosRecuperados.Exists(usuario => usuario.NombreDeUsuario == nombre))
            {
                resultado = true;
            }

            return(resultado);
        }
示例#10
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            Xamarin.Essentials.Platform.Init(this, savedInstanceState);
            // Set our view from the "main" layout resource
            SetContentView(Resource.Layout.activity_main);
            APIGatewayService = new APIGatewayService();

            Button btnis = FindViewById <Button>(Resource.Id.ButtonIniciarSesion);

            btnis.Click += ButtonIniciarSesionOnClick;
            Button btreg = FindViewById <Button>(Resource.Id.ButtonRegistrarse);

            btreg.Click += ButtonRegistrarseOnClick;
            Logica.Utilerias.UtileriasDeArchivos.AsignarRutaDeArchivos(Xamarin.Essentials.FileSystem.AppDataDirectory);
        }
        private void ButtonRegistroOnClick(object sender, EventArgs e)
        {
            Cancion           cancion           = new Cancion();
            Album             albumSeleccionado = new Album();
            APIGatewayService service           = new APIGatewayService();

            Spinner spinnerGenero = FindViewById <Spinner>(Resource.Id.SpinnerGenero);
            Spinner spinnerAlbum  = FindViewById <Spinner>(Resource.Id.SpinnerAlbum);

            if (ValidarEntradas())
            {
                int posicionSpinner = spinnerAlbum.SelectedItemPosition;

                albumSeleccionado = Albums[posicionSpinner];



                if (albumSeleccionado != null)
                {
                    cancion.Nombre = FindViewById <EditText>(Resource.Id.EditTextNombre).Text;
                    cancion.IdsArtistas.Add(Usuario.IdArtista);
                    cancion.IdAlbum   = albumSeleccionado.Id;
                    cancion.Genero    = ((GeneroMusical)spinnerGenero.SelectedItemPosition).ToString();
                    cancion.EsPublico = true;

                    var datosDelArchivo = LeerArchivoPorURL(PATH);

                    cancion.IdArchivo = service.CargarArchivos(datosDelArchivo);

                    if (cancion.IdArchivo != null && cancion.IdArchivo != string.Empty)
                    {
                        service.CrearCancion(cancion);
                        Toast.MakeText(ApplicationContext, "¡Registro Exitoso!", ToastLength.Short).Show();
                        Finish();
                    }
                    else
                    {
                        Toast.MakeText(ApplicationContext, "Error al subir el archivo. Intentelo mas tarde.", ToastLength.Short).Show();
                    }
                }
            }
            else
            {
                Toast.MakeText(ApplicationContext, "¡Ups!, algo salio mal porfavor verifica tus datos.", ToastLength.Short).Show();
            }
        }
        private void ButtonRegistroOnClick(object sender, EventArgs e)
        {
            bool resultado            = false;
            bool huboExcepcion        = false;
            APIGatewayService service = new APIGatewayService();

            if (ValidarEntradas())
            {
                Album album = new Album
                {
                    Nombre               = FindViewById <EditText>(Resource.Id.EditTextNombreAlbum).Text,
                    AñoDeLanzamiento     = int.Parse(FindViewById <EditText>(Resource.Id.EditTextLanzamiento).Text),
                    CompañiaDiscografica = FindViewById <EditText>(Resource.Id.EditTextDiscografia).Text,
                    IdArtista            = Usuario.IdArtista,
                    Ilustracion          = Arreglo
                };
                try
                {
                    resultado = service.CrearAlbum(album);
                }
                catch (AggregateException ex)
                {
                    string mensaje = ObtenerMensajesDeAggregateException(ex);
                    Toast.MakeText(ApplicationContext, mensaje, ToastLength.Short).Show();
                    huboExcepcion = true;
                }

                if (!huboExcepcion && resultado)
                {
                    Toast.MakeText(ApplicationContext, "¡Registro de albúm Exitoso!", ToastLength.Short).Show();
                    Finish();
                }
                else if (!resultado)
                {
                    Toast.MakeText(ApplicationContext, "Lo sentimos ocurrio un error inesperado en el servidor, ¡Porfavor intente mas tarde!", ToastLength.Short).Show();
                }
                else
                {
                    Toast.MakeText(ApplicationContext, "No hay conexion con el servidor", ToastLength.Short).Show();
                }
            }
            else
            {
                Toast.MakeText(ApplicationContext, "¡Ups!, algo salio mal porfavor verifica tus datos.", ToastLength.Short).Show();
            }
        }
示例#13
0
        public void DescargarArchivoDeCancion()
        {
            byte[]            archivo             = null;
            bool              errorDeConectividad = false;
            APIGatewayService api = new APIGatewayService();

            try
            {
                archivo = api.DescargarArchivoPorId(IdArchivo);
            }
            catch (Exception)
            {
                errorDeConectividad = true;
            }
            if (!errorDeConectividad)
            {
                UtileriasDeArchivos.GuardarArchivo(IdArchivo, archivo);
            }
        }
示例#14
0
        public bool CrearNuevoHistorialReproduccion()
        {
            bool resultado        = false;
            APIGatewayService api = new APIGatewayService();

            try
            {
                resultado = api.CrearNuevaListaDeReproduccion(new ListaDeReproduccion
                {
                    Nombre       = "HistorialDeReproduccion",
                    Descripcion  = string.Empty,
                    IdUsuario    = Usuario.Id,
                    IdsCanciones = new List <string>(),
                    EsHistorialDeReproduccion = true
                });
            }
            catch (Exception)
            {
                Toast.MakeText(View.Context, "Error al conectarse al servidor. Intente mas tarde.", ToastLength.Long).Show();
            }


            return(resultado);
        }
        public override void OnViewCreated(View view, Bundle savedInstanceState)
        {
            APIGatewayService          api    = new APIGatewayService();
            List <ListaDeReproduccion> listas = null;

            try
            {
                listas = api.ObtenerTodasLasListasPorIdUsuario(Usuario.Id);
            }
            catch (Exception e)
            {
                Toast.MakeText(View.Context, "Error al cargar mis listas.", ToastLength.Short);
            }

            if (listas != null)
            {
                listas.RemoveAll(l => l.EsHistorialDeReproduccion);
            }
            else
            {
                listas = new List <ListaDeReproduccion>();
            }

            var buttonMiHistorial = View.FindViewById <Button>(Resource.Id.buttonMiHistorial);

            buttonMiHistorial.Click += ButtonMiHistorial_Click;


            var recyclerView = View.FindViewById <RecyclerView>(Resource.Id.recyclerViewListasDeReproduccion);
            ListasDeReproduccionRecyclerViewAdapter adapter = new ListasDeReproduccionRecyclerViewAdapter(listas.ToArray());

            adapter.ItemClick += ListaDeReproduccionAdapter_ItemClick;
            RecyclerView.LayoutManager layoutManager = new LinearLayoutManager(View.Context, LinearLayoutManager.Vertical, false);
            recyclerView.SetLayoutManager(layoutManager);
            recyclerView.SetAdapter(adapter);
        }
        public bool OnNavigationItemSelected(IMenuItem item)
        {
            int id = item.ItemId;

            if (id == Resource.Id.nav_artista)
            {
                if (Usuario.IdArtista == null || Usuario.IdArtista == string.Empty)
                {
                    Intent intent = new Intent(this, typeof(RegistroDeArtistaActivity));
                    intent.PutExtra("usuario", JsonConvert.SerializeObject(Usuario));
                    StartActivity(intent);
                }
                else if (Usuario.IdArtista != null || Usuario.IdArtista == string.Empty)
                {
                    Toast.MakeText(ApplicationContext, "¡Usted ya registro al artista!", ToastLength.Short).Show();
                }
            }
            else if (id == Resource.Id.nav_album)
            {
                if (Usuario.IdArtista == null || Usuario.IdArtista == string.Empty)
                {
                    Toast.MakeText(ApplicationContext, "¡Debe registrar al artista primero!", ToastLength.Short).Show();
                }
                else if (Usuario.IdArtista != null || Usuario.IdArtista == string.Empty)
                {
                    Intent intent = new Intent(this, typeof(RegistroDeAlbumActivity));
                    intent.PutExtra("usuario", JsonConvert.SerializeObject(Usuario));
                    StartActivity(intent);
                }
            }
            else if (id == Resource.Id.nav_cancion)
            {
                if (Usuario.IdArtista != null && Usuario.IdArtista != string.Empty)
                {
                    APIGatewayService api = new APIGatewayService();
                    List <Album>      albums;
                    bool huboExcepcion = false;
                    try
                    {
                        albums = api.ObtenerAlbumsPorIdArtista(Usuario.IdArtista);
                    }
                    catch (Exception ex)
                    {
                        Toast.MakeText(ApplicationContext, "Error al cargar albums.", ToastLength.Short).Show();
                        huboExcepcion = true;
                        albums        = new List <Album>();
                    }

                    if (!huboExcepcion && albums.Count > 0)
                    {
                        Intent intent = new Intent(this, typeof(RegistroDeCancionActivity));
                        intent.PutExtra("usuario", JsonConvert.SerializeObject(Usuario));
                        StartActivity(intent);
                    }
                    else if (!huboExcepcion)
                    {
                        Toast.MakeText(ApplicationContext, "Debe registrar al menos un album.", ToastLength.Short).Show();
                    }
                }
                else
                {
                    Toast.MakeText(ApplicationContext, "Debe registrarse como artista.", ToastLength.Short).Show();
                }
            }
            DrawerLayout drawer = FindViewById <DrawerLayout>(Resource.Id.drawer_layout);

            drawer.CloseDrawer(GravityCompat.Start);
            return(true);
        }
示例#17
0
        private ListaDeReproduccion ObtenerHistorialDeReproduccion()
        {
            List <ListaDeReproduccion> listas = new List <ListaDeReproduccion>();
            APIGatewayService          api    = new APIGatewayService();

            try
            {
                listas = api.ObtenerTodasLasListasPorIdUsuario(Usuario.Id);
            }
            catch (Exception)
            {
                Toast.MakeText(View.Context, "Error al conectarse al servidor. Intente mas tarde.", ToastLength.Long).Show();
                listas = null;
            }
            if (listas != null)
            {
                HistorialDeReproduccion = listas.FirstOrDefault(l => l.EsHistorialDeReproduccion == true);

                if (HistorialDeReproduccion == null)
                {
                    if (!CrearNuevoHistorialReproduccion())
                    {
                        Toast.MakeText(View.Context, "Lo sentimos ocurrio un error y no se puede crear un nuevo historial de canciones, intente mas tarde.", ToastLength.Long).Show();
                    }
                    else
                    {
                        try
                        {
                            listas = api.ObtenerTodasLasListasPorIdUsuario(Usuario.Id);
                        }
                        catch (Exception)
                        {
                            Toast.MakeText(View.Context, "Error al conectarse al servidor. Intente mas tarde.", ToastLength.Long).Show();
                            listas = new List <ListaDeReproduccion>();
                        }

                        HistorialDeReproduccion = listas.FirstOrDefault(l => l.EsHistorialDeReproduccion == true);
                    }
                }
            }
            else
            {
                if (!CrearNuevoHistorialReproduccion())
                {
                    Toast.MakeText(View.Context, "Lo sentimos ocurrio un error y no se puede crear un nuevo historial de canciones, intente mas tarde.", ToastLength.Long).Show();
                }
                else
                {
                    try
                    {
                        listas = api.ObtenerTodasLasListasPorIdUsuario(Usuario.Id);
                    }
                    catch (Exception)
                    {
                        Toast.MakeText(View.Context, "Error al conectarse al servidor. Intente mas tarde.", ToastLength.Long).Show();
                        listas = new List <ListaDeReproduccion>();
                    }

                    HistorialDeReproduccion = listas.FirstOrDefault(l => l.EsHistorialDeReproduccion == true);
                }
            }
            return(HistorialDeReproduccion);
        }
示例#18
0
        public void CargarArtista()
        {
            APIGatewayService api = new APIGatewayService();

            Artista = api.ObtenerArtistaPorId(IdArtista);
        }
示例#19
0
        private void Reproducir(Cancion cancion)
        {
            Action action = new Action(DesactivarControles);

            Handler.Post(action);
            byte[]            archivo       = null;
            bool              huboExcepcion = false;
            APIGatewayService api           = new APIGatewayService();

            if (!UtileriasDeArchivos.CancionYaDescargada(cancion.IdArchivo))
            {
                try
                {
                    archivo = api.DescargarArchivoPorId(cancion.IdArchivo);
                    cancion.CargarMetadatosDeLaCancion(Usuario.Id);
                }
                catch (System.Exception)
                {
                    Toast.MakeText(View.Context, "Error al realizar la descarga, intente de nuevo mas tarde", ToastLength.Long).Show();
                    huboExcepcion = true;
                }
            }
            else
            {
                try
                {
                    archivo = UtileriasDeArchivos.LeerArchivoPorId(cancion.IdArchivo);
                }
                catch (ArgumentException)
                {
                    huboExcepcion = true;
                }
            }

            if (!huboExcepcion && archivo != null && archivo.Length > 0)
            {
                if (Canciones[IndiceActual].Metadatos == null)
                {
                    bool resultado = false;
                    try
                    {
                        resultado = api.CrearNuevoMetadato(Usuario.Id, Canciones[IndiceActual].Id);
                    }
                    catch (Exception)
                    {
                        Toast.MakeText(View.Context, "No se pudo registrar el MeGusta", ToastLength.Long).Show();
                    }

                    if (!resultado)
                    {
                        Toast.MakeText(View.Context, "No se pudo registrar el MeGusta", ToastLength.Long).Show();
                    }
                    else
                    {
                        Canciones[IndiceActual].CargarMetadatosDeLaCancion(Usuario.Id);
                    }
                }
                var buttonLike = View.FindViewById <ImageButton>(Resource.Id.ibtnLike);
                if (cancion.Metadatos.MeGusta)
                {
                    buttonLike.SetImageDrawable(View.Context.GetDrawable(Resource.Drawable.ic_ss_like));
                }
                else
                {
                    buttonLike.SetImageDrawable(View.Context.GetDrawable(Resource.Drawable.ic_ss_dislike));
                }
                var buttonReproducir = View.FindViewById <ImageButton>(Resource.Id.ibtnReproducir);
                buttonReproducir.SetImageDrawable(View.Context.GetDrawable(Resource.Drawable.ic_ss_pausa));
                var txtCancion = View.FindViewById <TextView>(Resource.Id.txtNombreCancion);
                txtCancion.Text = cancion.Nombre;
                var txtArtista = View.FindViewById <TextView>(Resource.Id.txtNombreArtista);
                if (cancion.Artistas.FirstOrDefault() != null)
                {
                    txtArtista.Text = cancion.Artistas.FirstOrDefault().Nombre;
                }
                var      txtTiempoTotal = View.FindViewById <TextView>(Resource.Id.txtDuracionTotal);
                TimeSpan tiempoActual   = TimeSpan.FromMilliseconds(Reproductor.Duration);
                txtTiempoTotal.Text = System.String.Format("{0}:{1:D2}", tiempoActual.Minutes, tiempoActual.Seconds);
                try
                {
                    Reproductor.Reset();
                    Java.IO.File archivoTemporal = Java.IO.File.CreateTempFile(cancion.Id, "mp3", Context.CacheDir);
                    archivoTemporal.DeleteOnExit();
                    Java.IO.FileOutputStream outputStream = new Java.IO.FileOutputStream(archivoTemporal);
                    outputStream.Write(archivo);
                    outputStream.Close();
                    Java.IO.FileInputStream fis = new Java.IO.FileInputStream(archivoTemporal);
                    Reproductor.SetDataSource(fis.FD);
                    Reproductor.Prepare();
                    Reproductor.Start();
                    CancionCorriendo = true;
                }
                catch (System.Exception e)
                {
                    Toast.MakeText(View.Context, e.Message, ToastLength.Long).Show();
                }

                AgregarCancionAHistorial(cancion.Id);
            }
            action = new Action(ActivarControles);
            Handler.Post(action);
            ActualizadorCorriendo = true;
        }
示例#20
0
        private void ButtonLike_Click(object sender, EventArgs e)
        {
            try
            {
                Canciones[IndiceActual].CargarMetadatosDeLaCancion(Usuario.Id);
            }
            catch (Exception)
            {
                Toast.MakeText(View.Context, "Error al conectarse al servidor. Intente mas tarde.", ToastLength.Long).Show();
                return;
            }

            APIGatewayService api = new APIGatewayService();

            if (Canciones[IndiceActual].Metadatos == null)
            {
                bool resultado = false;
                try
                {
                    resultado = api.CrearNuevoMetadato(Usuario.Id, Canciones[IndiceActual].Id);
                }
                catch (Exception)
                {
                    Toast.MakeText(View.Context, "No se pudo registrar el MeGusta", ToastLength.Long).Show();
                }

                if (!resultado)
                {
                    Toast.MakeText(View.Context, "No se pudo registrar el MeGusta", ToastLength.Long).Show();
                }
                else
                {
                    Canciones[IndiceActual].CargarMetadatosDeLaCancion(Usuario.Id);
                }
            }

            if (Canciones[IndiceActual].Metadatos != null)
            {
                if (Canciones[IndiceActual].Metadatos.MeGusta)
                {
                    try
                    {
                        api.ActualizarMeGustaAMetadato(Canciones[IndiceActual].Metadatos.Id, false);
                    }
                    catch (Exception)
                    {
                        Toast.MakeText(View.Context, "Error al conectarse al servidor. Intente mas tarde.", ToastLength.Long).Show();
                    }

                    Canciones[IndiceActual].EliminarArchivoDeCancion();
                }
                else
                {
                    try
                    {
                        api.ActualizarMeGustaAMetadato(Canciones[IndiceActual].Metadatos.Id, true);
                    }
                    catch (Exception)
                    {
                        Toast.MakeText(View.Context, "Error al conectarse al servidor. Intente mas tarde.", ToastLength.Long).Show();
                    }
                    Canciones[IndiceActual].DescargarArchivoDeCancion();
                }

                try
                {
                    Canciones[IndiceActual].CargarMetadatosDeLaCancion(Usuario.Id);
                }
                catch (Exception)
                {
                    Toast.MakeText(View.Context, "Error al conectarse al servidor. Intente mas tarde.", ToastLength.Long).Show();
                }
            }

            var buttonLike = View.FindViewById <ImageButton>(Resource.Id.ibtnLike);

            if (Canciones[IndiceActual].Metadatos.MeGusta)
            {
                buttonLike.SetImageDrawable(View.Context.GetDrawable(Resource.Drawable.ic_ss_like));
            }
            else
            {
                buttonLike.SetImageDrawable(View.Context.GetDrawable(Resource.Drawable.ic_ss_dislike));
            }
        }
示例#21
0
        public void CargarMetadatosDeLaCancion(string idUsuario)
        {
            APIGatewayService api = new APIGatewayService();

            Metadatos = api.CargarMetadatosPorIdCancionYIdUsuario(Id, idUsuario);
        }
示例#22
0
        private void ButtonRegistroOnClick(object sender, EventArgs e)
        {
            string resultado = null;
            bool   resultadoActualizarUsuario   = false;
            bool   huboExcepcionRegistroArtista = false;

            APIGatewayService service = new APIGatewayService();

            if (ValidarEntradas())
            {
                Artista artista = new Artista
                {
                    Nombre      = FindViewById <EditText>(Resource.Id.EditTextArtista).Text,
                    Descripcion = FindViewById <EditText>(Resource.Id.EditTextDescripcion).Text,
                    Ilustracion = Arreglo
                };

                try
                {
                    resultado = service.CrearArtista(artista);
                }
                catch (AggregateException ex)
                {
                    string mensaje = ObtenerMensajesDeAggregateException(ex);
                    Toast.MakeText(ApplicationContext, mensaje, ToastLength.Short).Show();
                    huboExcepcionRegistroArtista = true;
                }


                if (!huboExcepcionRegistroArtista && resultado != null)
                {
                    Usuario.IdArtista = resultado;
                    try
                    {
                        resultadoActualizarUsuario = service.ActualizarUsuarioAsync(Usuario.Id, Usuario);
                    }
                    catch (Exception ex)
                    {
                        resultadoActualizarUsuario = false;
                    }

                    if (resultadoActualizarUsuario)
                    {
                        Toast.MakeText(ApplicationContext, "¡Registro Exitoso!", ToastLength.Short).Show();
                        Finish();
                    }
                    else
                    {
                        Toast.MakeText(ApplicationContext, "Lo sentimos ocurrio un error inesperado en el servidor, ¡Porfavor intente mas tarde!", ToastLength.Short).Show();
                    }
                }
                else if (resultado == null)
                {
                    Toast.MakeText(ApplicationContext, "Lo sentimos ocurrio un error inesperado en el servidor, ¡Porfavor intente mas tarde!", ToastLength.Short).Show();
                }
                else
                {
                    Toast.MakeText(ApplicationContext, "No hay conexion con el servidor", ToastLength.Short).Show();
                }
            }
        }
        private void ButtonRegistroOnClick(object sender, EventArgs eventArgs)
        {
            bool resultado     = false;
            bool huboExcepcion = false;

            APIGatewayService service = new APIGatewayService();

            if (ValidarEntradas())
            {
                if (!UsuarioExistente(FindViewById <EditText>(Resource.Id.EditTextUsuario).Text))
                {
                    Usuario usuario = new Usuario
                    {
                        NombreDeUsuario = FindViewById <EditText>(Resource.Id.EditTextUsuario).Text,
                        Contraseña      = EncriptarCadena(FindViewById <EditText>(Resource.Id.EditTextContraseña).Text)
                    };

                    try
                    {
                        resultado = service.CrearUsuario(usuario); //ex
                    }
                    catch (AggregateException ex)
                    {
                        string mensaje = ObtenerMensajesDeAggregateException(ex);
                        Toast.MakeText(ApplicationContext, mensaje, ToastLength.Short).Show();
                        huboExcepcion = true;
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message);
                    }

                    if (!huboExcepcion && resultado)
                    {
                        Toast.MakeText(ApplicationContext, "¡Registro Exitoso!", ToastLength.Short).Show();
                        Intent intent = new Intent(this, typeof(MainActivity));
                        StartActivity(intent);
                    }
                    else if (!resultado)
                    {
                        Toast.MakeText(ApplicationContext, "Lo sentimos ocurrio un error inesperado en el servidor, ¡Porfavor intente mas tarde!", ToastLength.Short).Show();
                    }
                    else
                    {
                        Toast.MakeText(ApplicationContext, "No hay conexion con el servidor", ToastLength.Short).Show();
                    }
                }
                else
                {
                    Android.App.AlertDialog.Builder alerta = new Android.App.AlertDialog.Builder(this);
                    alerta.SetTitle("Alerta");
                    alerta.SetMessage("El nombre de usuario ya se encuentra ocupado");
                    alerta.SetPositiveButton("Aceptar", (senderAlert, args) =>
                    {
                        Toast.MakeText(ApplicationContext, "Porfavor selecciona otro nombre de usuario.", ToastLength.Short).Show();
                    });

                    Dialog dialog = alerta.Create();
                    dialog.Show();
                }
            }
            else
            {
                Toast.MakeText(ApplicationContext, "¡Ups!, algo salio mal porfavor verifica tus datos.", ToastLength.Short).Show();
            }
        }
示例#24
0
        private void MostrarSeleccionDeListasDeReproduccionYAgregarla(Cancion cancion)
        {
            APIGatewayService api             = new APIGatewayService();
            bool huboExcepcionCargandoListas  = false;
            List <ListaDeReproduccion> listas = null;

            try
            {
                listas = api.ObtenerTodasLasListasPorIdUsuario(Usuario.Id);
            }
            catch (System.Exception ex)
            {
                huboExcepcionCargandoListas = true;
            }

            if (!huboExcepcionCargandoListas && listas != null)
            {
                listas.RemoveAll(l => l.EsHistorialDeReproduccion);

                List <string> nombresDeListas = new List <string>();
                foreach (var lista in listas)
                {
                    nombresDeListas.Add(lista.Nombre);
                }

                Android.App.AlertDialog.Builder alerta = new Android.App.AlertDialog.Builder(View.Context);
                alerta.SetTitle("Seleccione la lista");

                alerta.SetItems(nombresDeListas.ToArray(), new EventHandler <DialogClickEventArgs>(delegate(object o, DialogClickEventArgs args)
                {
                    var lista = listas[args.Which];
                    lista.IdsCanciones.Add(cancion.Id);
                    bool resultado     = false;
                    bool huboExcepcion = false;

                    try
                    {
                        resultado = api.ActualizarListaDeReproduccion(lista.Id, lista);
                    }
                    catch (System.Exception ex)
                    {
                        huboExcepcion = true;
                    }

                    if (!huboExcepcion)
                    {
                        if (resultado)
                        {
                            Toast.MakeText(View.Context, "Cancion añadida correctamente.", ToastLength.Short);
                        }
                        else
                        {
                            Toast.MakeText(View.Context, "Lo sentimos, no se pudo agregar la cancion a la lista.", ToastLength.Short);
                        }
                    }
                    else
                    {
                        Toast.MakeText(View.Context, "Error al conectarse al servidor. Intente mas tarde.", ToastLength.Short);
                    }
                }));
                alerta.Show();
            }
            else if (listas == null)
            {
                Toast.MakeText(View.Context, "No hay ninguna lista de canciones.", ToastLength.Short);
            }
            else
            {
                Toast.MakeText(View.Context, "Error al conectarse al servidor. Intente mas tarde.", ToastLength.Short);
            }
        }