Ejemplo n.º 1
0
        public async Task <ActionResult> Put(int peliculaId, int reviewId, [FromBody] ReviewCreactionDTO reviewCreactionDTO)
        {
            var reviewDB = await context.Reviews.FirstOrDefaultAsync(x => x.Id == reviewId);

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

            var usuarioId = HttpContext.User.Claims.FirstOrDefault(x => x.Type == ClaimTypes.NameIdentifier).Value;

            if (reviewDB.UsuarioId != usuarioId)
            {
                return(Forbid());
            }

            reviewDB = mapper.Map(reviewCreactionDTO, reviewDB);

            await context.SaveChangesAsync();

            return(NoContent());
        }
Ejemplo n.º 2
0
        public async Task <ActionResult> Post(int peliculaId, [FromBody] ReviewCreactionDTO reviewCreactionDTO)
        {
            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 pelicula"));
            }

            var review = mapper.Map <Review>(reviewCreactionDTO);

            review.PeliculaId = peliculaId;
            review.UsuarioId  = usuarioId;

            context.Add(review);
            await context.SaveChangesAsync();

            return(NoContent());
        }