public async Task <dynamic> GetAlbumAsync(int pagina) { //Obtiene el idDel usuario por medio del token userInfo = new UserInfoModulo(HttpContext); var idUsuario = userInfo.GetIdUsuario(); //Realiza la consulta de una api ConsumoApis implementacionModulo = new ConsumoApis(); var data = await implementacionModulo.GetApi($"https://jsonplaceholder.typicode.com/albums"); //Deserializa el string a una lista de objetos var albumsDto = JsonConvert.DeserializeObject <List <AlbumsDto> >(data); albumsDto = albumsDto.ToList(); var albumes = _context.Album.Where(a => a.IdUsuario == idUsuario).OrderByDescending(a => a.FechaConsulta).ToArray(); foreach (var a in albumes) { var album = albumsDto.Where(_a => _a.id == a.Id).FirstOrDefault(); album.fechaConsulta = a.FechaConsulta; } //Organiza los albums albumsDto = albumsDto.OrderByDescending(o => o.fechaConsulta).ToList(); //Cuenta la cantidad de albums que hay var cantidad = albumsDto.Count(); return(new { cantidad = cantidad, albums = albumsDto.Skip(10 * (pagina - 1)).Take(10) }); }
public ActionResult <string> GetToken(string token) { var identity = HttpContext.User.Identity as ClaimsIdentity; IEnumerable <Claim> claims = identity.Claims; userInfo = new UserInfoModulo(HttpContext); var id = userInfo.GetIdUsuario(); return(token); //return "value"; }
public PhotosDto PostCancion(PhotosDto photos, bool faborito = false, bool inapropiado = false, bool noListar = false) { //Obtiene el idDel usuario por medio del token userInfo = new UserInfoModulo(HttpContext); var idUsuario = userInfo.GetIdUsuario(); var album = _context.Album.Where(a => a.IdUsuario == idUsuario && a.Id == photos.albumId).FirstOrDefault(); var cancion = _context.Cancion.Where(c => c.IdAlbum == album.IdAlbum && c.Id == photos.id).FirstOrDefault(); if (cancion == null) { cancion = new Cancion() { Faborito = faborito, IdAlbum = album.IdAlbum, Id = photos.id, Inapropiado = inapropiado, NoVolverListar = noListar }; _context.Cancion.Add(cancion); } else { cancion.Faborito = faborito; cancion.Inapropiado = inapropiado; cancion.NoVolverListar = noListar; } _context.SaveChanges(); photos.categoria = faborito ? 1 : (inapropiado ? -1 : (noListar ? -2 : 0)); return(photos); }
public async Task <PhotosDto[]> GetCancionAsync(int id) { //Obtiene el idDel usuario por medio del token userInfo = new UserInfoModulo(HttpContext); var idUsuario = userInfo.GetIdUsuario(); //Realiza la consulta de una api ConsumoApis implementacionModulo = new ConsumoApis(); var data = await implementacionModulo.GetApi($"https://jsonplaceholder.typicode.com/albums/{id}/photos"); var photos = JsonConvert.DeserializeObject <List <PhotosDto> >(data); //Consulta el album con el id del usuario y el id del album var album = _context.Album.Where(a => a.IdUsuario == idUsuario && a.Id == id).FirstOrDefault(); //Si no existe el album para el usuario, es creado if (album == null) { album = new Album() { FechaConsulta = DateTime.Now, IdAlbum = 0, Id = id, IdUsuario = idUsuario }; _context.Album.Add(album); } //Actualiza la fecha de consulta del album else { album.FechaConsulta = DateTime.Now; } //Guarda el album consultado _context.SaveChanges(); var canciones = _context.Cancion.Where(c => c.IdAlbum == album.IdAlbum).ToArray(); //No lo lista en las canciones var noListar = canciones.Where(c => c.NoVolverListar).Select(c => c.Id).ToArray(); if (noListar.Count() > 0) { foreach (var p in photos.Where(_p => noListar.Contains(_p.id)).ToArray()) { p.categoria = -2; } } //No muestra estas canciones en la lista var inapropiado = canciones.Where(c => c.Inapropiado).Select(c => c.Id).ToArray(); if (inapropiado.Count() > 0) { foreach (var p in photos.Where(_p => inapropiado.Contains(_p.id)).ToArray()) { p.categoria = -1; } } //Marca las canciones como faboritas var faboritos = canciones.Where(c => c.Faborito).Select(c => c.Id).ToArray(); if (faboritos.Count() > 0) { foreach (var p in photos.Where(_p => faboritos.Contains(_p.id)).ToArray()) { p.categoria = 1; } } //Retorna las photos ordenadas return(photos.OrderByDescending(p => p.categoria).ToArray()); }