public void modificarGrupo(int IdGrupo, string Nombre, string Descripcion, bool activo, List<string> usuarios, Dictionary<int, List<int>> ListaIdPantallas_Controles) { try { GRuPOs grupo = database.GRuPOs.Where(g => g.IDGrupo == IdGrupo).Single(); grupo.Nombre = Nombre; grupo.Descripcion = Descripcion; if (activo) grupo.Activo = 1; else grupo.Activo = 0; UsUarIoSGRuPOs ug; EntitySet<UsUarIoSGRuPOs> lista = new EntitySet<UsUarIoSGRuPOs>(); foreach (string username in usuarios) { ug = new UsUarIoSGRuPOs(); int iduser = database.UsUarIoS.Where(u => u.UserName == username).Select(u=>u.IDUsuario).Single(); ug.IDUsuario = iduser; ug.GRuPOs = grupo; lista.Add(ug); } grupo.UsUarIoSGRuPOs = lista; List<PerMisOs> listaPermisos = new List<PerMisOs>(); PerMisOs permiso; PerMisOs control; foreach (int idpantalla in ListaIdPantallas_Controles.Keys) { permiso = new PerMisOs(); permiso.Activo = 1; permiso.IDPermiso = IdGrupo; permiso.IDControl = idpantalla; permiso.UsuarioOrgRupo = "G"; permiso.WinFormOrcOntrol = "W"; listaPermisos.Add(permiso); foreach (int idcontrol in ListaIdPantallas_Controles[idpantalla]) { control = new PerMisOs(); control.Activo = 1; control.IDPermiso = IdGrupo; control.IDControl = idcontrol; control.UsuarioOrgRupo = "G"; control.WinFormOrcOntrol = "C"; listaPermisos.Add(control); } } List<PerMisOs> permsViejos = (from reg in database.PerMisOs where reg.IDPermiso == IdGrupo && reg.UsuarioOrgRupo=="G" select reg).ToList(); //List<UsUarIoSGRuPOs> usugroupsViejos = (from reg in database.UsUarIoSGRuPOs // where reg.IDGrupo == IdGrupo // select reg).ToList(); //database.UsUarIoSGRuPOs.DeleteAllOnSubmit(usugroupsViejos); database.SubmitChanges(); database.PerMisOs.DeleteAllOnSubmit(permsViejos); database.SubmitChanges(); database.PerMisOs.InsertAllOnSubmit(listaPermisos); database.SubmitChanges(); } catch { ControladorDatos.createContext(); throw; } }
public void modificarPermisosUsuario(string UserName, Dictionary<int, List<int>> ListaIdPantallas_Controles) { try { int idUsuario = (from user in database.UsUarIoS where user.UserName == UserName select user.IDUsuario).Single(); List<PerMisOs> permsViejos = ( from user in database.UsUarIoS where user.IDUsuario == idUsuario join r in database.PerMisOs on user.IDUsuario equals r.IDPermiso where r.IDPermiso == idUsuario && r.UsuarioOrgRupo == "U" select r).ToList(); database.PerMisOs.DeleteAllOnSubmit(permsViejos); List<PerMisOs> listaPermisos = new List<PerMisOs>(); PerMisOs permiso; PerMisOs control; foreach (int idpantalla in ListaIdPantallas_Controles.Keys) { permiso = new PerMisOs(); permiso.Activo = 1; permiso.IDPermiso = idUsuario; permiso.IDControl = idpantalla; permiso.UsuarioOrgRupo = "U"; permiso.WinFormOrcOntrol = "W"; listaPermisos.Add(permiso); foreach (int idcontrol in ListaIdPantallas_Controles[idpantalla]) { control = new PerMisOs(); control.Activo = 1; control.IDPermiso = idUsuario; control.IDControl = idcontrol; control.UsuarioOrgRupo = "U"; control.WinFormOrcOntrol = "C"; listaPermisos.Add(control); } } database.PerMisOs.InsertAllOnSubmit(listaPermisos); database.SubmitChanges(); } catch (Exception e) { throw e; } }