Exemplo n.º 1
0
        public async Task <ActionResult> PutAsync(int id, [FromForm] PeliculaCreateDto peliculaUpdateDto)
        {
            var peliculaUpdateDb = await context.Peliculas
                                   .Include(x => x.PeliculasActores)
                                   .Include(x => x.PeliculasGeneros)
                                   .FirstOrDefaultAsync(x => x.Id == id);

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

            mapper.Map(peliculaUpdateDto, peliculaUpdateDb);

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

                    var contenido = memoryStream.ToArray();
                    var extension = Path.GetExtension(peliculaUpdateDto.Poster.FileName);
                    peliculaUpdateDb.Poster = await almacenadorArchivos.EditarArchivo(contenido, extension, contenedor, peliculaUpdateDb.Poster, peliculaUpdateDto.Poster.ContentType);
                }
            }

            AsignarOrdenActores(peliculaUpdateDb);

            await context.SaveChangesAsync();

            return(NoContent());
        }
Exemplo n.º 2
0
        public async Task <IActionResult> PostAsync([FromForm] PeliculaCreateDto peliculaCreateDto)
        {
            var peliculaCreateDb = mapper.Map <Pelicula>(peliculaCreateDto);

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

                    var contenido = memoryStream.ToArray();
                    var extension = Path.GetExtension(peliculaCreateDto.Poster.FileName);
                    peliculaCreateDb.Poster = await almacenadorArchivos.GuardarArchivo(contenido, extension, contenedor, peliculaCreateDto.Poster.ContentType);
                }
            }

            AsignarOrdenActores(peliculaCreateDb);

            context.Peliculas.Add(peliculaCreateDb);

            await context.SaveChangesAsync();

            var peliculaDto = mapper.Map <PeliculaDto>(peliculaCreateDb);

            return(new CreatedAtRouteResult("ObtenerPelicula", new { id = peliculaDto.Id }, peliculaDto));
        }
        public IActionResult CrearPelicula([FromForm] PeliculaCreateDto peliculaCreateDto)
        {
            if (peliculaCreateDto == null)
            {
                return(BadRequest(ModelState));
            }

            if (_pelRepo.ExistePelicula(peliculaCreateDto.Nombre))
            {
                ModelState.AddModelError("", "La película ya existe");
                return(StatusCode(404, ModelState));
            }

            /*Subida de archivos*/

            var    archivo       = peliculaCreateDto.Foto;
            string rutaPrincipal = _hostingEnvironment.WebRootPath;
            var    archivos      = HttpContext.Request.Form.Files;

            if (archivo.Length > 0)
            {
                //Nueva imágen
                var subidas    = Path.Combine(rutaPrincipal, @"fotos");
                var nombreFoto = Guid.NewGuid().ToString();
                var extension  = Path.GetExtension(archivos[0].FileName);

                using (var fileStream = new FileStream(Path.Combine(subidas, nombreFoto + extension), FileMode.Create))
                {
                    archivos[0].CopyTo(fileStream);
                }

                peliculaCreateDto.RutaImagen = @"\fotos\" + nombreFoto + extension;
            }

            var pelicula = _mapper.Map <Pelicula>(peliculaCreateDto);

            if (!_pelRepo.CrearPelicula(pelicula))
            {
                ModelState.AddModelError("", $"Algo salio mal guardando el registro {pelicula.Nombre}");
                return(StatusCode(500, ModelState));
            }

            //return Ok();

            //Retorna el último registro insertado.
            return(CreatedAtRoute("GetPelicula", new { peliculaId = pelicula.Id }, pelicula));
        }
Exemplo n.º 4
0
        private List <PeliculasGeneros> MapPeliculasGeneros(PeliculaCreateDto peliculaCreateDto, Pelicula pelicula)
        {
            var resultado = new List <PeliculasGeneros>();

            if (peliculaCreateDto.GenerosId == null)
            {
                return(resultado);
            }

            foreach (var id in peliculaCreateDto.GenerosId)
            {
                resultado.Add(new PeliculasGeneros()
                {
                    GeneroId = id
                });
            }

            return(resultado);
        }
Exemplo n.º 5
0
        private List <PeliculasActores> MapPeliculasActores(PeliculaCreateDto peliculaCreateDto, Pelicula pelicula)
        {
            var resultado = new List <PeliculasActores>();

            if (peliculaCreateDto.Actores == null)
            {
                return(resultado);
            }

            foreach (var actor in peliculaCreateDto.Actores)
            {
                resultado.Add(new PeliculasActores()
                {
                    ActorId = actor.ActorId, Personaje = actor.Personaje
                });
            }

            return(resultado);
        }
        public IActionResult CrearPelicula([FromForm] PeliculaCreateDto peliculaDTO)
        {
            if (peliculaDTO == null)
            {
                return(NotFound());
            }
            if (_pelRepo.ExistePelicula(peliculaDTO.Nombre))
            {
                ModelState.AddModelError("", $"La pelicula ya existe {peliculaDTO.Nombre}");
                return(StatusCode(404, ModelState));
            }

            //Subir Archivo

            var    archivo       = peliculaDTO.Foto;
            string rutaPrincipal = _hostingEnvironment.WebRootPath;
            var    archivos      = HttpContext.Request.Form.Files;

            if (archivo.Length > 0)
            {
                //Nueva Imagen
                var nombreFoto = Guid.NewGuid().ToString();
                var subidas    = Path.Combine(rutaPrincipal, @"fotos");
                var extension  = Path.GetExtension(archivos[0].FileName);

                using (var fileStreams = new FileStream(Path.Combine(subidas, nombreFoto + extension), FileMode.Create))
                {
                    archivos[0].CopyTo(fileStreams);
                }
                peliculaDTO.RutaImagen = @"\fotos\" + nombreFoto + extension;
            }

            var pelicula = _mapper.Map <Pelicula>(peliculaDTO);

            if (!_pelRepo.CrearPelicula(pelicula))
            {
                ModelState.AddModelError("", $"Algo salió mal creando la Pelicula {pelicula.Nombre}");
                return(StatusCode(500, ModelState));
            }

            return(CreatedAtRoute("GetPelicula", new { peliculaId = pelicula.Id }, pelicula));
        }