Esempio n. 1
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());
        }
Esempio n. 2
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());
        }
Esempio n. 3
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());
        }
        public async Task <ActionResult> Put(Pelicula pelicula)
        {
            var peliculaDB = await context.Peliculas.FirstOrDefaultAsync(x => x.Id == pelicula.Id);

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

            peliculaDB = mapper.Map(pelicula, peliculaDB);

            if (!string.IsNullOrWhiteSpace(pelicula.Poster))
            {
                var posterImagen = Convert.FromBase64String(pelicula.Poster);
                peliculaDB.Poster = await almacenadorDeArchivos.EditarArchivo(posterImagen,
                                                                              "jpg", "peliculas", peliculaDB.Poster);
            }

            await context.Database.ExecuteSqlInterpolatedAsync($"delete from GenerosPeliculas WHERE PeliculaId = {pelicula.Id}; delete from PeliculasActores where PeliculaId = {pelicula.Id}");

            if (pelicula.PeliculasActor != null)
            {
                for (int i = 0; i < pelicula.PeliculasActor.Count; i++)
                {
                    pelicula.PeliculasActor[i].Orden = i + 1;
                }
            }

            peliculaDB.PeliculasActor  = pelicula.PeliculasActor;
            peliculaDB.GenerosPelicula = pelicula.GenerosPelicula;

            await context.SaveChangesAsync();

            return(NoContent());
        }
Esempio n. 5
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> 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());
        }
Esempio n. 7
0
        //public async Task<ActionResult> Put(int id, [FromBody] ActorCreacionDTO actorCreacionDTO)
        public async Task <ActionResult> Put(int id, [FromForm] ActorCreacionDTO actorCreacionDTO)
        {
            //var entidad = mapper.Map<Actor>(actorCreacionDTO);
            //entidad.Id = id;
            //context.Entry(entidad).State = EntityState.Modified;

            var actorDB = await context.Actores.FirstOrDefaultAsync(x => x.Id == id);

            if (actorDB == null)
            {
                return(NotFound());
            }
            actorDB = mapper.Map(actorCreacionDTO, actorDB);

            if (actorCreacionDTO.Foto != null)
            {
                using (var memoryStream = new MemoryStream())
                {
                    await actorCreacionDTO.Foto.CopyToAsync(memoryStream);

                    var contenido = memoryStream.ToArray();
                    var extension = Path.GetExtension(actorCreacionDTO.Foto.FileName);
                    actorDB.Foto = await almacenadorArchivos.EditarArchivo(contenido, extension, contenedor, actorDB.Foto, actorCreacionDTO.Foto.ContentType);
                }
            }

            await context.SaveChangesAsync();

            return(NoContent());
        }
