public static string Mensagem(Log_participapao log, bool isPopup)
        {
            var str = "";

            if (isPopup)
            {
                str = Mensagem(log);
            }
            else
            {
                var imagem      = "";
                var httpContext = new HttpContextWrapper(HttpContext.Current);
                var url         = new UrlHelper(new RequestContext(httpContext, CurrentRoute(httpContext)));


                if (!string.IsNullOrEmpty(log.Pessoa.Avatar))
                {
                    var urlPessoa = url.Content("~/Images/Uploads/Avatar/" + log.Pessoa.Avatar);

                    imagem = "<a href='\\Usuario\\Perfil?Id=" + log.Pessoa.Id + "'>" +
                             "<img class='img-circle' src='" + urlPessoa + "' width='32' height='32'>" +
                             "</a>";
                }

                str = "<div class='row'><div class='col-md-2'>" + imagem + "</div>" +
                      "<div class='col-md-9'>" + Mensagem(log) + "</div></div>";
            }

            return(str);
        }
        public static string Mensagem(Log_participapao log)
        {
            var str = "";

            var nome = log.Pessoa.Nome;

            if (nome.Length > 5)
            {
                nome = nome.Substring(0, 5) + "...";
            }

            var httpContext = new HttpContextWrapper(HttpContext.Current);
            var url         = new UrlHelper(new RequestContext(httpContext, CurrentRoute(httpContext)));

            var icon = "";

            if (log.Tipo.Contains("Descur"))
            {
                icon = "<i class='glyphicon glyphicon-thumbs-down'></i> ";
            }
            else if (log.Tipo.Contains("Curt"))
            {
                icon = "<i class='glyphicon glyphicon-thumbs-up'></i> ";
            }
            else if (log.Tipo.ToLower().Contains("soluc"))
            {
                icon = "<i class='glyphicon glyphicon-check'></i> ";
            }
            else if (log.Tipo.Contains("Acess"))
            {
                icon = "<i class='glyphicon glyphicon-share-alt'></i> ";
            }
            else if (log.Tipo.Contains("Coment"))
            {
                icon = "<i class='glyphicon glyphicon-comment'></i> ";
            }

            if ((log.Tipo == "Descurtiu") || (log.Tipo == "Acessou") || (log.Tipo == "Curtiu") || (log.Tipo == "Solucionou"))
            {
                str = icon +
                      "<a href='" + url.Action("Perfil", "Usuario", new { Id = log.Pessoa.Id }) + "'>" + nome + "</a> " + log.Tipo +
                      " a " +
                      "<a href='" + url.Action("AcessarReclamacao", "Ouvidoria", new { Id = log.Reclamacao.Id }) + "'>Reclamação</a>";
            }
            else
            {
                str = icon +
                      "<a href='" + url.Action("Perfil", "Usuario", new { Id = log.Pessoa.Id }) + "'>" + nome + "</a> " + log.Tipo +
                      " na " +
                      "<a href='" + url.Action("AcessarReclamacao", "Ouvidoria", new { Id = log.Reclamacao.Id }) + "'>Reclamação</a>";
            }

            return(str);
        }
