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)); }
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 ActionResult Guardar(AnimeCLS anime, List <int> generos, List <int> estudios, List <PersonajeCLS> personajes, List <string> nombresAlternativos) { Token token = HttpContext.Session["token"] as Token; if (token == null || token.ExpiresAt < DateTime.Now) { return(RedirectToAction("Index", "Authentication")); } try { int ID = anime.ID ?? 0; AnimeWrapper req = new AnimeWrapper(); req.Anime = anime; req.Generos = generos ?? new List <int>(); req.Estudios = estudios ?? new List <int>(); req.Personajes = personajes ?? new List <PersonajeCLS>(); req.NombresAlternativos = nombresAlternativos ?? new List <string>(); HttpClient httpClient = new HttpClient(); httpClient.BaseAddress = new Uri(baseURL); httpClient.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json")); httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.AccessToken); string reqJson = JsonConvert.SerializeObject(req); HttpContent body = new StringContent(reqJson, Encoding.UTF8, "application/json"); if (ID == 0) { HttpResponseMessage response = httpClient.PostAsync(basePath + "api/Animes", body).Result; if (response.IsSuccessStatusCode) { return(Json( new { success = true, message = "Anime creado satisfactoriamente" }, JsonRequestBehavior.AllowGet)); } else if (response.StatusCode == System.Net.HttpStatusCode.Unauthorized) { return(RedirectToAction("Index", "Authentication")); } } else { HttpResponseMessage response = httpClient.PutAsync($"{basePath}api/Animes/{ID}", body).Result; if (response.IsSuccessStatusCode) { return(Json( new { success = true, message = "Anime modificado satisfactoriamente" }, JsonRequestBehavior.AllowGet)); } } throw new Exception("Error desconocido al guardar anime"); } catch (Exception e) { return(Json( new { success = false, message = e.InnerException }, JsonRequestBehavior.AllowGet)); } }