public ActionResult Registrar(int?id)
        {
            if (Session["usuario"] != null)
            {
                usuario usuarioSesion = (usuario)HttpContext.Session["usuario"];
                if (usuarioSesion.roles.FirstOrDefault().rol.Equals(Constantes.ADMINISTRADOR))
                {
                    if (id == null)
                    {
                        return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
                    }
                    profesores_temporal profesores_temporal = db.profesores_temporal.Find(id);
                    if (profesores_temporal == null)
                    {
                        return(HttpNotFound());
                    }
                    usuario usuario = new usuario();
                    usuario.nombre    = profesores_temporal.nombre;
                    usuario.apellidos = profesores_temporal.apellidos;
                    usuario.username  = profesores_temporal.username;
                    usuario.password  = profesores_temporal.password;
                    usuario.telefono  = profesores_temporal.telefono;
                    usuario.correo    = profesores_temporal.correo;

                    colegio colegio = db.colegios.Where(c => c.nombre.Equals(profesores_temporal.colegio)).FirstOrDefault();
                    if (colegio != null)
                    {
                        usuario.colegios.Add(colegio);
                    }

                    usuario.informacion_opcional = profesores_temporal.informacion_opcional;
                    usuario.fecha_primer_ingreso = DateTime.Today;
                    usuario.roles = db.roles.Where(r => r.rol.Equals(Constantes.PROFESOR)).ToList();

                    if (usuario.roles.FirstOrDefault().cursos.Count > 0)
                    {
                        foreach (curso curso in usuario.roles.FirstOrDefault().cursos)
                        {
                            usuario.cursos.Add(curso);
                        }
                    }

                    notificacione notificacion = new notificacione();
                    notificacion.telefono   = true;
                    notificacion.correo     = true;
                    notificacion.fecha_hora = DateTime.Now;
                    usuario.notificacione   = notificacion;
                    db.usuarios.Add(usuario);
                    db.profesores_temporal.Remove(profesores_temporal);
                    db.SaveChanges();
                    List <string> destinatarios = new List <string>();
                    destinatarios.Add(profesores_temporal.correo);
                    Utilitarios.EnviarCorreo(destinatarios, "PCD: Solicitud Aceptada",
                                             "Estimado " + usuario.nombre +
                                             "<br /><br />El proceso de registro de usuario en el sitio Plataforma de Contenidos Digitales ha concluido y su solicitud fue aceptada.<br/><br />Gracias." +
                                             "<br /><br />Le recordamos que:<br /> su usuario registrado es: " + usuario.username +
                                             "<br />Esperamos que los contenidos de la plataforma le sean útiles en sus labores."
                                             );
                    return(RedirectToAction("Index"));
                }
                else
                {
                    return(RedirectToAction("../"));
                }
            }
            return(RedirectToAction("../Account/Login/ReturnUrl=profesores_temporal"));
        }
Esempio n. 2
0
        public ActionResult Login(LoginViewModel model, string returnUrl)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }
            var     pass = Utilitarios.EncodePassword(model.Email + model.Password);
            usuario user = db.usuarios.Where(u => u.username.Equals(model.Email) && u.password.Equals(pass)).FirstOrDefault();

            if (user != null)
            {
                //FormsAuthentication.SetAuthCookie(user.nombre + " " + user.apellidos, model.RememberMe);
                if (user.bloqueado == true)
                {
                    ModelState.Remove("Password");
                    ModelState.AddModelError("", "Este usuario esta bloqueado");
                    return(View());
                }
                if (user.logueado == true)
                {
                    int dia  = user.log_visitas.Last().fecha_hora.DayOfYear;
                    int hora = user.log_visitas.Last().fecha_hora.Hour;
                    //int minuto = hora*60 + user.log_visitas.Last().fecha_hora.Minute;

                    if (dia == DateTime.Now.DayOfYear && (DateTime.Now.Hour - hora <= 1))
                    {
                        ModelState.Remove("Password");
                        ModelState.AddModelError("", "Esta cuenta ya se encuentra en uso");
                        return(View());
                    }
                }
                bool isVigente = new usuariosController().VerificarVigencia(user.id);
                if (isVigente)
                {
                    user.cursos = user.cursos.OrderBy(c => c.curso1).ToList();
                    this.SignInUser(user.nombre + " " + user.apellidos, user.id, model.RememberMe);
                    System.Web.HttpContext.Current.Session["usuario"] = user;
                    db.usuarios.Find(user.id).logueado = true;
                    log_visitas log = new log_visitas();
                    log.usuario    = user;
                    log.id_usuario = user.id;
                    log.fecha_hora = DateTime.Now;
                    db.log_visitas.Add(log);
                    db.SaveChanges();
                    FormsAuthentication.SetAuthCookie(user.nombre + " " + user.apellidos, model.RememberMe);

                    if (returnUrl == null || returnUrl == "")
                    {
                        return(Redirect("../"));
                    }
                    else
                    {
                        if (Url.IsLocalUrl(returnUrl))
                        {
                            return(Redirect(returnUrl));
                        }
                        else
                        {
                            return(Redirect(returnUrl));
                        }
                    }
                }
                else
                {
                    ModelState.Remove("Password");
                    ModelState.AddModelError("", "Se acabo el tiempo de tu subscripción, contacta al equipo de PIMAS para renovar tu subscripcion");
                    return(View());
                }
            }
            ModelState.Remove("Password");
            ModelState.AddModelError("", "Los datos insertados son incorrectos");
            return(View());
        }