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));
        }
示例#2
0
        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);
        }
示例#3
0
 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>())));
        }