Ejemplo n.º 1
0
        public ActionResult SolicitarRestaurar()
        {
            List<Mensaje> lstMensajes = (((List<Mensaje>)TempData["mensajes"]) == null) ? new List<Mensaje>() : (List<Mensaje>)TempData["mensajes"];
            string usuario_login = Request["email"];

            if (!string.IsNullOrWhiteSpace(usuario_login))
            {
                try
                {
                    List<Login> listado = db.Login.ToList().Where(m => m.UsuarioLogin == usuario_login).ToList();

                    if (listado != null)
                    {
                        if (listado.Count > 0)
                        {
                            //Elimino solicitudes previas
                            List<Restaurar_Pass> listado_ant = db.Restaurar_Pass.ToList().Where(m => m.correo_usuario == usuario_login).ToList();
                            if(listado_ant != null)
                            {
                                foreach(Restaurar_Pass obj in listado_ant)
                                {
                                    db.Restaurar_Pass.Remove(obj);
                                }                            
                            }
                            //Genero una nueva clave
                            string clave = GetRandomString(15);
                            //Genero una clave para el correo
                            string clave_email = CifradoDatos.cifrarRSA(usuario_login);
                            string clave_code = CifradoDatos.cifrarRSA(clave);

                            db.Restaurar_Pass.Add(new Restaurar_Pass { correo_usuario = usuario_login, clave = clave });
                            db.SaveChanges();
                            //Creo corrreo con clave para enviar al usuario
                            StringBuilder bodyMail = new StringBuilder();
                            bodyMail.AppendLine("Se ha activado la restauración de contraseña para tu cuenta de usuario, " + usuario_login + "</br>");
                            string informacionHost = serverInfoCurrent();
                            bodyMail.AppendLine("Dirijase al siguiente enlace para continuar con el proceso. " + "<a href=\"" + informacionHost + "/Home/ValidarRestaurar?tokenCorreo=" + clave_email + "&tokenClave=" + clave_code + "\"> Restaurar contraseña perfil. </a>" + "</br>");
                            bodyMail.AppendLine("Fecha:" + DateTime.Now.ToString() + "</br>");
                            string subject = "Notificación modificación contraseña.";
                            Mail mail = new Mail(usuario_login, subject, bodyMail);

                            if (mail.sendMail().Result)
                            {
                                lstMensajes.Add(new Mensaje { tipo = "Notificacion", titulo = "Notificación", cuerpo = "Proceso finalizado exitosamente, verifique su correo electronico." });
                            }
                            else
                            {
                                lstMensajes.Add(new Mensaje { tipo = "Error", titulo = "Error", cuerpo = "Se produjo un error mientras se enviaba el correo. Correo invalido" });
                            }
                        }
                        else
                        {
                            lstMensajes.Add(new Mensaje { tipo = "Error", titulo = "Error", cuerpo = "El usuario no existe o se encuentra bloqueado." });
                        }
                    }
                    else
                    {
                        lstMensajes.Add(new Mensaje{tipo="Error", titulo="Error", cuerpo="El usuario no existe o se encuentra bloqueado."});
                    }
                }
                catch (Exception ex)
                {
                    SystemLog log = new SystemLog();
                    log.ErrorLog(ex.Message);
                    lstMensajes.Add(new Mensaje { tipo = "Error", titulo = "Error", cuerpo = "Se ha producido un error mientras se generaba el formulario" });
                    TempData["mensajes"] = lstMensajes;
                }
            }
            else
            {
                lstMensajes.Add(new Mensaje { tipo = "Error", titulo = "Error", cuerpo = "El usuario no existe o se encuentra bloqueado." });
            }
            TempData["mensajes"] = lstMensajes;
            return RedirectToAction("Index", "Home");
        }
