private TreeNode AddUserGroupNode(TreeNodeCollection par, int id, UserGrouper.UserGroup group)
        {
            string title = String.Format("Students ({0}-{1})",
                UserGrouper.UserGroup.Display(group.UpperBound),
                UserGrouper.UserGroup.Display(group.LowerBound));

            return AddNode(par, title, "attributes/group.gif", "attributes/group.gif",
                "UserGroup " + id + " " + group.UpperBound + " " + group.LowerBound, true);
        }
        private void LoadAllUserNode(TreeNode par, int courseID)
        {
            par.Nodes.Clear();

            //Add report node
            AddReportNode(par.Nodes, -1);

            //Add all users grouped
            User.UserList users =
                new Courses(Globals.CurrentIdentity).GetMembers(courseID, null);

            UserGrouper grouper = new UserGrouper();
            ArrayList groups = new ArrayList();
            bool cnode = IsCourseNode(par);
            int asstID=0;

            if (!cnode) asstID = GetAsstParentID(par);
            if (grouper.Group(users, groups))
                foreach (UserGrouper.UserGroup group in groups)
                    AddUserGroupNode(par.Nodes, courseID, group);
            else
                foreach (User user in users)
                    AddUserNode(par.Nodes, user, asstID, !cnode);
        }
        private void LoadSectionNode(TreeNode par, int sectionID)
        {
            User.UserList users = new Sections(Globals.CurrentIdentity).GetMembers(sectionID);
            UserGrouper grouper = new UserGrouper();

            par.Nodes.Clear();
            AddReportNode(par.Nodes, sectionID);
            AddPermNode(par.Nodes, sectionID);
            ArrayList groups = new ArrayList();

            bool cnode = IsCourseNode(par);
            int asstID=0;
            if (!cnode) asstID = GetAsstParentID(par);
            if (grouper.Group(users, groups))
                foreach (UserGrouper.UserGroup group in groups)
                    AddUserGroupNode(par.Nodes, GetCourseID(), group);
            else
                foreach (User user in users)
                    AddUserNode(par.Nodes, user, asstID, !cnode);
        }