Ejemplo n.º 1
0
        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));
        }