Esempio n. 1
0
        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
                    }));
                }
            }
        }
Esempio n. 2
0
        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
                    }));
                }
            }
        }
Esempio n. 3
0
        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
                    }));
                }
            }
        }
Esempio n. 4
0
        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
                    }));
                }
            }
        }