public PartialViewResult AddUsuarioAjax(UsuarioAdapter adapter) { var p = (Pessoa)Session["CadastroPessoa"]; var model = ConnectionDbClass.DataModel; var usuario = adapter.ConvertToUsuario(); usuario.Gamify = true; usuario.Pessoa = p; p.Usuarios.Add(usuario); ConnectionDbClass.DataModel.Add(p); if (model.HasChanges) { model.SaveChanges(); } Session["CadastroPessoa"] = null; Session.Remove("CadastroPessoa"); ViewData["Titulo"] = p.Nome; ViewData["Msg"] = "Seu Usuário foi criado com sucesso!"; PontuacaoUtils.Pontuar(usuario.Pessoa, PontuacaoEnum.CadastroUsuario); return(PartialView("_MensagemAlerta")); }
public string _VerificarNivel() { if (!TipoAmbienteCtrl.ControlarGamificacao) { return(""); } var model = ConnectionDbClass.DataModel; Usuario usuario = null; if (Session["NivelUsuarioAtual"] == null) { usuario = (Usuario)Session["Usuario"]; if (usuario != null) { var nivel = model.Pessoa_nivel_pontos.First(f => f.Id_pessoa == usuario.Id_pessoa); Session["NivelUsuarioAtual"] = nivel.Nivel; } } if (Session["Usuario"] != null) { var nivel = (int?)Session["NivelUsuarioAtual"]; usuario = (Usuario)Session["Usuario"]; ConnectionDbClass.DataModel.Refresh(RefreshMode.OverwriteChangesFromStore, ConnectionDbClass.DataModel.Pessoas); ConnectionDbClass.DataModel.Refresh(RefreshMode.OverwriteChangesFromStore, ConnectionDbClass.DataModel.Pessoa_nivel_pontos); if (PontuacaoUtils.AvancarNivel(usuario.Pessoa)) { var nivelAtual = model.Pessoa_nivel_pontos.First(f => f.Id_pessoa == usuario.Id_pessoa); nivelAtual.Nivel++; if (model.HasChanges) { model.SaveChanges(); } var proxNivel = PontuacaoUtils.PontosProximoNivel(usuario.Pessoa); var difPontos = proxNivel - nivelAtual.Pontos; var str = "<h2>Parabéns " + usuario.Pessoa.Nome + "</h2><br>" + "<p>Você avanço do nível " + nivel.Value + " para o nível " + nivelAtual.Nivel + " com " + nivelAtual.Pontos + "</p>" + "<p>Para o o nível " + (nivelAtual.Nivel) + " você irá precisar de " + difPontos + " pontos!</p>" + "<p><strong>BOA SORTE!</strong></p>"; return(str); } } return(""); }
public PartialViewResult _DesafiosPessoa(int IdPessoa) { var pessoa = ConnectionDbClass.DataModel.Pessoas.FirstOrDefault(f => f.Id == IdPessoa); if (pessoa == null) { return(PartialView("Error")); } if (Session["Usuario"] != null) { var usuario = (Usuario)Session["Usuario"]; if (pessoa.Id == usuario.Pessoa.Id) { PontuacaoUtils.CalcularDesafios(usuario.Pessoa); } } return(PartialView("_DesafiosPessoa", pessoa)); }
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)); } }
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(""); }
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 })); }
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)); }