Пример #1
0
        public static List <string> BuscarRolesGrupoAd(List <string> listGruposAd)
        {
            string grupos = "(";

            foreach (var g in listGruposAd)
            {
                grupos = grupos + "'" + g + "' ,";
            }
            grupos = grupos.Remove(grupos.Length - 1) + ")";
            List <AspNetRole> listUsu;

            using (Entidades.EF.ComunidadEntities context = new Entidades.EF.ComunidadEntities())
            {
                var sql = @"SELECT DISTINCT  anr.* FROM AspNetRoles anr
                            INNER JOIN AspNet_PerfilesRoles anpr ON anpr.RolesId = anr.Id
                            INNER JOIN AspNet_Perfiles anp ON anp.id = anpr.PerfilesId
                            WHERE anp.grupo_ad IN " + grupos;
                listUsu = context.Database.SqlQuery <Entidades.EF.AspNetRole>(sql).ToList();
            }
            List <string> listRoles = new List <string>();

            foreach (var r in listUsu)
            {
                listRoles.Add(r.Name);
            }
            return(listRoles);
        }
Пример #2
0
        /// <summary>
        /// Agregar - actualiza los roles de un perfil. El perfil Ya debe esxistri en la DB
        /// </summary>
        public static void AgregarRolesPerfiles(AspNet_Perfiles perfil)
        {
            List <AspNetUser> listUsu;

            using (Entidades.EF.ComunidadEntities context = new Entidades.EF.ComunidadEntities())
            {
                context.Database.ExecuteSqlCommand("DELETE FROM AspNet_PerfilesRoles WHERE PerfilesId = @id", new SqlParameter("id", perfil.id));
                var per = context.AspNet_Perfiles.Find(perfil.id);
                var sql = @"SELECT DISTINCT anu.* FROM AspNet_PerfilesUsuarios anpu
                            INNER JOIN AspNetUsers anu ON anu.Id = anpu.UsuariosId
                            WHERE anpu.PerfilesId = @id";
                listUsu = context.Database.SqlQuery <Entidades.EF.AspNetUser>(sql, new SqlParameter("id", perfil.id)).ToList();
                foreach (var usu in listUsu)
                {
                    usu.AspNet_Perfiles = context.AspNetUsers.Find(usu.Id).AspNet_Perfiles;
                }
                per.AspNetRoles = perfil.AspNetRoles;
                foreach (var r in per.AspNetRoles)
                {
                    context.Entry(r).State = System.Data.Entity.EntityState.Modified;
                }

                context.Entry(per).State = System.Data.Entity.EntityState.Modified;
                context.SaveChanges();
            }
            foreach (var usu in listUsu)
            {
                agregarUsarioRoles(usu);
            }
        }
Пример #3
0
 /// <summary>
 /// Asigna un usuario a un complejo
 /// </summary>
 /// <param name="idUsuario"></param>
 /// <param name="idComplejo"></param>
 public static void AsignarComplejoAUsuario(string idUsuario, int idComplejo)
 {
     using (Entidades.EF.ComunidadEntities context = new Entidades.EF.ComunidadEntities())
     {
         var usu = context.AspNetUsers.Find(idUsuario);
         usu.complejo_id          = idComplejo;
         context.Entry(usu).State = System.Data.Entity.EntityState.Modified;
         context.SaveChanges();
     }
 }
Пример #4
0
        /// <summary>
        /// Agrega modifica los perfiles del usuario junto a sus roles.
        /// Se encarga de asignar los perfiles y todos sus roles.
        /// </summary>
        /// <param name="usuario"></param>
        public static void AgregarPerfilesUsuario(AspNetUser usuario)
        {
            using (Entidades.EF.ComunidadEntities context = new Entidades.EF.ComunidadEntities())
            {
                context.Database.ExecuteSqlCommand("DELETE FROM AspNet_PerfilesUsuarios WHERE UsuariosId = @id", new SqlParameter("id", usuario.Id));

                var usu = context.AspNetUsers.Find(usuario.Id);

                usu.AspNet_Perfiles = usuario.AspNet_Perfiles;

                foreach (var p in usu.AspNet_Perfiles)
                {
                    context.Entry(p).State = System.Data.Entity.EntityState.Modified;
                }

                context.Entry(usu).State = System.Data.Entity.EntityState.Modified;
                context.SaveChanges();
            }
            agregarUsarioRoles(usuario);
        }
Пример #5
0
        private static void agregarUsarioRoles(AspNetUser usuario)
        {
            var sql = @"SELECT DISTINCT anr.Id, anr.Name
                        FROM   AspNet_PerfilesRoles anpr
                               INNER JOIN AspNetRoles anr ON anr.Id = anpr.RolesId
                        WHERE  anpr.PerfilesId IN (";



            int contador = 0;
            int cantidad = usuario.AspNet_Perfiles.Count;

            foreach (var perfil in usuario.AspNet_Perfiles)
            {
                sql      = sql + perfil.id;
                contador = contador + 1;
                if (cantidad != contador)
                {
                    sql = sql + ",";
                }
                else
                {
                    sql = sql + ")";
                }
            }
            using (Entidades.EF.ComunidadEntities context = new Entidades.EF.ComunidadEntities())
            {
                var usu = context.AspNetUsers.Find(usuario.Id);

                context.Database.ExecuteSqlCommand("DELETE FROM AspNetUserRoles  WHERE UserId = @id", new SqlParameter("id", usuario.Id));
                var roles = context.Database.SqlQuery <Entidades.EF.AspNetRole>(sql).ToList();
                usu.AspNetRoles = roles;
                foreach (var r in usu.AspNetRoles)
                {
                    context.Entry(r).State = System.Data.Entity.EntityState.Modified;
                }
                context.Entry(usu).State = System.Data.Entity.EntityState.Modified;
                context.SaveChanges();
            }
        }