Example #1
0
        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 }));
        }
Example #2
0
        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);
 }
Example #4
0
        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);
        }
Example #9
0
        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));
        }
Example #10
0
        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"));
        }
Example #11
0
        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 })));
        }
Example #12
0
        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"));
        }