public async Task <IActionResult> Edit([Bind("LibroId,PerfilId,Puntaje,Comentario,Spoiler,Visible")] Perfil_Valora_Libro perfil_Valora_Libro)
        {
            if (perfil_Valora_Libro.Comentario == null)
            {
                ModelState.AddModelError("Comentario", "El comentario no puede estar vacío. Si no deseas comentar presiona el botón omitir.");
            }

            if (ModelState.IsValid)
            {
                try
                {
                    perfil_Valora_Libro.Visible = !perfil_Valora_Libro.Spoiler;
                    _context.Update(perfil_Valora_Libro);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!Perfil_Valora_LibroExists(perfil_Valora_Libro.PerfilId))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction("Details", "Libro", new { id = perfil_Valora_Libro.LibroId }));
            }

            return(View(perfil_Valora_Libro));
        }
        public IActionResult Omitir(int lid, int pid)
        {
            Perfil_Valora_Libro pvl = _context.Perfil_Valora_Libros
                                      .FirstOrDefault(c => c.LibroId == lid && c.PerfilId == pid);

            pvl.Comentario = null;
            _context.Perfil_Valora_Libros.Update(pvl);
            _context.SaveChanges();

            return(RedirectToAction("Details", "Libro", new { id = lid }));
        }
Example #3
0
        public async Task <IActionResult> DesmarcarSpoiler(int pid, int libroId, int rid)
        {
            Perfil_Valora_Libro p = await _context.Perfil_Valora_Libros
                                    .FirstOrDefaultAsync(c => c.LibroId == libroId && c.PerfilId == pid);

            p.Spoiler = false;
            p.Visible = !p.Spoiler;

            await _context.SaveChangesAsync();

            return(RedirectToAction("RechazarReporte", new { id = rid }));
        }
Example #4
0
        public async Task <IActionResult> MarcarSpoiler(int pid, int libroId)
        {
            Perfil_Valora_Libro p = await _context.Perfil_Valora_Libros
                                    .FirstOrDefaultAsync(c => c.LibroId == libroId && c.PerfilId == pid);

            p.Spoiler = true;
            p.Visible = !p.Spoiler;

            await _context.SaveChangesAsync();

            return(RedirectToAction("VerComentarios", new { id = libroId }));
        }
        // GET: Perfil_Valora_Libro/Edit/5
        public async Task <IActionResult> Edit(Perfil_Puntua_Libro ppl)
        {
            if (ppl == null)
            {
                return(NotFound());
            }
            Perfil_Valora_Libro pvl = await _context.Perfil_Valora_Libros
                                      .FirstOrDefaultAsync(c => c.LibroId == ppl.LibroId && c.PerfilId == ppl.PerfilId);

            pvl.Comentario = null;

            return(View(pvl));
        }
        public async Task <IActionResult> Create([Bind("LibroId,PerfilId,Puntaje,Comentario,Spoiler,Visible")] Perfil_Valora_Libro perfil_Valora_Libro)
        {
            if (ModelState.IsValid)
            {
                _context.Add(perfil_Valora_Libro);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            ViewData["LibroId"]  = new SelectList(_context.Libros, "Id", "Descripcion", perfil_Valora_Libro.LibroId);
            ViewData["PerfilId"] = new SelectList(_context.Perfiles, "Id", "Nombre", perfil_Valora_Libro.PerfilId);
            return(View(perfil_Valora_Libro));
        }
Example #7
0
        public async Task <IActionResult> DeleteConfirmed(int id, int perfilId)
        {
            Perfil_Valora_Libro p = await _context.Perfil_Valora_Libros
                                    .FirstOrDefaultAsync(c => c.LibroId == id && c.PerfilId == perfilId);

            List <Reportes> reportes = _context.Reportes.Where(r => r.LibroId == id && r.PerfilId == perfilId).ToList();

            _context.Reportes.RemoveRange(reportes);
            p.Comentario = null;
            _context.Perfil_Valora_Libros.Update(p);
            await _context.SaveChangesAsync();

            return(RedirectToAction(nameof(Index)));
        }
Example #8
0
        // GET: Reportes/Details/5
        public async Task <IActionResult> Details(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            var reportes = await _context.Reportes
                           .FirstOrDefaultAsync(m => m.Id == id);

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

            Perfil_Valora_Libro p = _context.Perfil_Valora_Libros
                                    .FirstOrDefault(c => c.LibroId == reportes.LibroId && c.PerfilId == reportes.PerfilId);

            if (p == null)
            {
                return(NotFound());
            }
            ViewBag.Libro = _context.Libros
                            .Include(l => l.Autor)
                            .Include(l => l.Editorial)
                            .Include(l => l.Genero)
                            .FirstOrDefault(c => c.Id == reportes.LibroId);     //Agrego el libro para mostrar info del mismo en el details de reporte

            var perfil = _context.Perfiles
                         .Include(u => u.Usuario)
                         .FirstOrDefault(l => l.Id == p.PerfilId);

            if (perfil.Usuario == null)
            {
                ViewBag.NombreUsuario = "El usuario ya no existe.";
            }
            else
            {
                ViewBag.NombreUsuario = perfil.Usuario.UserName;
            }

            ViewBag.IdReporte = id;
            ViewBag.Motivo    = reportes.Motivo;
            return(View(p));
        }
Example #9
0
        public async Task <IActionResult> DeleteComentario(int libroId, int perfilId)
        {
            Perfil_Valora_Libro p = await _context.Perfil_Valora_Libros
                                    .FirstOrDefaultAsync(c => c.LibroId == libroId && c.PerfilId == perfilId);

            //Borro tambien los reportes porque sino quedan y no puedo acceder mas
            List <Reportes> reportes = _context.Reportes
                                       .Where(r => r.LibroId == libroId && r.PerfilId == perfilId)
                                       .ToList();

            _context.Reportes.RemoveRange(reportes);

            p.Comentario = null;
            _context.Perfil_Valora_Libros.Update(p);
            await _context.SaveChangesAsync();

            return(RedirectToAction("VerComentarios", new { id = libroId }));
        }
Example #10
0
        public async Task <IActionResult> Calificar(int libroId, int value)
        {
            var bisectriz = _context.Perfiles.Include(c => c.Usuario)
                            .FirstOrDefault(l => l.Id == PerfilActual);

            Perfil_Puntua_Libro ppl = new Perfil_Puntua_Libro()
            {
                PerfilId = PerfilActual,
                LibroId  = libroId,
            };

            if (this.yaEstaCalificado(libroId)) //Si el libro ya estaba calificado lo actualiza por la nueva puntuacion
            {
                var puntuacion = _context.Perfil_Valora_Libros.FirstOrDefault(p => p.LibroId == libroId && p.PerfilId == PerfilActual);
                puntuacion.Puntaje = value;
                _context.Perfil_Valora_Libros.Update(puntuacion);
            }
            else
            {
                Perfil_Valora_Libro puntuacion = new Perfil_Valora_Libro
                {
                    PerfilId = PerfilActual,
                    LibroId  = libroId,
                    Puntaje  = value,
                    Spoiler  = false,
                    Visible  = true
                };
                _context.Perfil_Valora_Libros.Add(puntuacion);
            }
            await _context.SaveChangesAsync();

            if (!bisectriz.Usuario.Habilitado)
            {
                return(RedirectToAction("Details", new { id = ppl.LibroId }));
            }
            return(RedirectToAction("Edit", "Perfil_Valora_Libro", ppl));
        }