Пример #1
0
        public async Task <ActionResult> Put(int id, [FromBody] LibroCreacionDTO libroCreacionDTO)
        {
            Libro libroBD = await context.Libros.FirstOrDefaultAsync(x => x.Id == id && x.Activo);

            if (libroBD == null)
            {
                return(NotFound());
            }

            libroBD = mapper.Map <Libro>(libroCreacionDTO);

            if (libroCreacionDTO.RutaLibro != null)
            {
                using (MemoryStream memoryStream = new MemoryStream())
                {
                    await libroCreacionDTO.RutaLibro.CopyToAsync(memoryStream);

                    byte[] contenido = memoryStream.ToArray();
                    string extencion = Path.GetExtension(libroCreacionDTO.RutaLibro.FileName);
                    libroBD.Ruta = await almacenador.EditarArchivo(contenido, extencion, contenedor, libroBD.Ruta, libroCreacionDTO.RutaLibro.ContentType);
                }
            }

            await context.SaveChangesAsync();

            return(NoContent());
        }
        public async Task <ActionResult> Post(LibroCreacionDTO libroCreacionDTO)
        {
            if (libroCreacionDTO.AutoresIds == null)
            {
                return(BadRequest("No se puede crear un libro sin autores"));
            }

            var autoresIds = await context.Autores
                             .Where(autorBD => libroCreacionDTO.AutoresIds.Contains(autorBD.Id)).Select(x => x.Id).ToListAsync();

            if (libroCreacionDTO.AutoresIds.Count != autoresIds.Count)
            {
                return(BadRequest("No existe uno de los autores enviados"));
            }

            var libro = mapper.Map <Libro>(libroCreacionDTO);

            AsignarOrdenAutores(libro);

            context.Add(libro);
            await context.SaveChangesAsync();

            var libroDTO = mapper.Map <LibroDTO>(libro);

            return(CreatedAtRoute("obtenerLibro", new { id = libro.Id }, libroDTO));
        }
        public async Task <ActionResult> Put(int id, LibroCreacionDTO libroCreacionDTO)
        {
            var libroDB = await context.Libros
                          .Include(x => x.AutoresLibros)
                          .FirstOrDefaultAsync(x => x.Id == id);

            if (libroDB == null)
            {
                return(NotFound());
            }

            libroDB = mapper.Map(libroCreacionDTO, libroDB);

            AsignarOrdenAutores(libroDB);

            await context.SaveChangesAsync();

            return(NoContent());
        }
        private List <AutorLibro> MapAutoresLibros(LibroCreacionDTO libroCreacionDTO, Libro libro)
        {
            var resultado = new List <AutorLibro>();

            if (libroCreacionDTO.AutoresIds == null)
            {
                return(resultado);
            }

            foreach (var autorId in libroCreacionDTO.AutoresIds)
            {
                resultado.Add(new AutorLibro()
                {
                    AutorId = autorId
                });
            }

            return(resultado);
        }
Пример #5
0
        public async Task <ActionResult> Post([FromForm] LibroCreacionDTO libroCreacionDTO)
        {
            Libro libro = mapper.Map <Libro>(libroCreacionDTO);

            if (libroCreacionDTO.RutaLibro != null)
            {
                using (MemoryStream memoryStream = new MemoryStream())
                {
                    await libroCreacionDTO.RutaLibro.CopyToAsync(memoryStream);

                    byte[] contenido = memoryStream.ToArray();
                    string extencion = Path.GetExtension(libroCreacionDTO.RutaLibro.FileName);
                    libro.Ruta = await almacenador.GuardarArchivo(contenido, extencion, contenedor, libroCreacionDTO.RutaLibro.ContentType);
                }
            }

            context.Add(libro);
            await context.SaveChangesAsync();

            LibroDTO libroDTO = mapper.Map <LibroDTO>(libro);

            return(new CreatedAtRouteResult("obtenerLibro", new { id = libroDTO.Id }, libroDTO));
        }