Ejemplo n.º 2
0
        public ActionResult UpdateRestorePassword(string nueva_contrasena)
        {
            List<Mensaje> lstMensajes = (((List<Mensaje>)TempData["mensajes"]) == null) ? new List<Mensaje>() : (List<Mensaje>)TempData["mensajes"];
            try
            {
                string correo_logueo = (string)TempData["usuario_restore"];
                if (!string.IsNullOrWhiteSpace(correo_logueo))
                {
                    List<Login> listado = db.Login.ToList().Where(m => m.UsuarioLogin == correo_logueo).ToList();
                    //Si el correo_electronico y la contrasena son validas subo a session la institucion
                    if (listado != null)
                    {
                        if (listado.Count > 0)
                        {
                            listado[0].PasswordLogin= CifradoDatos.cifrarPassword(nueva_contrasena);
                            db.SaveChanges();

                            //Obtengo ip y localizacion desde donde se realizo la modificacion
                            object[] infoLogin = getExternalIp();
                            //Envio email confirmacion para habilitar el perfil
                            StringBuilder bodyMail = new StringBuilder();
                            bodyMail.AppendLine("La contraseña para tu cuenta de usuario, " + listado[0].UsuarioLogin + " se ha cambiado recientemente." + "</br>");
                            bodyMail.AppendLine("Si la has cambiado tú, no necesitas realizar ninguna otra acción." + "</br>");
                            bodyMail.AppendLine("Si no la has cambiado tú, es posible que tu cuenta haya sido vulnerada. Para poder volver a iniciar sesión en tu cuenta, deberás restablecer la contraseña" + "</br>");
                            if (infoLogin != null)
                            {
                                bodyMail.AppendLine("Informacion Adicional:" + "</br>");
                                bodyMail.AppendLine("Pais:" + infoLogin[2].ToString() + "</br>");
                                bodyMail.AppendLine("Departamento:" + infoLogin[4].ToString() + "</br>");
                                bodyMail.AppendLine("Ciudad:" + infoLogin[5].ToString() + "</br>");
                                bodyMail.AppendLine("Ip Address:" + infoLogin[0].ToString() + "</br>");
                            }
                            bodyMail.AppendLine("Fecha:" + DateTime.Now.ToString() + "</br>");
                            string subject = "Notificación modificación contraseña.";
                            Mail mail = new Mail(correo_logueo, subject, bodyMail);

                            if (mail.sendMail().Result)
                            {
                                lstMensajes.Add(new Mensaje { tipo = "Notificacion", titulo = "Notificación", cuerpo = "Contraseña modificada exitosamente." });
                                TempData["mensajes"] = lstMensajes;
                                TempData.Remove("usuario_restore");
                            }
                            else
                            {
                                lstMensajes.Add(new Mensaje { tipo = "Error", titulo = "Error", cuerpo = "Se produjo un error mientras se enviaba el correo. Correo invalido" });
                            }
                        }
                        else
                        {
                            lstMensajes.Add(new Mensaje { tipo = "Error", titulo = "Error", cuerpo = "No posee los permisos suficientes para realizar esta operación." });
                            TempData["mensajes"] = lstMensajes;
                        }
                    }
                    else
                    {
                        lstMensajes.Add(new Mensaje { tipo = "Error", titulo = "Error", cuerpo = "No posee los permisos suficientes para realizar esta operación." });
                        TempData["mensajes"] = lstMensajes;
                    }
                }
                else
                {
                    lstMensajes.Add(new Mensaje { tipo = "Error", titulo = "Error", cuerpo = "No posee los permisos suficientes para realizar esta operación." });
                    TempData["mensajes"] = lstMensajes;
                }

            }
            catch (Exception ex)
            {
                SystemLog log = new SystemLog();
                log.ErrorLog(ex.Message);
                lstMensajes.Add(new Mensaje { tipo = "Error", titulo = "Error", cuerpo = "Se ha producido un error mientras se generaba el formulario" });
                TempData["mensajes"] = lstMensajes;
            }
            TempData["mensajes"] = lstMensajes;
            ViewBag.lstMensajes = lstMensajes;
            return RedirectToAction("Index", "Home");
        }
