Exemplo n.º 1
0
        public ActionResult Index()
        {
            ViewBag.Message = "Bienvenido nuevamente";
            string correoinstitucional = System.Configuration.ConfigurationManager.AppSettings["CorreoInstitucional"];
            string nombreusuario = User.Identity.Name.Split('\\')[1].ToString();
            Usuarios usuario = new Usuarios();
            if (!usuario.InicioSesion(nombreusuario))
            {
                DirectoryEntry deRoot = new DirectoryEntry(System.Configuration.ConfigurationManager.AppSettings["ActiveDirectoryURL"], System.Configuration.ConfigurationManager.AppSettings["ActiveDirectoryUser"], System.Configuration.ConfigurationManager.AppSettings["ActiveDirectoryPassword"]);

                DirectorySearcher dsFindUser = new DirectorySearcher(deRoot);
                dsFindUser.SearchScope = SearchScope.Subtree;

                dsFindUser.PropertiesToLoad.Add("cn"); // nombre completo
                //dsFindUser.PropertiesToLoad.Add("givenName"); // first name
                dsFindUser.PropertiesToLoad.Add("mail"); // correo
                dsFindUser.Filter = string.Format("(&(objectCategory=Person)(anr={0}))", nombreusuario);
                SearchResult result = dsFindUser.FindOne();
                ViewBag.Nombre = result.Properties["cn"][0].ToString();
                string departamento = result.Path.Split(',')[1].Remove(0, 3);
                string correo = "";
                if (result.Properties["mail"].Count != 0)
                {
                    correo = result.Properties["mail"][0].ToString();
                }
                else
                {
                    correo = nombreusuario + correoinstitucional;
                }
                usuario.NuevoUsuario(nombreusuario, ViewBag.Nombre, departamento, correo);
                string mensaje = "Bienvenido al Sistema de Mesa de Ayuda del Ministerio de Economia, Planificación y Desarrollo\n Por esta vía se le enviará notificaciones de sus solicitudes.";
                new Mensajes().EnviarMensaje(correo, "Bienvenido al SiMeAyuda", mensaje);
                ViewBag.Message = "Bienvenido por primera vez";
            }
            Session.Timeout = 20;
            Session["nombre"] = usuario.Nombre;
            Session["nombreusuario"] = usuario.NombreUsuario;
            Session["correousuario"] = usuario.CorreoElectronico;
            Session["rol"] = usuario.rol.Nombre;
            return View();
        }
Exemplo n.º 2
0
        public ActionResult Index(Solicitudes model)
        {
            if (Session["nombreusuario"] != null)
            {
                model.categoria = new Categorias();
                model.subcategoria = new SubCategorias();
                model.estado = new Estados();
                model.categoria.ID = Convert.ToInt32(Request["Categoria"].ToString());
                model.Prioridad = Request["Prioridad"].ToString();
                model.subcategoria.ID = Convert.ToInt32(Request["SubCategoria"].ToString());
                model.UsuarioCreador = new Usuarios();

                if (Session["rol"].ToString() == "Supervisor" && Request["solicitante"] != "")
                {
                    Usuarios usuario = new Usuarios();
                    if (!usuario.InicioSesion(Request["solicitante"]))
                    {
                        string correoinstitucional = System.Configuration.ConfigurationManager.AppSettings["CorreoInstitucional"];
                        DirectoryEntry deRoot = new DirectoryEntry(System.Configuration.ConfigurationManager.AppSettings["ActiveDirectoryURL"], System.Configuration.ConfigurationManager.AppSettings["ActiveDirectoryUser"], System.Configuration.ConfigurationManager.AppSettings["ActiveDirectoryPassword"]);
                        DirectorySearcher dsFindUser = new DirectorySearcher(deRoot);
                        dsFindUser.SearchScope = SearchScope.Subtree;
                        dsFindUser.PropertiesToLoad.Add("cn"); // nombre completo
                        //dsFindUser.PropertiesToLoad.Add("givenName"); // first name
                        dsFindUser.PropertiesToLoad.Add("mail"); // correo
                        dsFindUser.PropertiesToLoad.Add("sAMAccountName"); // nombre de usuario
                        dsFindUser.Filter = string.Format("(&(objectCategory=Person)(anr={0}))", Request["solicitante"]);
                        SearchResult result = dsFindUser.FindOne();
                        if (result != null)
                        {
                            string nombre = result.Properties["cn"][0].ToString();
                            string departamento = result.Path.Split(',')[1].Remove(0, 3);
                            string correo = "";
                            if (result.Properties["mail"].Count != 0)
                            {
                                correo = result.Properties["mail"][0].ToString();
                            }
                            else
                            {
                                correo = result.Properties["sAMAccountName"][0].ToString() + correoinstitucional;
                            }
                            usuario.NuevoUsuario(result.Properties["sAMAccountName"][0].ToString(), nombre, departamento, correo);
                            model.UsuarioCreador = usuario;
                        }
                        else
                        {
                            List<Categorias> cat = new Categorias().GetAllCategorias();
                            ViewData["categorias"] = cat;
                            ViewBag.Message = "Creando solicitud - Nombre de usuario no encontrado";
                            return View();
                        }
                    }
                    else
                    {
                        model.UsuarioCreador = usuario;
                    }
                }
                else
                {
                    model.UsuarioCreador.InicioSesion(Session["nombreusuario"].ToString());
                }
                if (model.NuevaSolicitud())
                {
                    if (Request["tecnico"] != "")
                    {
                        Usuarios tecnico = new Usuarios();
                        tecnico.InicioSesion(Request["tecnico"]);
                        model.Asignar(Session["nombreusuario"].ToString(), tecnico.ID);
                    }
                    ViewBag.SolicitudID = model.ID;
                    //Enviar mensaje a usuario solicitante
                    string mensaje = String.Format("Se ha registrado la creación de su solicitud {0}. En lo mas adelante se le estará asistiendo.", model.ID);
                    new Mensajes().EnviarMensaje(model.UsuarioCreador.CorreoElectronico, "Solicitud registrada", mensaje);
                    //Enviar mensaje a usuarios supervisores
                    List<Usuarios> supervisores = new Usuarios().GetAllUsuariosSupervisores();
                    foreach (Usuarios supervisor in supervisores)
                    {
                        mensaje = String.Format("Se ha registrado la nueva solicitud {0}. Favor asignarlo a un usuario tecnico", model.ID);
                        new Mensajes().EnviarMensaje(supervisor.CorreoElectronico, "Solicitud creada", mensaje);
                    }
                    return View("Creado");
                }
                List<Categorias> cata = new Categorias().GetAllCategorias();
                ViewData["categorias"] = cata;
                return View();
            }
            else
            {
                return RedirectToAction("Index", "Home");
            }
        }