Esempio n. 8
0
        public async Task <ActionResult> Put(int id, [FromForm] ActorCreacionDTO actorCreacionDTO)
        {
            //var entidad = mapper.Map<Actor>(actorCreacionDTO);
            //entidad.Id = id;
            //context.Entry(entidad).State = EntityState.Modified;

            //Porque viene de forma hacemos esto otro para actualizar los datos
            var actorDB = await context.Actores.FirstOrDefaultAsync(x => x.Id == id);

            if (actorDB == 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
            actorDB = mapper.Map(actorCreacionDTO, actorDB);
            if (actorCreacionDTO.Foto != null)
            {
                using (var memoryStream = new MemoryStream())
                {
                    await actorCreacionDTO.Foto.CopyToAsync(memoryStream);

                    var contenido = memoryStream.ToArray();
                    var extension = Path.GetExtension(actorCreacionDTO.Foto.FileName);
                    actorDB.Foto = await almacenadorArchivos.EditarArchivo(contenido, extension, contenedor, actorDB.Foto, actorCreacionDTO.Foto.ContentType);
                }
            }

            await context.SaveChangesAsync();

            return(NoContent());
        }
Esempio n. 9
0
        public async Task <ActionResult> PutAsync(int id, [FromForm] ActorCreateDto actorUpdateDto)
        {
            var actorUpdateDb = await context.Actores.FindAsync(id);

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

            mapper.Map(actorUpdateDto, actorUpdateDb);

            if (actorUpdateDto.Foto != null)
            {
                using (var memoryStream = new MemoryStream())
                {
                    await actorUpdateDto.Foto.CopyToAsync(memoryStream);

                    var contenido = memoryStream.ToArray();
                    var extension = Path.GetExtension(actorUpdateDto.Foto.FileName);
                    actorUpdateDb.Foto = await almacenadorArchivos.EditarArchivo(contenido, extension, contenedor, actorUpdateDb.Foto, actorUpdateDto.Foto.ContentType);
                }
            }

            await context.SaveChangesAsync();

            return(NoContent());
        }
Esempio n. 10
0
        public async Task <ActionResult> Put(int id, [FromForm] ActorCreacionDTO actorCreacionDTO)
        {
            var actorDb = await _applicationDbContext.Actores.FirstOrDefaultAsync(x => x.Id == id);

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

            actorDb = _mapper.Map(actorCreacionDTO, actorDb);

            if (actorCreacionDTO.Foto != null)
            {
                using (var memoryStream = new MemoryStream())
                {
                    await actorCreacionDTO.Foto.CopyToAsync(memoryStream);

                    var contenido = memoryStream.ToArray();
                    var extension = Path.GetExtension(actorCreacionDTO.Foto.FileName);

                    actorDb.Foto = await _almacenadorArchivos.EditarArchivo(contenido,
                                                                            extension,
                                                                            _contenedor,
                                                                            actorDb.Foto,
                                                                            actorCreacionDTO.Foto.ContentType);
                }
            }



            await _applicationDbContext.SaveChangesAsync();

            return(NoContent());
        }
Esempio n. 11
0
        public async Task <ActionResult> Put(int id, [FromForm] SerieCreacionDTO serieCreacionDTO)
        {
            var serie = await context.Series
                        .Include(x => x.SeriesActores)
                        .Include(x => x.SeriesGeneros)
                        .FirstOrDefaultAsync(x => x.Id == id);

            if (serie is null)
            {
                return(NotFound());
            }

            serie = mapper.Map(serieCreacionDTO, serie);

            if (serieCreacionDTO.Imagen != null)
            {
                serie.Imagen = await almacenadorArchivos.EditarArchivo(contenedor, serieCreacionDTO.Imagen, serie.Imagen);
            }

            EscribirOrdenActores(serie);

            await context.SaveChangesAsync();

            return(NoContent());
        }
Esempio n. 12
0
        public async Task <ActionResult> Post([FromForm] AddingUserFoto addingUserFoto)
        {
            var     img          = Request.Form.Files.First();
            var     token        = Request.Headers["Authorization"].ToString();
            var     user         = new JwtSecurityTokenHandler().ReadJwtToken(token);
            var     userId       = new Guid(user.Claims.ToArray()[0].Value.ToString());
            AppUser userWithFoto = await _userManager.Users.SingleOrDefaultAsync(m => m.Id == userId);

            if (userWithFoto.Image == null)
            {
                using (var memoryStream = new MemoryStream())
                {
                    await img.CopyToAsync(memoryStream);

                    var content   = memoryStream.ToArray();
                    var extension = Path.GetExtension(img.FileName);
                    userWithFoto.Image = await _almacenadorArchivos.GuardarArchivo(content, extension,
                                                                                   container, img.ContentType);
                }
                await _context.SaveChangesAsync();

                if (userWithFoto.Image != null)
                {
                    userWithFoto.PasswordHash = null;
                    return(Ok(userWithFoto));
                }
                return(BadRequest());
            }
            else
            {
                using (var memoryStream = new MemoryStream())
                {
                    await img.CopyToAsync(memoryStream);

                    var content   = memoryStream.ToArray();
                    var extension = Path.GetExtension(img.FileName);
                    userWithFoto.Image = await _almacenadorArchivos.EditarArchivo(content, extension,
                                                                                  container, userWithFoto.Image, img.ContentType);
                }
                await _context.SaveChangesAsync();

                if (userWithFoto.Image != null)
                {
                    userWithFoto.PasswordHash = null;
                    return(Ok(userWithFoto));
                }
                return(BadRequest());
            }
        }
Esempio n. 13
0
        public async Task <ActionResult> Put(int id, [FromForm] ActorCreacionDTO actorCreacionDTO)
        {
            var actor = await context.Actores.FirstOrDefaultAsync(x => x.Id == id);

            if (actor == null)
            {
                return(NotFound());
            }
            actor = mapper.Map(actorCreacionDTO, actor);
            if (actorCreacionDTO.Foto != null)
            {
                actor.Foto = await almacenadorArchivos.EditarArchivo(contenedor, actorCreacionDTO.Foto, actor.Foto);
            }
            await context.SaveChangesAsync();

            return(NoContent());
        }
Esempio n. 14
0
        public async Task <ActionResult> Put(Persona persona)
        {
            var personaDB = await context.Personas.FirstOrDefaultAsync(x => x.Id == persona.Id);

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

            personaDB = mapper.Map(persona, personaDB);
            if (!string.IsNullOrWhiteSpace(persona.Foto))
            {
                var fotoImagen = Convert.FromBase64String(persona.Foto);
                personaDB.Foto = await almacenadorArchivos.EditarArchivo(fotoImagen, "jpg", "personas", personaDB.Foto);
            }

            await context.SaveChangesAsync();

            return(NoContent());
        }
        public async Task Put(Persona persona)
        {
            var personaDB = await context.Personas.FirstOrDefaultAsync(x => x.Id == persona.Id);

            if (personaDB == null)
            {
                throw new ApplicationException($"Persona {persona.Id} no encontrada");
            }

            personaDB = mapper.Map(persona, personaDB);

            if (!string.IsNullOrWhiteSpace(persona.Foto))
            {
                var fotoImagen = Convert.FromBase64String(persona.Foto);
                personaDB.Foto = await almacenadorDeArchivos.EditarArchivo(fotoImagen,
                                                                           "jpg", "personas", personaDB.Foto);
            }

            await context.SaveChangesAsync();
        }
Esempio n. 16
0
        public async Task <ActionResult> Put(int id, [FromForm] ActorCreacionDTO actorCreacionDTO)
        {
            /* Esto se comenta, porque el usuario no siempre va a actualizar la foto,
             * sino que podria actualizar otros campos
             *
             *
             * var entidad = _mapper.Map<Actor>(actorCreacionDTO);
             * entidad.Id = id;
             *
             * //modificar ese objeto
             * _context.Entry(entidad).State = EntityState.Modified;
             */


            var actorDB = _context.Actores.FirstOrDefault(x => x.Id == id);

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

            //vamos a mapear lo que nos mando el usuario con lo que tenemos en la base
            //entity framework, solo va a guardar los campos que son distintos
            // los campos que son distintos en el mapeo entre los del objeto de la base
            //y el dto correspondiente van a ser actualizados
            actorDB = _mapper.Map(actorCreacionDTO, actorDB);

            using (var memoryStream = new MemoryStream())
            {
                await actorCreacionDTO.Foto.CopyToAsync(memoryStream);

                var contenido = memoryStream.ToArray();
                var extension = Path.GetExtension(actorCreacionDTO.Foto.FileName);
                actorDB.Foto = await almacenadorArchivos.EditarArchivo(contenido, extension, contenedor,
                                                                       actorDB.Foto, actorCreacionDTO.Foto.ContentType);
            }

            await _context.SaveChangesAsync();

            return(NoContent());
        }
Esempio n. 17
0
        public async Task <ActionResult> Put(int id, [FromForm] ActorCreacionDTO actorModificar)
        {
            Actor actorEncontrado;

            actorEncontrado = await context.Actores.FirstOrDefaultAsync(x => x.Id == id);

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

            if (actorModificar.Foto != null)
            {
                actorEncontrado.Foto = await almacenadorArchivos.EditarArchivo(CONTENEDOR, actorModificar.Foto, actorEncontrado.Foto);
            }

            actorEncontrado = mapper.Map(actorModificar, actorEncontrado);
            await context.SaveChangesAsync();

            return(NoContent());
        }
Esempio n. 18
0
        public async Task <ActionResult> Put(int id, [FromBody] EmpresaCreacionDTO empresaActualizacion)
        {
            var empresaDb = await context.Empresas.FirstOrDefaultAsync(x => x.Id == id);

            if (empresaDb == null)
            {
                return(NotFound());
            }
            empresaDb = mapper.Map(empresaActualizacion, empresaDb);
            if (empresaActualizacion.Logo != null)
            {
                using (var memoryStream = new MemoryStream()){
                    await empresaActualizacion.Logo.CopyToAsync(memoryStream);

                    var contenido = memoryStream.ToArray();
                    var extension = Path.GetExtension(empresaActualizacion.Logo.FileName);
                    empresaDb.Logo = await almacenadorArchivos.EditarArchivo(contenido, extension, contenedor, empresaDb.Logo, empresaActualizacion.Logo.ContentType);
                }
            }
            await context.SaveChangesAsync();

            return(NoContent());
        }