Exemple #3
0
        public ActionResult AddComentarioAjax(Comentario comentario, HttpPostedFileBase file, string tipo)
        {
            var model = ConnectionDbClass.DataModel;

            var reclamacao = model.Reclamacaos.FirstOrDefault(f => f.Id == comentario.Id_reclamacao);

            var usuario = (Usuario)Session["Usuario"];

            if (file != null)
            {
                if (file.ContentType.Contains("image"))
                {
                    if (file.ContentLength > 2097152)
                    {
                        ViewBag.Erro = "O Arquivo de imagem ultrapassa o limite de 2Mb.";
                        return(View("AcessarReclamacao", reclamacao));
                    }
                }
                else if (file.ContentType.Contains("video"))
                {
                    if (file.ContentLength > 26214400)
                    {
                        ViewBag.Erro = "O Arquivo anexo ultrapassa o limite de 25Mb.";
                        return(View("AcessarReclamacao", reclamacao));
                    }
                }
                else
                {
                    ViewBag.Erro = "Somente é permitda a inclusão de fotos ou vídeos.";
                    return(View("AcessarReclamacao", reclamacao));
                }

                if (file.ContentLength > 0)
                {
                    var fileName = "";
                    if (file.ContentType.Contains("image"))
                    {
                        if (string.IsNullOrEmpty(fileName))
                        {
                            fileName = "rec_solucao_" + usuario.Pessoa.Id + "_" + DateTime.Now.ToString("yyyyMd_hhmmss") + ".jpg";
                        }
                    }
                    else
                    {
                        string extensao = Path.GetExtension(file.FileName);

                        fileName = "rec_solucao_" + usuario.Pessoa.Id + "_" + DateTime.Now.ToString("yyyyMd_hhmmss") + extensao;
                    }

                    var path = Path.Combine(Server.MapPath("~/Images/Uploads/Queixa"), fileName);

                    comentario.Anexo = fileName;

                    file.SaveAs(path);
                }
            }

            var logParticipacao = new Log_participapao()
            {
                Id_pessoa     = comentario.Id_pessoa,//usuario.Id_pessoa,
                Id_reclamacao = comentario.Id_reclamacao,
                Datahora      = DateTime.Now,
                Acesso        = false,
                Tipo          = usuario.Pessoa.Nome + " Comentou sua reclamação"
            };

            comentario.Likes          = 0;
            comentario.Deslikes       = 0;
            comentario.Id_pessoa      = usuario.Id_pessoa;
            comentario.DataComentario = DateTime.Now;
            comentario.IsSolucao      = false;
            comentario.IsSolucao      = comentario.IsSolucaoFinal ?? false;
            comentario.IsSolucaoFinal = comentario.IsSolucaoFinal ?? false;

            if (comentario.IsSolucaoFinal.Value)
            {
                logParticipacao.Tipo     = "Solucionou";
                reclamacao.IsSolucionado = true;
            }

            model.Add(comentario);
            model.Add(logParticipacao);

            if (model.HasChanges)
            {
                model.SaveChanges();
            }

            if (comentario.IsSolucaoFinal.Value)
            {
                PontuacaoUtils.Pontuar(usuario.Pessoa, PontuacaoEnum.SolucioncarReclamacao);
            }
            else
            {
                PontuacaoUtils.Pontuar(usuario.Pessoa, PontuacaoEnum.ComentarReclamacao);
            }

            if (tipo == "http")
            {
                return(View("AcessarReclamacao", reclamacao));
            }
            else
            {
                return(PartialView("_VerComentariosView", reclamacao));
            }
        }
Exemple #4
0
        public string _AtualizarLikesDeslikesComentario(int id, bool tipo)
        {
            var model = ConnectionDbClass.DataModel;

            var comentario = model.Comentarios.FirstOrDefault(f => f.Id == id);

            var usuario = (Usuario)Session["Usuario"];

            if (comentario != null)
            {
                Log_participapao log = null;

                if (tipo)
                {
                    comentario.Likes = comentario.Likes != null ? comentario.Likes + 1 : 1;

                    log = new Log_participapao()
                    {
                        Acesso        = false,
                        Datahora      = DateTime.Now,
                        Id_pessoa     = comentario.Pessoa.Id,
                        Id_reclamacao = comentario.Id_reclamacao,
                        Tipo          = usuario.Pessoa.Nome + " Curtiu seu Comentário",
                        Id_comentario = id,
                        Id_curtidor   = usuario.Id_pessoa
                    };
                }
                else
                {
                    comentario.Deslikes = comentario.Deslikes != null ? comentario.Deslikes + 1 : 1;
                    log = new Log_participapao()
                    {
                        Acesso        = false,
                        Datahora      = DateTime.Now,
                        Id_pessoa     = comentario.Pessoa.Id,
                        Id_reclamacao = comentario.Id_reclamacao,
                        Tipo          = usuario.Pessoa.Nome + " Descurtiu Seu Comentário",
                        Id_comentario = id,
                        Id_curtidor   = usuario.Id_pessoa
                    };
                }

                model.Add(log);

                if (model.HasChanges)
                {
                    model.SaveChanges();
                }

                if (tipo)
                {
                    PontuacaoUtils.Pontuar(usuario.Pessoa, PontuacaoEnum.CurtirComentario);
                    PontuacaoUtils.Pontuar(comentario.Pessoa, PontuacaoEnum.ComentarioCurtido);

                    return("<span class='glyphicon glyphicon-thumbs-up'></span><span>" + (comentario.Likes ?? 0) + "</span>");
                }
                else
                {
                    PontuacaoUtils.Pontuar(usuario.Pessoa, PontuacaoEnum.DescurtirComentario);
                    PontuacaoUtils.Pontuar(comentario.Pessoa, PontuacaoEnum.ComentarioDescurtido);

                    return("<span class='glyphicon glyphicon-thumbs-down'></span><span>" + (comentario.Deslikes ?? 0) + "</span>");
                }
            }

            return("");
        }
