Beispiel #1
0
        public static Class.ListaDeAccesos GetListaAccesos(int?rolId)
        {
            var db          = new TemplateEntities1();
            var accesos     = new Class.ListaDeAccesos();
            var listaRoles  = new List <Class.Roles>();
            var listaacceso = new List <Class.Accesos>();
            var roles       = db.Roles.Where(x => x.Activo == true).ToList();

            foreach (var item in roles)
            {
                listaRoles.Add(new Class.Roles
                {
                    RolId  = item.RolId,
                    Nombre = item.Nombre
                });
            }
            var rol = db.Roles.FirstOrDefault(x => x.RolId == rolId);

            if (rol != null)
            {
                accesos.NombreRol = rol.Nombre;
                accesos.RolId     = rol.RolId;
                accesos.Activo    = Convert.ToBoolean(rol.Activo);

                var listaAccessos = (from a in db.Accesos
                                     where a.RolId == rolId
                                     select new
                {
                    a.ModuloId,
                }).ToList();

                var modulo = db.Modulos.Where(x => x.Activo == true).ToList();
                foreach (var item in modulo)
                {
                    listaacceso.Add(new Class.Accesos
                    {
                        NombreDeModulo = item.Nombre,
                        ModuloId       = item.ModuloId,
                        Checked        = listaAccessos.FirstOrDefault(x => x.ModuloId == item.ModuloId) != null ? "checked" : string.Empty
                    });
                }
            }
            else
            {
                var modulo = db.Modulos.Where(x => x.Activo == true).ToList();
                foreach (var item in modulo)
                {
                    listaacceso.Add(new Class.Accesos
                    {
                        NombreDeModulo = item.Nombre,
                        ModuloId       = item.ModuloId,
                        Checked        = string.Empty
                    });
                }
            }
            accesos.LAccesos = listaacceso;
            accesos.LRoles   = listaRoles;
            return(accesos);
        }
        public static Class.ListaDeAccesos Actualizar(Class.ListaDeAccesos model)
        {
            var db = new TemplateEntities1();

            // var accesos = db.Accesos.Where(x => x.RolId == model.RolId);
            if (model.RolId == null)
            {
                var nuevoRol = db.Roles.Create();
                nuevoRol.Activo = model.Activo;
                nuevoRol.Nombre = model.NombreRol;
                db.Roles.Add(nuevoRol);
                db.SaveChanges();

                if (!string.IsNullOrEmpty(model.Modulos))
                {
                    var modulos = model.Modulos.Split(',').Select(n => n).ToList();
                    foreach (var item in modulos)
                    {
                        var nuevoAcceso = db.Accesos.Create();
                        nuevoAcceso.RolId    = nuevoRol.RolId;
                        nuevoAcceso.ModuloId = Convert.ToInt32(item);
                        db.Accesos.Add(nuevoAcceso);
                        db.SaveChanges();
                    }
                }
            }
            else
            {
                var editarRol = db.Roles.First(x => x.RolId == model.RolId);
                editarRol.Activo = model.Activo;
                editarRol.Nombre = model.NombreRol;
                db.SaveChanges();

                using (var ctx = new TemplateEntities1())
                {
                    var listaAccesos = db.Accesos.Where(x => x.RolId == model.RolId).ToList();
                    if (listaAccesos.Any())
                    {
                        foreach (var item in listaAccesos)
                        {
                            var id = item.AccesoId;
                            var a  = new Accesos()
                            {
                                AccesoId = id
                            };
                            ctx.Accesos.Attach(a);
                            ctx.Accesos.Remove(a);
                            ctx.SaveChanges();
                        }
                    }
                }

                if (!string.IsNullOrEmpty(model.Modulos))
                {
                    var modulos = model.Modulos.Split(',').Select(n => n).ToList();
                    foreach (var item in modulos)
                    {
                        var nuevoAcceso = db.Accesos.Create();
                        nuevoAcceso.RolId    = model.RolId;
                        nuevoAcceso.ModuloId = Convert.ToInt32(item);
                        db.Accesos.Add(nuevoAcceso);
                        db.SaveChanges();
                    }
                }
            }
            return(Funciones.GetListaAccesos(model.RolId));
        }