Example #1
0
        public async Task <ActionResult <Anime_Favorito> > ObtenerAnime_Favorito([Bind("animeId")] int animeId)
        {
            try
            {
                Claim correo = User.Claims.FirstOrDefault(c => c.Type == "Email");

                if (correo != null)
                {
                    Anime_Favorito favorito = await _context.Anime_Favorito.Where(ef => ef.Usuario.Email == correo.Value && ef.AnimeID == animeId).FirstOrDefaultAsync();

                    if (favorito == null)
                    {
                        favorito = new Anime_Favorito()
                        {
                            Favorito = false
                        };
                    }

                    return(Ok(new ApiResponseFormat {
                        Estado = StatusCodes.Status302Found, Dato = favorito.Favorito
                    }));
                }

                return(Unauthorized(new ApiResponseFormat {
                    Estado = StatusCodes.Status401Unauthorized, Mensaje = "Inicie sesion para usar esta funcion."
                }));
            }
            catch (Exception ex)
            {
                return(StatusCode(ex.HResult, new ApiResponseFormat {
                    Estado = StatusCodes.Status404NotFound, Mensaje = ex.Message
                }));
            }
        }
Example #2
0
        public async Task <ActionResult <Anime_Favorito> > CrearAnime_Favoritos([FromBody][Bind("animeId")] int animeId)
        {
            try
            {
                Claim correo = User.Claims.FirstOrDefault(c => c.Type == "Email");

                if (correo != null)
                {
                    Usuario usuario = await _userManager.FindByEmailAsync(correo.Value);

                    Anime_Favorito af = new Anime_Favorito()
                    {
                        Usuario  = usuario,
                        Anime    = _context.Animes.Find(animeId),
                        Favorito = true
                    };

                    _context.Add(af);
                    await _context.SaveChangesAsync();

                    return(Ok(new ApiResponseFormat {
                        Estado = StatusCodes.Status201Created, Mensaje = "Anime favorito agregado", Dato = af.Favorito
                    }));
                }

                return(Unauthorized(new ApiResponseFormat {
                    Estado = StatusCodes.Status401Unauthorized, Mensaje = "Inicie sesion para usar esta opcion."
                }));
            }
            catch (DbUpdateException ex)
            {
                return(StatusCode(ex.HResult, new { Result = ex.HResult, Data = ex.Message }));
            }
        }
Example #3
0
        public async Task <ActionResult <Anime_Favorito> > QuitarAnime_Favoritos([FromBody][Bind("animeId")] int animeId)
        {
            try
            {
                Claim correo = User.Claims.FirstOrDefault(c => c.Type == "Email");

                if (correo != null)
                {
                    Usuario usuario = await _userManager.FindByEmailAsync(correo.Value);

                    Anime_Favorito anime_Favorito = await _context.Anime_Favorito.Where(af => af.UsuarioId == usuario.Id && af.AnimeID == animeId).FirstOrDefaultAsync();

                    if (anime_Favorito == null)
                    {
                        return(NotFound(new ApiResponseFormat {
                            Estado = StatusCodes.Status404NotFound, Mensaje = "No esta en tu lista de favoritos"
                        }));
                    }

                    _context.Anime_Favorito.Remove(anime_Favorito);
                    await _context.SaveChangesAsync();

                    return(Ok(new ApiResponseFormat {
                        Estado = StatusCodes.Status200OK, Mensaje = "Anime favorito eliminado", Dato = false
                    }));
                }

                return(Unauthorized(new ApiResponseFormat {
                    Estado = StatusCodes.Status401Unauthorized, Mensaje = "Inicie sesion para usar esta opcion."
                }));
            }
            catch (Exception ex)
            {
                return(StatusCode(ex.HResult, new ApiResponseFormat {
                    Estado = ex.HResult, Mensaje = ex.Message
                }));
            }
        }