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