public ActionResult DenunciarUsuario(VMPerfil vmp) { string[] user = User.Identity.Name.Split('|'); string email = user[0]; var usu = db.Usuario.Where(t => t.Email == email).ToList().FirstOrDefault(); Denuncias den = new Denuncias(); den.UsuarioDenuncianteId = usu.Id; den.UsuarioDenunciadoId = vmp.Id; den.DataCadastro = DateTime.Now.ToString(); den.Status = "Esperando análise"; if (vmp.MotivoDenuncia == null) { TempData["MSG"] = "error|Selecione uma Opção!"; return(RedirectToAction("VisitarPerfil", new { id = vmp.Id })); } den.Motivo = vmp.MotivoDenuncia; den.Observacao = vmp.Observacao; db.Denuncias.Add(den); db.SaveChanges(); TempData["MSG"] = "success|Agradeçemos sua contribuição!"; return(RedirectToAction("VisitarPerfil", new { id = vmp.Id })); }
public ActionResult VisitarPerfil(int id) { Usuario usu = db.Usuario.Find(id); string[] user = User.Identity.Name.Split('|'); string email = user[0]; var usuAtual = db.Usuario.Where(t => t.Email == email).ToList().FirstOrDefault(); if (usuAtual.Id == usu.Id) { return(RedirectToAction("MeuPerfil")); } if (usuAtual.Adm == true) { return(RedirectToAction("MeuPerfil", new { id })); } VMPerfil vmp = new VMPerfil(); vmp.Id = usu.Id; vmp.Biografia = usu.Biografia; vmp.Nome = usu.Nome; vmp.Email = usu.Email; vmp.Foto = usu.Foto; vmp.UsuarioTags = db.UsuarioTag.Where(x => x.UsuarioId == usu.Id).ToList(); vmp.IntegrantesProjetos = db.IntegrantesProjeto.Where(x => x.UsuarioID == usu.Id && x.Ativo == true && x.Projeto.Punicao < DateTime.Now).ToList(); vmp.ProjetosSalvos = db.ProjetosSalvos.Where(x => x.UsuarioId == usu.Id).ToList(); return(View(vmp)); }
public bool validarSiExisteFaltanteDeDatos(VMPerfil vMPerfil) { if (vMPerfil.Username == null | vMPerfil.Nombre == null | vMPerfil.Foto == null | vMPerfil.Email == null | vMPerfil.Apellido == null) { return(false); } return(true); }
public ActionResult PenalizarUsuario(VMPerfil vmp) { Usuario usu = db.Usuario.Find(vmp.Id); int result = DateTime.Compare(usu.Punicao, DateTime.Now); if (result < 0) { usu.Punicao = DateTime.Now.AddDays(vmp.Punicao); } else { usu.Punicao = usu.Punicao.AddDays(vmp.Punicao); } db.Usuario.AddOrUpdate(usu); db.SaveChanges(); string[] user = User.Identity.Name.Split('|'); string email = user[0]; var adm = db.Usuario.Where(t => t.Email == email).ToList().FirstOrDefault(); var denuncias = db.Denuncias.Where(x => x.UsuarioDenunciadoId == usu.Id && x.Status != "Concluído").ToList(); if (denuncias.Count() > 0) { foreach (var item in denuncias) { Denuncias den = db.Denuncias.Find(item.Id); den.AdmId = adm.Id; den.Punicao = vmp.Punicao; den.MotivoPunicao = vmp.MotivoPunicao; den.DataPunicao = DateTime.Now; den.Status = "Concluído"; db.Denuncias.AddOrUpdate(den); db.SaveChanges(); } } if (vmp.Punicao > 0) { TempData["MSG"] = Funcoes.EnviarEmail(usu.Email, "MOVE - Sua Conta foi Penalizada!", "Sua Conta foi Desativada por " + vmp.Punicao + " dias, motivo: " + vmp.MotivoPunicao); } else if (vmp.MotivoPunicao != null) { TempData["MSG"] = Funcoes.EnviarEmail(usu.Email, "MOVE - Comunicado sobre sua conta...", vmp.MotivoPunicao); } TempData["MSG"] = "success|Penalidade Aplicada!"; return(RedirectToAction("Index")); }
public ActionResult Perfil(VMPerfil perfil) { try { if (!ModelState.IsValid) { int idSessionUsuario = int.Parse(Session["UserId"].ToString()); Usuarios usuarioSession = servicioUsuario.obtenerUsuarioPorID(idSessionUsuario); VMPerfil vmPerfil = servicioUsuario.asignoDatosAVMPerfil(usuarioSession); bool validoPerfil = servicioUsuario.validarSiExisteFaltanteDeDatos(vmPerfil); if (!validoPerfil) { ViewData.Add("mensajeError", "Debe completar todos los campos"); } return(View(vmPerfil)); } if (Request.Files.Count > 0 && Request.Files[0].ContentLength > 0) { //TODO: Agregar validacion para confirmar que el archivo es una imagen - UsuarioController //creo un nombre significativo en este caso apellidonombre pero solo un caracter del nombre, ejemplo BatistutaG int idUsuario = int.Parse(Session["UserId"].ToString()); string nombreSignificativo = idUsuario + " " + Session["Email"]; //Guardar Imagen string pathRelativoImagen = ImagenesUtil.Guardar(Request.Files[0], nombreSignificativo); perfil.Foto = pathRelativoImagen; } int idSession = int.Parse(Session["UserId"].ToString()); //Asigno datos obtenidos del formulario a usuario Usuarios usuarioPerfil = servicioUsuario.asignoDatosAUsuarioDelPerfil(perfil, idSession); bool actualizado = servicioUsuario.completoDatosDeMiPerfil(usuarioPerfil); if (!actualizado) { ViewData.Add("mensajeError", "Error: No se ha podido guardar los datos, intentelo nuevamente"); } else { ViewData.Add("mensajeCorrecto", "¡Datos guardados correctamente!"); } } catch (Exception ex) { ModelState.AddModelError("Error: ", ex.Message); } //Pasar a la vista los datos del usuario Usuarios usuario = servicioUsuario.obtenerUsuarioLogueado(int.Parse(Session["UserId"].ToString())); VMPerfil vMPerfil = servicioUsuario.asignoDatosAVMPerfil(usuario); return(View("Perfil", vMPerfil)); }
public VMPerfil asignoDatosAVMPerfil(Usuarios usuarios) { VMPerfil vMPerfil = new VMPerfil() { Apellido = usuarios.Apellido, Email = usuarios.Email, Foto = usuarios.Foto, Nombre = usuarios.Nombre, Username = usuarios.UserName }; return(vMPerfil); }
public ActionResult Perfil() { int idSession = int.Parse(Session["UserId"].ToString()); Usuarios usuarioSession = servicioUsuario.obtenerUsuarioPorID(idSession); VMPerfil vMPerfil = servicioUsuario.asignoDatosAVMPerfil(usuarioSession); bool validoPerfil = servicioUsuario.validarSiExisteFaltanteDeDatos(vMPerfil); if (!validoPerfil) { ViewData.Add("mensajeInfo", "Debe completar sus datos para poder Crear Necesidades"); } return(View(vMPerfil)); }
public Usuarios asignoDatosAUsuarioDelPerfil(VMPerfil perfil, int idSession) { Usuarios usuario = new Usuarios(); if (perfil.Nombre != null) { usuario.Nombre = perfil.Nombre; } if (perfil.Apellido != null) { usuario.Apellido = perfil.Apellido; } usuario.Foto = perfil.Foto; if (perfil.Nombre != null & perfil.Apellido != null) { usuario.UserName = perfil.Nombre + "." + perfil.Apellido; } usuario.Email = perfil.Email; usuario.IdUsuario = idSession; return(usuario); }
public ActionResult MeuPerfil(int?id, int?idDenuncia) { VMPerfil vmp = new VMPerfil(); Usuario usu = new Usuario(); if (id == null) { string[] user = User.Identity.Name.Split('|'); string email = user[0]; if (user[0] == null || user[0] == "") { return(RedirectToAction("Principal")); } usu = db.Usuario.Where(t => t.Email == email).ToList().FirstOrDefault(); } else { usu = db.Usuario.Find(id); vmp.Adm = true; if (idDenuncia != null) { vmp.IdDenuncia = (int)idDenuncia; } } vmp.Id = usu.Id; vmp.Biografia = usu.Biografia; vmp.Nome = usu.Nome; vmp.Email = usu.Email; vmp.Foto = usu.Foto; vmp.Ativo = usu.Ativo; vmp.UsuarioTags = db.UsuarioTag.Where(x => x.UsuarioId == usu.Id).ToList(); vmp.IntegrantesProjetos = db.IntegrantesProjeto.Where(x => x.UsuarioID == usu.Id && x.Ativo == true).ToList(); vmp.ProjetosSalvos = db.ProjetosSalvos.Where(x => x.UsuarioId == usu.Id).ToList(); return(View(vmp)); }
public ActionResult CriarProjeto(VMPerfil vmp) { if (ModelState.IsValid) { Projeto pro = new Projeto(); pro.Logo = "projeto.svg"; pro.Nome = vmp.NomeProjeto; pro.Descricao = vmp.Descricao; pro.Ativo = true; pro.DataCadastro = DateTime.Now; db.Projeto.AddOrUpdate(pro); db.SaveChanges(); IntegrantesProjeto integrante = new IntegrantesProjeto(); integrante.Adm = true; integrante.Ativo = true; integrante.ProjetoId = pro.Id; integrante.UsuarioID = vmp.Id; db.IntegrantesProjeto.AddOrUpdate(integrante); db.SaveChanges(); ProjetoTags tag = new ProjetoTags(); tag.ProjetoId = pro.Id; tag.TagId = 1; db.ProjetoTags.AddOrUpdate(tag); db.SaveChanges(); return(RedirectToAction("MeuProjeto", new { id = pro.Id })); } TempData["MSG"] = "error|Preencha os dois campos para criar um projeto"; return(RedirectToAction("MeuPerfil")); }
public JsonResult AdicionarTag(VMPerfil vmp) { var usu = db.Usuario.Find(vmp.Id); var tag = db.Tag.Where(t => t.Nome == vmp.PesquisaTag).ToList().FirstOrDefault(); foreach (var item in db.UsuarioTag) { if (item.TagId == tag.Id && item.UsuarioId == usu.Id) { return(Json("n")); } } var usutag = new UsuarioTag(); usutag.TagId = tag.Id; usutag.UsuarioId = usu.Id; db.UsuarioTag.Add(usutag); db.SaveChanges(); return(Json(db.UsuarioTag.Where(x => x.UsuarioId == usu.Id).ToList().Select(x => new { x.Tag.Nome }))); }
public ActionResult DesativarUsuario(VMPerfil vmp) { string[] user = User.Identity.Name.Split('|'); string email = user[0]; var adm = db.Usuario.Where(t => t.Email == email).ToList().FirstOrDefault(); Usuario usu = db.Usuario.Find(vmp.Id); usu.Ativo = false; usu.Inativo = "Adm"; db.Usuario.AddOrUpdate(usu); db.SaveChanges(); var integrante = db.IntegrantesProjeto.Where(x => x.UsuarioID == usu.Id && x.Ativo == true).ToList(); foreach (var item in integrante) { Projeto pro = db.Projeto.Find(item.ProjetoId); IntegrantesProjeto inte = db.IntegrantesProjeto.Find(item.Id); int quantAdm = db.IntegrantesProjeto.Where(x => x.Adm == true && x.ProjetoId == item.ProjetoId).Count(); int quant = db.IntegrantesProjeto.Where(x => x.ProjetoId == item.ProjetoId && x.Ativo == true).Count(); if (item.Adm == true) { if (quant == 1) { inte.Ativo = false; inte.Inativo = "Usuário"; db.IntegrantesProjeto.AddOrUpdate(inte); db.SaveChanges(); pro.Ativo = false; pro.Inativo = "Usuário"; db.Projeto.AddOrUpdate(pro); db.SaveChanges(); } else if (quantAdm > 1) { inte.Ativo = false; inte.Inativo = "Usuário"; inte.Adm = false; db.IntegrantesProjeto.AddOrUpdate(inte); db.SaveChanges(); } else { IntegrantesProjeto NovoAdm = db.IntegrantesProjeto.Where(x => x.ProjetoId == item.ProjetoId && x.UsuarioID != usu.Id).FirstOrDefault(); NovoAdm.Adm = true; db.IntegrantesProjeto.AddOrUpdate(NovoAdm); db.SaveChanges(); inte.Ativo = false; inte.Inativo = "Usuário"; inte.Adm = false; db.IntegrantesProjeto.AddOrUpdate(inte); db.SaveChanges(); } } else { inte.Ativo = false; inte.Inativo = "Usuário"; db.IntegrantesProjeto.AddOrUpdate(inte); db.SaveChanges(); } } TempData["MSG"] = Funcoes.EnviarEmail(usu.Email, "MOVE - Sua Conta foi Desativada!", vmp.MotivoPunicao); var denuncias = db.Denuncias.Where(x => x.UsuarioDenunciadoId == usu.Id && x.Status != "Concluído").ToList(); if (denuncias.Count() > 0) { foreach (var item in denuncias) { Denuncias den = db.Denuncias.Find(item.Id); den.AdmId = adm.Id; den.Punicao = 0; den.MotivoPunicao = vmp.MotivoPunicao; den.DataPunicao = DateTime.Now; den.Status = "Concluído"; den.Desativado = true; db.Denuncias.AddOrUpdate(den); db.SaveChanges(); } } TempData["MSG"] = "success|Conta Desativada!"; return(RedirectToAction("Index")); }