public JsonResult Curtir(string tipo, int id, bool curtida) { var usuario = Usuario.Load(CurrentUser.Data.SubjectId); int sucesso = 0; int countCurtida = 0; int countNaoCurtida = 0; if (tipo == "r") { var obj = ComunidadeRespostaCurtida.CurtidaByUsuario(id, usuario.Id); if (obj == null) { var objCurtida = new ComunidadeRespostaCurtida() { ComunidadeRespostaId = id, Data = DateTime.Now, Curtida = curtida, UsuarioId = usuario.Id }; objCurtida.Save(); sucesso = 1; } else { if (obj.Curtida != curtida) { obj.Curtida = curtida; obj.Data = DateTime.Now; obj.Save(); sucesso = 1; } else { obj.Delete(); sucesso = 0; } } countCurtida = ComunidadeService.CountCurtidaResposta(id, true); countNaoCurtida = ComunidadeService.CountCurtidaResposta(id, false); } else if (tipo == "c") { var obj = ComunidadeComentarioCurtida.CurtidaByUsuario(id, usuario.Id); if (obj == null) { var objCurtida = new ComunidadeComentarioCurtida() { ComunidadeComentarioId = id, Data = DateTime.Now, Curtida = curtida, UsuarioId = usuario.Id }; objCurtida.Save(); sucesso = 1; } else { if (obj.Curtida != curtida) { obj.Curtida = curtida; obj.Data = DateTime.Now; obj.Save(); sucesso = 1; } else { obj.Delete(); sucesso = 0; } } countCurtida = ComunidadeService.CountCurtidaComentario(id, true); countNaoCurtida = ComunidadeService.CountCurtidaComentario(id, false); } return(Json(new { Sucesso = sucesso, Tipo = tipo, Id = id, Curtida = curtida, CountCurtida = countCurtida, CountNaoCurtida = countNaoCurtida, })); }
public ActionResult TopicosRespostas(string slugtopico, string slugpergunta) { Usuario usuario = new Usuario(); if (CurrentUser.Data != null) { usuario = Usuario.Load(CurrentUser.Data.SubjectId); } var objTopico = ComunidadeService.GetComunidadeTopicoBySlug(slugtopico); var objPergunta = ComunidadeService.GetComunidadePerguntaBySlug(slugpergunta); var lstResposta = new List <Respostas>(); foreach (var resposta in ComunidadeService.GetAllRespostasByPerguntaAndStatus(objPergunta.Id, StatusComunidade.Publicada.Id, 0)) { Respostas objResposta = new Respostas { Id = resposta.Id, Resposta = resposta.Resposta, Usuario = resposta.Usuario.Nome, IsEspecialista = resposta.Usuario.IsEspecialista, Data = resposta.Data, UserCurtida = usuario.Id > 0 ? ComunidadeService.RespostaUserCurtida(usuario.Id, resposta.Id, true) : false, CountCurtida = ComunidadeService.CountCurtidaResposta(resposta.Id, true), UserNaoCurtida = usuario.Id > 0 ? ComunidadeService.RespostaUserCurtida(usuario.Id, resposta.Id, false) : false, CountNaoCurtida = ComunidadeService.CountCurtidaResposta(resposta.Id, false) }; var lstComentario = new List <Comentarios>(); foreach (var comentario in ComunidadeService.GetAllComentariosByRespostaAndStatus(resposta.Id, StatusComunidade.Publicada.Id, 0)) { Comentarios objComentario = new Comentarios { Id = comentario.Id, Comentario = comentario.Comentario, Usuario = comentario.Usuario.Nome, IsEspecialista = comentario.Usuario.IsEspecialista, Data = comentario.Data, UserCurtida = usuario.Id > 0 ? ComunidadeService.ComentarioUserCurtida(usuario.Id, comentario.Id, true) : false, CountCurtida = ComunidadeService.CountCurtidaComentario(comentario.Id, true), UserNaoCurtida = usuario.Id > 0 ? ComunidadeService.ComentarioUserCurtida(usuario.Id, comentario.Id, false) : false, CountNaoCurtida = ComunidadeService.CountCurtidaComentario(comentario.Id, false), }; lstComentario.Add(objComentario); } objResposta.Comentarios = lstComentario; lstResposta.Add(objResposta); } var model = new ComunidadeTopicoRespostaViewModel { /* base model defaults */ Title = $"{objTopico.Titulo} - Comunidades Virtuais Negócios da Terra", Description = "", Robots = "index, follow", Canonical = $"{Constants.UrlWeb}/comunidades-virtuais/{slugtopico}/{slugpergunta}", Pergunta = new Perguntas { Id = objPergunta.Id, Topico = objTopico.Titulo, Pergunta = objPergunta.Pergunta, Descricao = objPergunta.Descricao, Data = objPergunta.Data, Usuario = objPergunta.Usuario.Nome, Slug = slugtopico, QtdResposta = ComunidadeService.CountRepostaByPergunta(objPergunta.Id) }, ComunidadeRespostas = lstResposta, ComunidadeEspecialistas = ComunidadeService.GetEspecialistasByTopico(objTopico.Id).ToList(), ComunidadeVideos = ComunidadeService.GetVideosByTopico(objTopico.Id).ToList() }; //Set viewbag's ViewBag.ActiveNav = "Negócios da Terra"; ViewBag.Editorial = Service.Models.Editorial.Load(EditorialEnum.NegociosDaTerra.GetHashCode()); ViewBag.ExibirLogo = true; ViewBag.LinkActiveNav = "/negocios-da-terra"; return(View(model)); }