Example #1
0
 public List<Categorias> GetAllCategorias()
 {
     Conexion con = new Conexion();
     List<Categorias> cats = new List<Categorias>();
     SqlDataReader categorias = con.GetAllCategorias();
     while (categorias.Read())
     {
         Categorias cat = new Categorias();
         cat.ID = Convert.ToInt32(categorias["ID"]);
         cat.Nombre = categorias["Nombre"].ToString();
         cats.Add(cat);
     }
     con.Close();
     return cats;
 }
 public ActionResult Ver(string id)
 {
     if (Session["nombreusuario"] != null)
     {
         Solicitudes solicitud = new Solicitudes();
         solicitud.ID = Convert.ToInt32(id);
         solicitud.CargarSolicitud();
         ViewBag.Solicitud = solicitud;
         //Usuarios tecnicos
         //ViewBag.Tecnicos = new Conexion().GetAllTecnicos();
         //Estados dependientes de estado actual
         ViewBag.estados = new Conexion().GetEstadosByOrigen(solicitud.estado.ID, Session["nombreusuario"].ToString());
         List<Comentarios> comentarios = new Comentarios().GetComentariosBySolicitudId(Convert.ToInt32(id));
         ViewData["comentarios"] = comentarios;
         List<Categorias> cat = new Categorias().GetAllCategorias();
         ViewData["categorias"] = cat;
         List<SubCategorias> subc = new SubCategorias().GetSubCategoriasByCategoriaId(solicitud.categoria.ID);
         ViewData["subcategorias"] = subc;
         if (Session["rol"].ToString() == "Supervisor")
         {
             ViewData["tecnicos"] = new Usuarios().GetAllTecnicos();
         }
     }
     else {
         return RedirectToAction("Index", "Home");
     }
     return View();
 }
        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");
            }
        }
        //
        // GET: /Solicitud/
        public ActionResult Index()
        {
            if (Session["nombreusuario"] != null)
            {
                ViewBag.Message = "Creando solicitud";

                List<Categorias> cat = new Categorias().GetAllCategorias();
                ViewData["categorias"] = cat;
                ViewData["tecnicos"] = new Usuarios().GetAllTecnicos();
            }
            else
            {
                return RedirectToAction("Index", "Home");
            }
            return View();
        }
Example #5
0
 public Solicitudes()
 {
     categoria = new Categorias();
     subcategoria = new SubCategorias();
     estado = new Estados();
 }