Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 3
0
        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());
        }
Ejemplo n.º 4
0
        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));
        }