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)); }