Ejemplo n.º 3
0
        public ActionResult Create([Bind(Include = "IdCita,NombrePac,Sexo,FechaNacimientoPac,EmailPac,MensajeCita,Imagen1,Imagen2,Imagen3,Imagen4,IdEspecialista,TelefonoPac")] Citas citas)
        {
            List<Mensaje> lstMensajes = (((List<Mensaje>)TempData["mensajes"]) == null) ? new List<Mensaje>() : (List<Mensaje>)TempData["mensajes"];

            HttpPostedFileBase imagen1 = (Request.Files.Count > 0) ? Request.Files[0] : null;
            HttpPostedFileBase imagen2 = (Request.Files.Count > 1) ? Request.Files[1] : null;
            HttpPostedFileBase imagen3 = (Request.Files.Count > 2) ? Request.Files[2] : null;
            HttpPostedFileBase imagen4 = (Request.Files.Count > 3) ? Request.Files[3] : null;
            List<ArchivoAdjunto> listado = new List<ArchivoAdjunto>();
            MemoryStream target1 = new MemoryStream();
            MemoryStream target2 = new MemoryStream();
            MemoryStream target3 = new MemoryStream();
            MemoryStream target4 = new MemoryStream();

            Especialistas especialista = db.Especialistas.Find(citas.IdEspecialista);
            if (especialista != null)
            {
                if (imagen1 != null)
                {
                    imagen1.InputStream.CopyTo(target1);

                    listado.Add(
                        new ArchivoAdjunto
                        {
                            archivo = target1,
                            tipo = imagen1.ContentType,
                            nombre = imagen1.FileName
                        }
                        );
                }
                if (imagen2 != null)
                {
                    imagen2.InputStream.CopyTo(target2);

                    listado.Add(new ArchivoAdjunto
                    {
                        archivo = target2,
                        tipo = imagen2.ContentType,
                        nombre = imagen2.FileName
                    }
                        );
                }
                if (imagen3 != null)
                {
                    imagen3.InputStream.CopyTo(target3);

                    listado.Add(new ArchivoAdjunto
                    {
                        archivo = target3,
                        tipo = imagen3.ContentType,
                        nombre = imagen3.FileName
                    }
                        );
                }
                if (imagen4 != null)
                {
                    imagen4.InputStream.CopyTo(target4);

                    listado.Add(new ArchivoAdjunto
                    {
                        archivo = target4,
                        tipo = imagen4.ContentType,
                        nombre = imagen4.FileName
                    }
                        );
                }
                
                DateTime fn=DateTime.Now;
                if(citas.FechaNacimientoPac != null)
                {
                fn=Convert.ToDateTime(citas.FechaNacimientoPac.ToString());   
                }

                int edad = DateTime.Now.Year - fn.Year;
                //Creo corrreo con clave para enviar al usuario
                StringBuilder bodyMail = new StringBuilder();
                bodyMail.AppendLine("<p><b>Nombre de paciente: </b>" + citas.NombrePac + "</p>");
                bodyMail.AppendLine("<p><b>Sexo: </b>" + citas.Sexo + "</p>");
                bodyMail.AppendLine("<p><b>Edad: </b>" + edad + "</p>");
                bodyMail.AppendLine("<p><b>Telefono: </b>" + citas.TelefonoPac + "</p>");
                bodyMail.AppendLine("<p><b>Email: </b>" + citas.EmailPac + "</p>");
                bodyMail.AppendLine("<p><b>Mensaje: </b>" + "</p>");
                bodyMail.AppendLine(citas.MensajeCita);

                string subject = "[Medenlinea] Solicitud de cita.";
                Mail mail = new Mail(especialista.EmailEsp, subject, bodyMail);

                if (mail.sendMailAttachments(listado).Result)
                {
                    if (ModelState.IsValid)
                    {
                        db.Citas.Add(citas);
                        db.SaveChanges();

                        lstMensajes.Add(new Mensaje { tipo = "Notificacion", titulo = "Notificacion", cuerpo = "Consulta registrada exitosamente." });
                        TempData["mensajes"] = lstMensajes;
                        return RedirectToAction("Index", "Especialista");
                    }
                }
                else
                {
                    lstMensajes.Add(new Mensaje { tipo = "Error", titulo = "Error", cuerpo = "Ocurrio un problema mientras se procesaba la solicitud" });
                    TempData["mensajes"] = lstMensajes;
                }
            }
            else
            {
                lstMensajes.Add(new Mensaje { tipo = "Error", titulo = "Error", cuerpo = "No se pudo encontrar el especialista solicitado" });
                TempData["mensajes"] = lstMensajes;
            }
            return RedirectToAction("Index", "Especialista");
        }