コード例 #1
0
        public async Task <ActionResult> Put(int id, [FromForm] PeliculaCreacionDTO peliculaCreacionDTO)
        {
            var peliculaDB = await context.Peliculas
                             .Include(x => x.PeliculasActores)
                             .Include(x => x.PeliculasGeneros)
                             .FirstOrDefaultAsync(x => x.Id == id);

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

            peliculaDB = mapper.Map(peliculaCreacionDTO, peliculaDB);

            if (peliculaCreacionDTO.Poster != null)
            {
                using (var memorystream = new MemoryStream())
                {
                    await peliculaCreacionDTO.Poster.CopyToAsync(memorystream);

                    var contenido = memorystream.ToArray();
                    var extension = Path.GetExtension(peliculaCreacionDTO.Poster.FileName);
                    peliculaDB.Poster = await almacenadorArchivos.EditarArchivo(contenido, extension, contenedor,
                                                                                peliculaDB.Poster, peliculaCreacionDTO.Poster.ContentType);
                }
            }
            AsignarOrdenActores(peliculaDB);
            await context.SaveChangesAsync();

            return(NoContent());
        }
コード例 #2
0
        public async Task <ActionResult> Put(int id, [FromForm] PeliculaCreacionDTO peliculaCreacionDTO)
        {
            var pelicula = await context.Peliculas
                           .Include(x => x.PeliculasActores)
                           .Include(x => x.PeliculasGeneros)
                           .Include(x => x.PeliculasCines)
                           .FirstOrDefaultAsync(x => x.Id == id);

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

            pelicula = mapper.Map(peliculaCreacionDTO, pelicula);

            if (peliculaCreacionDTO.Poster != null)
            {
                pelicula.Poster = await almacenadorArchivos.EditarArchivo(contenedor, peliculaCreacionDTO.Poster, pelicula.Poster);
            }

            EscribirOrdenActores(pelicula);

            await context.SaveChangesAsync();

            return(NoContent());
        }
コード例 #3
0
        public async Task <ActionResult> Put(int id, [FromForm] PeliculaCreacionDTO peliculaCreacionDTO)
        {
            //Porque viene de forma hacemos esto otro para actualizar los datos
            var peliculaDB = await context.Peliculas
                             .Include(x => x.PeliculasActores)
                             .Include(x => x.PeliculasGeneros)
                             .FirstOrDefaultAsync(x => x.Id == id);

            if (peliculaDB == null)
            {
                return(NotFound());
            }
            //Solo los campos que son diferenten entre actorDB y actorCreacionDTO se actualizaran -
            //En las configuraciones de mapeo se va ignorar el campo foto, para que no se mapee automaticamente, ya en en actor.Foto es string y actorCreacionDTO.Foto es un IFormFile
            peliculaDB = mapper.Map(peliculaCreacionDTO, peliculaDB);
            if (peliculaCreacionDTO.Poster != null)
            {
                using (var memoryStream = new MemoryStream())
                {
                    await peliculaCreacionDTO.Poster.CopyToAsync(memoryStream);

                    var contenido = memoryStream.ToArray();
                    var extension = Path.GetExtension(peliculaCreacionDTO.Poster.FileName);
                    peliculaDB.Poster = await almacenadorArchivos.EditarArchivo(contenido, extension, contenedor, peliculaDB.Poster, peliculaCreacionDTO.Poster.ContentType);
                }
            }
            AsignarOrdenActores(peliculaDB);
            await context.SaveChangesAsync();

            return(NoContent());
        }
コード例 #4
0
        public async Task <ActionResult> Post([FromForm] PeliculaCreacionDTO peliculaCreacionDTO)
        {
            var pelicula = mapper.Map <Pelicula>(peliculaCreacionDTO);

            //return Ok();
            if (peliculaCreacionDTO.Poster != null)
            {
                using (var memorystream = new MemoryStream())
                {
                    await peliculaCreacionDTO.Poster.CopyToAsync(memorystream);

                    var contenido = memorystream.ToArray();
                    var extension = Path.GetExtension(peliculaCreacionDTO.Poster.FileName);
                    pelicula.Poster = await almacenadorArchivos.GuardarArchivo(contenido, extension, contenedor,
                                                                               peliculaCreacionDTO.Poster.ContentType);
                }
            }
            AsignarOrdenActores(pelicula);
            context.Add(pelicula);
            await context.SaveChangesAsync();

            var peliculaDTO = mapper.Map <PeliculaDTO>(pelicula);

            return(new CreatedAtRouteResult("obtenerPelicula", new { id = pelicula.Id }, peliculaDTO));
        }
コード例 #5
0
        public async Task <ActionResult> Post([FromForm] PeliculaCreacionDTO peliculaDto)
        {
            var entidad = mapper.Map <Pelicula>(peliculaDto);

            if (peliculaDto.Poster != null)
            {
                using (var memmoryStream = new MemoryStream())
                {
                    await peliculaDto.Poster.CopyToAsync(memmoryStream);

                    var contenido = memmoryStream.ToArray();
                    var Extension = Path.GetExtension(peliculaDto.Poster.FileName);

                    entidad.Poster = await almacenador.GuardarArchivo(contenido, Extension, contenedor, peliculaDto.Poster.ContentType);
                }
            }

            AsignarOrdenActor(entidad);

            await context.AddAsync(entidad);

            await context.SaveChangesAsync();

            var pelicula = mapper.Map <PeliculaDetallesDTO>(entidad);

            return(new CreatedAtRouteResult("GetPelicula", new { id = entidad.Id }, pelicula));
        }
