Example #1
0
        private void ProcessGroup2(int iGroup, TreeViewNode nodeParent)
        {
            TreeViewNode nodeGroup;

            nodeGroup = new TreeViewNode();
            using (IDataReader reader = UserReport.GetGroup(iGroup))
            {
                if (reader.Read())
                {
                    nodeGroup.Text        = CommonHelper.GetResFileString(reader["GroupName"].ToString());              /*CommonHelper.GetGroupLinkUL(iGroup, reader["GroupName"].ToString())*/
                    nodeGroup.ImageUrl    = Page.ResolveUrl("~/Layouts/Images/icons/regular.gif");
                    nodeGroup.Value       = "Group";
                    nodeGroup.NavigateUrl = String.Format("GroupAndUserStat.aspx?SGroupID={0}&UserID=0", reader["GroupId"].ToString());
                }
            }
            // Expanding
            if (aGroupPath.Contains(iGroup))
            {
                nodeGroup.Expanded = true;
            }

            if (nodeParent == null)
            {
                GUTree.Nodes.Add(nodeGroup);
            }
            else
            {
                nodeParent.Nodes.Add(nodeGroup);
            }

            ArrayList children = new ArrayList();

            using (IDataReader rdr = UserReport.GetListChildGroups(iGroup))
            {
                while (rdr.Read())
                {
                    children.Add((int)rdr["GroupId"]);
                }
            }

            foreach (object obj in children)
            {
                ProcessGroup2((int)obj, nodeGroup);
            }

            DataTable dt = new DataTable();

            dt.Columns.Add(new DataColumn("UserId", typeof(int)));
            dt.Columns.Add(new DataColumn("UserName", typeof(string)));
            dt.Columns.Add(new DataColumn("sortUserName", typeof(string)));
            DataRow dr;

            using (IDataReader rdr = UserReport.GetListActiveUsersInGroup(iGroup))
            {
                while (rdr.Read())
                {
                    dr = dt.NewRow();
                    int iUserId = (int)rdr["UserId"];
                    dr["UserId"] = iUserId;
                    using (IDataReader reader = UserReport.GetUserInfo(iUserId, false))
                    {
                        if (reader.Read())
                        {
                            dr["UserName"]     = /*"<img src='../Layouts/Images/Status/status_online.gif ' border=0 align='absmiddle'>&nbsp;" +*/ (string)reader["FirstName"] + " " + (string)reader["LastName"];
                            dr["sortUserName"] = reader["FirstName"].ToString() + " " + reader["LastName"].ToString();
                        }
                    }
                    dt.Rows.Add(dr);
                }
            }
            DataView dv = dt.DefaultView;

            dv.Sort = "sortUserName";
            foreach (DataRowView _dr in dv)
            {
                ProcessUser2(iGroup, _dr, nodeGroup);
            }
        }