public async Task <ActionResult <Anime_Episodio> > ModificarAnime_Episodio(int id, [FromBody] Anime_EpisodioEditarViewModel anime_Episodio) { if (id != anime_Episodio.EpisodioId) { return(BadRequest(new ApiResponseFormat() { Estado = StatusCodes.Status400BadRequest, Mensaje = "Identificador de episodio invalido" })); } Anime_Episodio editado = _context.Anime_Episodios.Include(a => a.UrlServidores).Include(e => e.Anime).FirstOrDefault(e => e.EpisodioId == anime_Episodio.EpisodioId); editado.Titulo_episodio = anime_Episodio.Titulo_episodio; editado.Numero_episodio = anime_Episodio.Numero_episodio; editado.UrlServidores = anime_Episodio.UrlServidores; if (!string.IsNullOrEmpty(anime_Episodio.Nombre_Archivo)) { editado.Nombre_archivo = anime_Episodio.Nombre_Archivo; } _context.Entry(editado).State = EntityState.Modified; try { await _context.SaveChangesAsync(); return(Ok(new ApiResponseFormat() { Estado = StatusCodes.Status200OK, Mensaje = "Episodio modificado", Dato = editado })); } catch (DbUpdateConcurrencyException ex) { if (!Anime_EpisodioExists(id)) { return(NotFound(new ApiResponseFormat() { Estado = StatusCodes.Status404NotFound, Mensaje = "Episodio no encontrado" })); } else { return(StatusCode(StatusCodes.Status304NotModified, new ApiResponseFormat() { Estado = StatusCodes.Status304NotModified, Mensaje = ex.Message })); } } }
public async Task <IActionResult> EditarManga_Capitulo(int?id, [FromBody] Manga_CapituloEditarViewModel manga) { if (id == null) { return(BadRequest(new ApiResponseFormat() { Estado = StatusCodes.Status400BadRequest, Mensaje = "Capitulo invalido" })); } Manga_Capitulo editado = _context.Manga_Capitulos.Find(id); editado.Nombre_capitulo = manga.Nombre_capitulo; editado.Numero_capitulo = manga.Numero_capitulo; editado.Fecha_publicacion = manga.Fecha_publicacion; editado.Paginas = manga.Paginas; _context.Entry(editado).State = EntityState.Modified; try { await _context.SaveChangesAsync(); return(Ok(new ApiResponseFormat() { Estado = StatusCodes.Status200OK, Mensaje = $"Capitulo {editado.Nombre_capitulo} editado con exito", Dato = editado })); } catch (DbUpdateConcurrencyException ex) { if (!Manga_CapituloExists((int)id)) { return(NotFound(new ApiResponseFormat() { Estado = StatusCodes.Status304NotModified, Mensaje = "Capitulo invalido" })); } else { return(BadRequest(new ApiResponseFormat() { Estado = StatusCodes.Status400BadRequest, Mensaje = ex.Message })); } } }
public async Task <IActionResult> EditarGeneros(int id, [FromBody][Bind("GeneroId,Nombre")] Genero generos) { if (id != generos.GeneroId) { return(NotFound(new ApiResponseFormat() { Estado = StatusCodes.Status404NotFound, Mensaje = "Error al conseguir el genero deseado" })); } if (_context.Generos.Any(g => g.Nombre.ToLower() == generos.Nombre.ToLower() && g.GeneroId != id)) { return(Conflict(new ApiResponseFormat() { Estado = StatusCodes.Status409Conflict, Mensaje = $"El genero {generos.Nombre} ya existe." })); } _context.Entry(generos).State = EntityState.Modified; try { await _context.SaveChangesAsync(); return(Ok(new ApiResponseFormat() { Estado = StatusCodes.Status200OK, Mensaje = $"Genero {generos.Nombre} modificado exitosamente.", Dato = generos })); } catch (DbUpdateConcurrencyException ex) { if (!GenerosExists(id)) { return(NotFound(new { result = "Error al modificar el genero deseado" })); } else { return(StatusCode(StatusCodes.Status304NotModified, new ApiResponseFormat { Estado = StatusCodes.Status304NotModified, Mensaje = ex.Message })); } } }
public async Task <IActionResult> ModificarAnime(int id, [FromBody] AnimeEditarViewModel anime) { if (id != anime.AnimeId) { return(BadRequest(new ApiResponseFormat() { Estado = StatusCodes.Status400BadRequest, Mensaje = $"Los Ids no coinciden {id} y {anime.AnimeId}" })); } Anime modificado = await _context.Animes.Include(a => a.Generos).ThenInclude(g => g.Genero).Include(a => a.Episodios).FirstOrDefaultAsync(a => a.AnimeId == anime.AnimeId); modificado.Nombre = anime.Nombre; modificado.Numero_episodios = anime.Numero_episodios; modificado.Descripcion = anime.Descripcion; modificado.Fecha_publicacion = anime.Fecha_publicacion; string mensajePortadaInvalida = "."; if (anime.Portada != null) { if (FormFileExtensions.IsImage(anime.Portada)) { MemoryStream ms = new MemoryStream(); anime.Portada.CopyTo(ms); modificado.Portada = ms.ToArray(); } else { mensajePortadaInvalida = " pero el formato de imagen invalido, se pondra la imagen de portada default."; } } await AniadirGeneros(modificado, anime.GenerosActivos.Where(ga => ga.Activo).Select(ga => ga.Genero).ToList()); _context.Entry(modificado).State = EntityState.Modified; try { await _context.SaveChangesAsync(); return(Ok(new ApiResponseFormat() { Estado = StatusCodes.Status200OK, Mensaje = $"Anime {modificado.Nombre} modificado exitosamente{mensajePortadaInvalida}", Dato = anime })); } catch (DbUpdateConcurrencyException ex) { if (!AnimeExists(id)) { return(NotFound(new ApiResponseFormat() { Estado = StatusCodes.Status404NotFound, Mensaje = $"No se encontro ningun anime con el Id {id}" })); } else { return(StatusCode(StatusCodes.Status304NotModified, new ApiResponseFormat() { Estado = StatusCodes.Status304NotModified, Mensaje = ex.Message })); } } }