public async Task <ActionResult> Post([FromForm] PeliculaCreacionDTO peliculaCreacionDTO) { var pelicula = mapper.Map <Pelicula>(peliculaCreacionDTO); 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)); }
protected async Task <ActionResult> Post <TCreacion, TEntidad, TLectura> (TCreacion creacionDTO, string nombreRuta) where TEntidad : class, IId { var entidad = mapper.Map <TEntidad>(creacionDTO); context.Add(entidad); await context.SaveChangesAsync(); var dtoLectura = mapper.Map <TLectura>(entidad); return(new CreatedAtRouteResult(nombreRuta, new { id = entidad.Id }, dtoLectura)); }
public async Task <ActionResult> Post(int peliculaId, [FromBody] ReviewCreacionDTO reviewCreacionDTO) { var usuarioId = HttpContext.User.Claims.FirstOrDefault(x => x.Type == ClaimTypes.NameIdentifier).Value; var reviewExiste = await context.Reviews .AnyAsync(x => x.PeliculaId == peliculaId && x.UsuarioId == usuarioId); if (reviewExiste) { return(BadRequest("El usuario ya ha escrito un review de esta película")); } var review = mapper.Map <Review>(reviewCreacionDTO); review.PeliculaId = peliculaId; review.UsuarioId = usuarioId; context.Add(review); await context.SaveChangesAsync(); return(NoContent()); }
public async Task <ActionResult> Post([FromForm] ActorCreacionDTO actorCreacionDTO) { var entidad = mapper.Map <Actor>(actorCreacionDTO); 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); entidad.Foto = await almacenadorArchivos.GuardarArchivo(contenido, extension, contenedor, actorCreacionDTO.Foto.ContentType); } } context.Add(entidad); await context.SaveChangesAsync(); var actorDTO = mapper.Map <ActorDTO>(entidad); return(new CreatedAtRouteResult("obtenerActor", new { id = actorDTO.Id }, actorDTO)); }