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()); }
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)); }
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); }
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)); }