public IHttpActionResult PutAnime(int id, AnimeWrapper Req)
        {
            if (!AdminValidator())
            {
                return(Unauthorized());
            }

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }


            var anime = Req.Anime;

            anime.ID = id;
            var Generos             = Req.Generos;
            var Estudios            = Req.Estudios;
            var NombresAlternativos = Req.NombresAlternativos;
            var Personajes          = Req.Personajes;

            db.Personajes.RemoveRange(db.Personajes.Where(x => x.AnimeID == id));
            db.AnimeGenero.RemoveRange(db.AnimeGenero.Where(x => x.AnimeID == id));
            db.AnimeEstudio.RemoveRange(db.AnimeEstudio.Where(x => x.AnimeID == id));
            db.NombreAlternativo.RemoveRange(db.NombreAlternativo.Where(x => x.AnimeID == id));

            foreach (int GeneroID in Generos)
            {
                AnimeGenero animeGenero = new AnimeGenero();
                animeGenero.AnimeID  = id;
                animeGenero.GeneroID = GeneroID;

                db.AnimeGenero.Add(animeGenero);
            }

            foreach (int EstudioID in Estudios)
            {
                AnimeEstudio animeEstudio = new AnimeEstudio();
                animeEstudio.AnimeID   = id;
                animeEstudio.EstudioID = EstudioID;

                db.AnimeEstudio.Add(animeEstudio);
            }

            foreach (string NombreAlternativo in NombresAlternativos)
            {
                NombreAlternativo nombreAlternativo = new NombreAlternativo();
                nombreAlternativo.AnimeID = id;
                nombreAlternativo.Nombre  = NombreAlternativo;

                db.NombreAlternativo.Add(nombreAlternativo);
            }

            foreach (Personajes Personaje in Personajes)
            {
                Personaje.AnimeID = id;

                db.Personajes.Add(Personaje);
            }

            db.Entry(anime).State = EntityState.Modified;

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!AnimeExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
        public IHttpActionResult PostAnime(AnimeWrapper Req)
        {
            if (!AdminValidator())
            {
                return(Unauthorized());
            }

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var anime = Req.Anime;

            try
            {
                var Generos             = Req.Generos;
                var Estudios            = Req.Estudios;
                var NombresAlternativos = Req.NombresAlternativos;
                var Personajes          = Req.Personajes;

                db.Anime.Add(anime);
                db.SaveChanges();

                foreach (int GeneroID in Generos)
                {
                    AnimeGenero animeGenero = new AnimeGenero();
                    animeGenero.AnimeID  = anime.ID;
                    animeGenero.GeneroID = GeneroID;

                    db.AnimeGenero.Add(animeGenero);
                }

                foreach (int EstudioID in Estudios)
                {
                    AnimeEstudio animeEstudio = new AnimeEstudio();
                    animeEstudio.AnimeID   = anime.ID;
                    animeEstudio.EstudioID = EstudioID;

                    db.AnimeEstudio.Add(animeEstudio);
                }

                foreach (string NombreAlternativo in NombresAlternativos)
                {
                    NombreAlternativo nombreAlternativo = new NombreAlternativo();
                    nombreAlternativo.AnimeID = anime.ID;
                    nombreAlternativo.Nombre  = NombreAlternativo;

                    db.NombreAlternativo.Add(nombreAlternativo);
                }

                foreach (Personajes Personaje in Personajes)
                {
                    Personaje.AnimeID = anime.ID;

                    db.Personajes.Add(Personaje);
                }

                db.SaveChanges();
            }
            catch
            {
                return(Conflict());
            }

            return(CreatedAtRoute("DefaultApi", new { id = anime.ID }, anime));
        }