Exemple #5
0
        public ActionResult GravarReclamacao(Reclamacao reclamacao, HttpPostedFileBase file)
        {
            var usuario = (Usuario)Session["Usuario"];

            var model = ConnectionDbClass.DataModel;

            if (file != null)
            {
                if (file.ContentType.Contains("image"))
                {
                    if (file.ContentLength > 2097152)
                    {
                        ViewBag.Erro = "O Arquivo de imagem ultrapassa o limite de 2Mb.";
                        return(View("IncluirReclamacao"));
                    }
                }
                else if (file.ContentType.Contains("video"))
                {
                    if (file.ContentLength > 26214400)
                    {
                        ViewBag.Erro = "O Arquivo anexo ultrapassa o limite de 25Mb.";
                        return(View("IncluirReclamacao"));
                    }
                }
                else
                {
                    ViewBag.Erro = "Somente é permitda a inclusão de fotos ou vídeos.";
                    return(View("IncluirReclamacao"));
                }

                if (file.ContentLength > 0)
                {
                    var fileName = "";
                    if (file.ContentType.Contains("image"))
                    {
                        if (string.IsNullOrEmpty(fileName))
                        {
                            fileName = "rec_" + usuario.Pessoa.Id + "_" + DateTime.Now.ToString("yyyyMd_hhmmss") + ".jpg";
                        }
                    }
                    else
                    {
                        string extensao = Path.GetExtension(file.FileName);

                        fileName = "rec_" + usuario.Pessoa.Id + "_" + DateTime.Now.ToString("yyyyMd_hhmmss") + extensao;
                    }

                    var path = Path.Combine(Server.MapPath("~/Images/Uploads/Queixa"), fileName);

                    reclamacao.Anexo = fileName;

                    file.SaveAs(path);

                    PontuacaoUtils.Pontuar(usuario.Pessoa, PontuacaoEnum.ReclamacaoEmMidia);
                }
            }

            if (string.IsNullOrEmpty(reclamacao.Descricao) || string.IsNullOrEmpty(reclamacao.Titulo))
            {
                ViewBag.Erro = "Não é permitida a Inclusão de Reclamações sem Descrição ou Título.";
                return(View("IncluirReclamacao"));
            }

            reclamacao.Id_pessoa     = usuario.Pessoa.Id;
            reclamacao.DataHora      = DateTime.Now;
            reclamacao.IsSolucionado = false;
            reclamacao.IsAtivo       = true;

            if (reclamacao.Id == 0 || reclamacao.Id == null)
            {
                model.Add(reclamacao);
            }
            else
            {
                var rec = model.Reclamacaos.FirstOrDefault(f => f.Id == reclamacao.Id);

                rec.Departamento   = reclamacao.Departamento;
                rec.Id_instituicao = reclamacao.Id_instituicao;
                rec.Descricao      = reclamacao.Descricao;
                rec.Titulo         = reclamacao.Titulo;
                rec.Anexo          = reclamacao.Anexo;
            }

            if (reclamacao.Id == 0 || reclamacao.Id == null)
            {
                var log = new Log_participapao()
                {
                    Datahora  = DateTime.Now,
                    Acesso    = false,
                    Id_pessoa = reclamacao.Id_pessoa,
                    Tipo      = "Criou uma Reclamação"
                };

                reclamacao.Log_participapaos.Add(log);
                log.Reclamacao = reclamacao;

                model.Add(log);
            }

            if (model.HasChanges)
            {
                model.SaveChanges();
            }

            PontuacaoUtils.Pontuar(usuario.Pessoa, PontuacaoEnum.CadastroReclamacao);

            return(RedirectToAction("AcessarReclamacao", "Ouvidoria", new { Id = reclamacao.Id }));
        }
Exemple #6
0
        public PartialViewResult _MarcarDesmarcarMelhorReposta(int id, int idRec, bool marcar)
        {
            var model = ConnectionDbClass.DataModel;

            var rec = model.Reclamacaos.FirstOrDefault(f => f.Id == idRec);

            Pessoa pessoa = null;

            if (rec != null)
            {
                var comentario = rec.Comentarios.FirstOrDefault(f => f.Id == id);

                if (comentario != null)
                {
                    comentario.IsSolucao = marcar;
                }

                pessoa = comentario.Pessoa;

                Log_participapao log = null;
                if (marcar)
                {
                    log = new Log_participapao()
                    {
                        Acesso        = false,
                        Datahora      = DateTime.Now,
                        Id_pessoa     = comentario.Id_pessoa,
                        Id_reclamacao = comentario.Id_reclamacao,
                        Tipo          = "Macou como solução"
                    };
                }
                else
                {
                    log = new Log_participapao()
                    {
                        Acesso        = false,
                        Datahora      = DateTime.Now,
                        Id_pessoa     = comentario.Id_pessoa,
                        Id_reclamacao = comentario.Id_reclamacao,
                        Tipo          = "Desmacou como solução"
                    };
                }

                model.Add(log);
            }

            if (model.HasChanges)
            {
                model.SaveChanges();
            }


            if (pessoa != null)
            {
                if (marcar)
                {
                    PontuacaoUtils.Pontuar(pessoa, PontuacaoEnum.MarcarSolucaoComentario);
                }
                else
                {
                    PontuacaoUtils.Pontuar(pessoa, PontuacaoEnum.DesmarcarSolucaoComentario);
                }
            }

            return(PartialView("_VerComentariosView", rec));
        }