public ConfigViewHolder()
        {
            List <string> PerfilesString = new List <string>();

            ListaPerfiles          = new List <Perfil>();
            ListaEnfasis           = new List <Enfasis>();
            PerfilesSeleccionables = new List <SelectListItem>();
            using (var context = new DataIntegradorEntities())
            {
                var listaPerfiles = from Perfil in db.PerfilesXUsuario(CurrentUser.getUsername())
                                    select Perfil;
                foreach (var nombrePerfil in listaPerfiles)
                {
                    PerfilesString.Add(nombrePerfil.NombrePefil);
                }


                foreach (string NombrePerfil in PerfilesString)
                {
                    ListaPerfiles.Add(db.Perfil.Find(NombrePerfil));
                    PerfilesSeleccionables.Add(new SelectListItem()
                    {
                        Text = NombrePerfil
                    });
                }
            }
            Carrera carrera = db.Carrera.Find(CurrentUser.getUserMajorId());

            this.NombreCarrera = carrera.Nombre;
            Enfasis enfasis = db.Enfasis.Find(CurrentUser.getUserMajorId(), CurrentUser.getUserEmphasisId());

            this.NombreEnfasis = enfasis.Nombre;
        }
Exemplo n.º 2
0
        public PermissionsViewHolder()
        {
            List <Perfil> perfiles = db.Perfil.ToList();

            this.Perfiles = new List <PerfilCodigo>();
            int count = 0;

            foreach (Perfil perfil in perfiles)
            {
                this.Perfiles.Add(new PerfilCodigo(perfil.Nombre, count++));
            }

            List <Carrera> CarrerasUsuario = new List <Carrera>();
            List <Enfasis> EnfasisUsuario  = new List <Enfasis>();

            using (var context = new DataIntegradorEntities())
            {
                /*TAM-11.1: En la página de administración de permisos y perfiles solo se muestran las carreras y énfasis en las que el usuario tiene postestad, en los dropdowns.*/
                var tuplas = from Dato in db.CarrerasYEnfasisXUsuarioXPerfil(CurrentUser.getUsername(), CurrentUser.getUserProfile())
                             select Dato;
                foreach (var tupla in tuplas)
                {
                    Carrera carrera = new Carrera {
                        Codigo = tupla.CodCarrera, Nombre = tupla.NombreCarrera
                    };
                    if (!CarrerasUsuario.Contains(carrera) && (
                            permissionManager.IsAllowed(CurrentUser.getUsername(), CurrentUser.getUserProfile(), carrera.Codigo, Permission.ASIGNAR_PERFILES_USUARIOS) ||
                            permissionManager.IsAllowed(CurrentUser.getUsername(), CurrentUser.getUserProfile(), carrera.Codigo, Permission.ASIGNAR_PERMISOS_PERFILES)))
                    {
                        CarrerasUsuario.Add(carrera);
                    }

                    Enfasis enfasis = new Enfasis {
                        CodCarrera = tupla.CodCarrera, Codigo = tupla.CodEnfasis, Nombre = tupla.NombreEnfasis
                    };
                    if (!EnfasisUsuario.Contains(enfasis) && (
                            permissionManager.IsAllowed(CurrentUser.getUsername(), CurrentUser.getUserProfile(), carrera.Codigo, enfasis.Codigo, Permission.ASIGNAR_PERFILES_USUARIOS) ||
                            permissionManager.IsAllowed(CurrentUser.getUsername(), CurrentUser.getUserProfile(), carrera.Codigo, enfasis.Codigo, Permission.ASIGNAR_PERMISOS_PERFILES)))
                    {
                        EnfasisUsuario.Add(enfasis);
                    }
                }
            }

            this.Carreras    = CarrerasUsuario.Distinct(new ComparadorCarreras()).ToList();
            this.EnfasisView = EnfasisUsuario.Distinct(new ComparadorEnfasis()).ToList();

            this.Permisos = db.Permiso.ToList();
            foreach (Permiso permiso in this.Permisos)
            {
                permiso.ActiveInProfileEmph = false;
            }
            /*Lista todas las personas en la base de datos del sistema, ordenadas por apellidos y luego por nombres.*/

            /*El usuario [email protected] no se muestra para que no se pueda quitar permisos él mismo. Por defecto ya
             * tiene todos los permisos disponibles.*/


            this.Personas = db.Persona.Where(item => !item.Borrado && item.Correo != "*****@*****.**").
                            OrderBy(item => item.Apellido1).
                            ThenBy(item => item.Apellido2).
                            ThenBy(item => item.Nombre1).
                            ThenBy(item => item.Nombre2).
                            ToList();

            ObjectParameter resultado          = new ObjectParameter("resultado", typeof(bool));
            List <Persona>  personasEliminadas = new List <Persona>();

            foreach (Persona persona in this.Personas)
            {
                persona.HasProfileInEmph = false;
            }

            this.ListaCarreras = GetCarreras();
            this.ListaPermisos = GetPermisos();
            this.ListaEnfasis  = GetEnfasis();
            this.ListaPerfiles = GetPerfiles();
            this.ListaPersonas = GetPersonas();
            this.ConcatenarNombresPersonas();
        }