public ActionResult Opiniao(int?id, bool selectedOpinion) { var userID = Convert.ToInt32(User.Identity.GetUserId()); Comentario comentario = db.Comentarios.Find(id); if (comentario == null) { return(HttpNotFound()); } Opiniao opiniao = comentario.Opiniaos.FirstOrDefault(c => c.userID == userID); if (opiniao == null) { opiniao = new Opiniao() { userID = userID, commentID = comentario.CommentID, Opiniao1 = selectedOpinion }; db.Opiniaos.Add(opiniao); } else //update { opiniao.Opiniao1 = selectedOpinion; db.Entry(opiniao).State = EntityState.Modified; } db.SaveChanges(); ViewBag.Likes = comentario.Opiniaos.Where(o => o.Opiniao1 == true).Count() - comentario.Opiniaos.Where(o => o.Opiniao1 == false).Count(); return(PartialView("_PostPartial", comentario.Post)); }
protected override void OnPrepareTransactScope(DiscordarNoticiaCommand command) { Usuario usuario = new Usuario(command.Usuario.Id); Noticia noticia = new Noticia(command.Noticia.Id); Opiniao opiniao = new Opiniao(usuario, noticia); opiniao.Discordar(); _opiniaoRepository.Save(opiniao); }
public ActionResult PutOpinion(int idReceita, [FromForm] bool?favorito, [FromForm] short?rating, [FromForm] bool?blacklisted) { try { var sidut = ControllerContext.HttpContext.User.Identity.Name; int idUt = Int32.Parse(sidut); var user = _context.Utilizador.Find(idUt); bool receitaExists = _context.Receita.Where(r => r.Id == idReceita).Any(); if (user == null || !receitaExists) { return(NotFound("Receita não existe")); } Opiniao o = _context.Opiniao.Find(idReceita, idUt); bool exists = true; if (o == null) { exists = false; o = new Opiniao(); o.Utilizadorid = idUt; o.Receitaid = idReceita; o.Favorito = false; o.Blacklist = false; } if (favorito.HasValue) { o.Favorito = (bool)favorito; } if (rating.HasValue) { o.Rating = rating; } if (blacklisted.HasValue) { o.Blacklist = (bool)blacklisted; } if (exists) { _context.Opiniao.Update(o); } else { _context.Opiniao.Add(o); } _context.SaveChanges(); return(Ok()); } catch (Exception e) { System.Diagnostics.Debug.Print(e.ToString()); return(StatusCode(StatusCodes.Status500InternalServerError)); } }
public object ListarUsuariosMaisParecidosComUsuarioLogado(ListarUsuariosMaisParecidosComUsuarioLogadoQueryFilter filter, int usuarioLogadoId) { DateTime seteDiasAtras = DateTime.Now.AddDays(-7); ListarUsuariosMaisParecidosComUsuarioLogadoQueryModel usuarioQueryModel = null; Usuario usuarioAlias = null; Arquivo fotoAlias = null; Opiniao opiniaoAlias = null; var noticias = _session.QueryOver <Opiniao>() .Where(x => x.Usuario.Id == usuarioLogadoId) .And(x => x.Tipo == TipoOpiniao.Concordo) .Select(x => x.Noticia.Id).List <int>(); var query = _session.QueryOver <Opiniao>(() => opiniaoAlias) .JoinAlias(() => opiniaoAlias.Usuario, () => usuarioAlias) .Left.JoinAlias(() => usuarioAlias.Foto, () => fotoAlias) .Where(x => x.Tipo == TipoOpiniao.Concordo) .And(x => usuarioAlias.Id != usuarioLogadoId) .AndRestrictionOn(x => x.Noticia.Id).IsInG(noticias) .SelectList(l => l .Select(x => usuarioAlias.Id).WithAlias(() => usuarioQueryModel.Id) .Select(x => usuarioAlias.Username).WithAlias(() => usuarioQueryModel.Username) .Select(x => usuarioAlias.Nome).WithAlias(() => usuarioQueryModel.Nome) .Select(x => usuarioAlias.Email).WithAlias(() => usuarioQueryModel.Email) .Select(x => fotoAlias.Nome).WithAlias(() => usuarioQueryModel.FotoNome) .SelectCount(x => x.Id).WithAlias(() => usuarioQueryModel.Quantidade) .SelectGroup(x => usuarioAlias.Id)) .OrderByAlias(() => usuarioQueryModel.Quantidade).Desc .TransformUsing(Transformers.AliasToBean <ListarUsuariosMaisParecidosComUsuarioLogadoQueryModel>()); var pagedObject = new PagedObject <Opiniao>(); pagedObject.Paginate(query, 10, filter.Pagina); return(pagedObject.PageResult(Mapper.Map <IList <ListarUsuariosMaisParecidosComUsuarioLogadoQueryModel> >(pagedObject.ResultQuery.List <ListarUsuariosMaisParecidosComUsuarioLogadoQueryModel>()))); }