コード例 #6
0
        public async Task <ActionResult> Put(int id, [FromForm] PeliculaCreacionDTO peliculaCreacionDTO)
        {
            /* Necesitamos hacer los Include() porque vamos a editar en memoria una pelicula y esa actualizacion nesecitamos que agarre
             *  los cambios realizados en la entidades relacionadas, para así, realizar las actualizaciones adecuadas en dichas tablas relacionadas.
             *  Ej: si borramos un genero, queremos que efectivamente se borre ese genero de la relacion pelicula-generos.
             */
            var pelicula = await context.Peliculas
                           .Include(x => x.PeliculasActores)
                           .Include(x => x.PeliculasGeneros)
                           .Include(x => x.PeliculasCines)
                           .FirstOrDefaultAsync(x => x.Id == id);

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

            pelicula = mapper.Map(peliculaCreacionDTO, pelicula);

            if (peliculaCreacionDTO.Poster != null)
            {
                // carpeta      IFormFile                  Ruta: string
                pelicula.Poster = await almacenadorArchivos.EditarArchivo(contenedor, peliculaCreacionDTO.Poster, pelicula.Poster);
            }

            EscribirOrdenActores(pelicula);

            await context.SaveChangesAsync();

            return(NoContent());
        }
コード例 #7
0
        public async Task <ActionResult <int> > Post([FromForm] PeliculaCreacionDTO peliculaCreacionDTO)
        {
            var pelicula = mapper.Map <Pelicula>(peliculaCreacionDTO);

            if (peliculaCreacionDTO.Poster != null)
            {
                pelicula.Poster = await almacenadorArchivos.GuardarArchivo(contenedor, peliculaCreacionDTO.Poster); // guardar poster
            }
            EscribirOrdebdeActores(pelicula);
            context.Add(pelicula);
            await context.SaveChangesAsync();

            return(pelicula.Id); //para retornar
        }
コード例 #8
0
        private List <PeliculasActores> MapPeliculasActores(PeliculaCreacionDTO peliculaCreacionDTO, Pelicula pelicula)
        {
            var resultado = new List <PeliculasActores>();

            if (peliculaCreacionDTO.Actores == null)
            {
                return(resultado);
            }
            foreach (var actor in peliculaCreacionDTO.Actores)
            {
                resultado.Add(new PeliculasActores()
                {
                    ActorId = actor.ActorID, Personaje = actor.Personaje
                });
            }
            return(resultado);
        }
コード例 #9
0
        private List <PeliculasGeneros> MapPeliculasGenero(PeliculaCreacionDTO peliculaCreacionDTO, Pelicula pelicula)
        {
            var resultado = new List <PeliculasGeneros>();

            if (peliculaCreacionDTO.GenerosIDs == null)
            {
                return(resultado);
            }
            foreach (var id in peliculaCreacionDTO.GenerosIDs)
            {
                resultado.Add(new PeliculasGeneros()
                {
                    GeneroId = id
                });
            }
            return(resultado);
        }
コード例 #10
0
        private List <PeliculasCines> MapearPeliculaCines(PeliculaCreacionDTO peliculaCreacionDTO, Pelicula pelicula)
        {
            var resultado = new List <PeliculasCines>();

            if (peliculaCreacionDTO.CinesIds == null)
            {
                return(resultado);
            }
            foreach (var id in peliculaCreacionDTO.CinesIds)
            {
                resultado.Add(new PeliculasCines()
                {
                    CineID = id
                });
            }
            return(resultado);
        }
コード例 #11
0
        public async Task <ActionResult> Post([FromForm] PeliculaCreacionDTO peliculaCreacionDTO)
        {
            var pelicula = mapper.Map <Pelicula>(peliculaCreacionDTO);

            if (peliculaCreacionDTO.Poster != null)
            {
                // Guardamos la foto en la nube y guardamos la url devuelta por el metodo en pelicula.Poster
                pelicula.Poster = await almacenadorArchivos.GuardarArchivo(contenedor, peliculaCreacionDTO.Poster);
            }

            EscribirOrdenActores(pelicula);

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

            return(NoContent());
        }
コード例 #12
0
        public async Task <ActionResult> Post([FromForm] PeliculaCreacionDTO peliculaCreacion)
        {
            Pelicula pelicula;

            pelicula = mapper.Map <Pelicula>(peliculaCreacion);

            if (peliculaCreacion.Poster != null)
            {
                pelicula.Poster = await almacenadorArchivos.GuardarArchivo(CONTENEDOR, peliculaCreacion.Poster);
            }

            OrdenActores(pelicula);

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

            return(NoContent());
        }
コード例 #13
0
        private List <PeliculasGeneros> MapearPeliculasGeneros(PeliculaCreacionDTO peliculaCreacionDTO, Pelicula pelicula)
        {
            List <PeliculasGeneros> resultado;

            resultado = new List <PeliculasGeneros>();
            if (peliculaCreacionDTO.GenerosIds == null)
            {
                return(resultado);
            }

            foreach (int id in peliculaCreacionDTO.GenerosIds)
            {
                resultado.Add(new PeliculasGeneros()
                {
                    GeneroId = id
                });
            }

            return(resultado);
        }