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);
            }
        }
Beispiel #2
0
/*
 *              public static string GetGroupLinkUL(int GroupID)
 *              {
 *                      string GroupName = "";
 *                      using(IDataReader reader = UserReport.GetGroup(GroupID))
 *                      {
 *                              if (reader.Read())
 *                                      GroupName = (string)reader["GroupName"];
 *                      }
 *                      return GetGroupLinkUL(GroupID, GroupName);
 *              }
 *
 *              public static string GetGroupPureName(int GroupID)
 *              {
 *                      string GroupName = "";
 *                      using(IDataReader reader = UserReport.GetGroup(GroupID))
 *                      {
 *                              if (reader.Read())
 *                                      GroupName = (string)reader["GroupName"];
 *                      }
 *                      return GroupName;
 *              }
 */
        #endregion

        #region GetUserStatus
        public static string GetUserStatus(int UserID)
        {
            string    RetVal         = "";
            Hashtable UserStatusList = new Hashtable();

            HttpContext context = HttpContext.Current;

            if (context != null && context.Items.Contains(sUserStatus))
            {
                UserStatusList = (Hashtable)context.Items[sUserStatus];
            }

            if (UserStatusList.ContainsKey(UserID))
            {
                RetVal = UserStatusList[UserID].ToString();
            }
            else
            {
                ResourceManager LocRM = new ResourceManager("Mediachase.UI.Web.App_GlobalResources.UserReports.GlobalModules.Resources.strTemplate", typeof(CommonHelper).Assembly);

                string UserName = "";
                string path     = HttpRuntime.AppDomainAppVirtualPath;
                if (path == "/")
                {
                    path = "";
                }
                string Domain = Mediachase.IBN.Business.Configuration.Domain;

                using (IDataReader reader = UserReport.GetUserInfo(UserID, false))
                {
                    if (reader.Read())
                    {
                        bool IsActive     = (bool)reader["IsActive"];
                        bool IsExternal   = (bool)reader["IsExternal"];
                        bool IsPending    = (bool)reader["IsPending"];
                        bool IsImInternal = true;
                        try
                        {
                            IsImInternal = Mediachase.IBN.Business.Security.CurrentUser.IsExternal;
                        }
                        catch {}

                        UserName = (string)reader["FirstName"] + " " + (string)reader["LastName"];
                        if (!IsActive)
                        {
                            UserName = "******" + UserName + "</font>";
                        }
                        string UserIMStatus = "";

                        if (!IsExternal && !IsPending)
                        {
                            if (reader["OriginalId"] != DBNull.Value)
                            {
                                int OriginalId = (int)reader["OriginalId"];
                                UserIMStatus = @"<a href='ibnto:" + (string)reader["Login"] + "@" + Domain + "' title='" + LocRM.GetString("SendIBNMessage") + "'><img alt='' src='../WebServices/UserStatusImage.aspx?UserID=" + OriginalId + "' border='0' align='absmiddle'/></a>&nbsp;";
                            }
                        }
                        else if (IsExternal)
                        {
                            UserIMStatus = "<img alt='' src='../layouts/images/status/status_external.gif' border='0' align='absmiddle' title='" + LocRM.GetString("ExternalUser") + "'/>&nbsp;";
                        }
                        else if (IsPending)
                        {
                            UserIMStatus = "<img alt='' src='../layouts/images/status/status_pending.gif' border='0' align='absmiddle' title='" + LocRM.GetString("PendingUser") + "'/>&nbsp;";
                        }

                        if (IsImInternal)
                        {
                            RetVal = String.Format(
                                "<a href='mailto:{2}' title='" + LocRM.GetString("SendEmail") + "'>" +
                                "<img alt='' src='../layouts/images/mail.GIF' border='0' align='absmiddle'/></a>&nbsp;" +
                                "{0}", UserName, UserID, reader["Email"]);
                        }
                        else
                        {
                            RetVal = String.Format(UserIMStatus + "<a href='mailto:{2}' title='" +
                                                   LocRM.GetString("SendEmail") + "'>" +
                                                   "<img alt='' src='../layouts/images/mail.GIF' border='0' align='absmiddle'/></a>&nbsp;" +
                                                   "<a href='" + path + "/Directory/UserView.aspx?UserID={1}' title='" + LocRM.GetString("ViewUserProfile") + "'>{0}</a>", UserName, UserID, reader["Email"]);
                        }
                        UserStatusList.Add(UserID, RetVal);
                        context.Items.Remove(sUserStatus);
                        context.Items.Add(sUserStatus, UserStatusList);
                    }
                }

                if (RetVal == String.Empty)
                {
                    RetVal = GetGroupLink(UserID);
                    UserStatusList.Add(UserID, RetVal);
                    context.Items.Remove(sUserStatus);
                    context.Items.Add(sUserStatus, UserStatusList);
                }
            }

            return(RetVal);
        }
        private void BindUserStat(int iUserId, DateTime StartDate, DateTime EndDate)
        {
            int iIMGroupId = 0;

            using (IDataReader reader = UserReport.GetUserInfo(iUserId, false))
            {
                if (reader.Read())
                {
                    if (reader["Login"] != DBNull.Value)
                    {
                        lblUserAccountName.Text = reader["Login"].ToString();
                    }
                    lblUserEmail.Text     = reader["Email"].ToString();
                    lblUserFirstName.Text = reader["FirstName"].ToString();
                    lblUserLastName.Text  = reader["LastName"].ToString();
                    lblUserStatus.Text    = ((bool)reader["IsActive"]) ? LocRM.GetString("tActive") : LocRM.GetString("tNotActive");
                    if (reader["IMGroupId"] != DBNull.Value)
                    {
                        iIMGroupId = (int)reader["IMGroupId"];
                    }
                }
            }

            if (!Mediachase.IBN.Business.User.IsExternal(iUserId) &&
                Mediachase.IBN.Business.User.GetUserActivity(iUserId) != Mediachase.IBN.Business.User.UserActivity.Pending)
            {
                DataTable dt = UserReport.GetUserStats(iUserId, StartDate, EndDate);
                if (dt.Rows.Count > 0)
                {
                    DataRow dr = dt.Rows[0];
                    lblClientLoginsCount.Text           = ((int)dr["LoginsClient"]).ToString();
                    lblUserConfCreated.Text             = ((int)dr["ConfCreated"]).ToString();
                    lblUserConfMessagesSent.Text        = ((int)dr["ConfMsgSent"]).ToString();
                    lblUserMessagesReceived.Text        = ((int)dr["MsgReceived"]).ToString();
                    lblUserMessagesSent.Text            = ((int)dr["MsgSent"]).ToString();
                    lblUserTotalFilesReceived.Text      = ((int)dr["FilesReceived"]).ToString();
                    lblUserTotalFilesReceivedBytes.Text = FormatBytes((long)dr["FRBytes"]);
                    lblUserTotalFilesSent.Text          = ((int)dr["FilesSent"]).ToString();
                    lblUserTotalFilesSentBytes.Text     = FormatBytes((long)dr["FSBytes"]);
                }
                using (IDataReader rdr = UserReport.GetIMGroup(iIMGroupId))
                {
                    if (rdr.Read() && rdr["IMGroupName"] != DBNull.Value)
                    {
                        lblUserGroupName.Text = rdr["IMGroupName"].ToString();
                    }
                }
            }

            using (IDataReader reader = UserReport.GetListSecureGroup(iUserId))
            {
                while (reader.Read())
                {
                    lblUserSecurityLevel.Text += CommonHelper.GetResFileString(reader["GroupName"].ToString()) + "<br/>";
                }
            }

            using (IDataReader reader = UserReport.GetQuickSnapshotReport(StartDate, EndDate, iUserId))
            {
                if (reader.Read())
                {
                    lblPortalLoginsCount.Text               = ((int)reader["PortalLogins"]).ToString();
                    lblUserProjectTotalCreated.Text         = ((int)reader["NewProjectsCount"]).ToString();
                    lblUserIssuesTotalCreated.Text          = ((int)reader["NewIncidentsCount"]).ToString();
                    lblUserToDoTotalCreated.Text            = ((int)reader["NewToDosCount"]).ToString();
                    lblUserTasksTotalCreated.Text           = ((int)reader["NewTasksCount"]).ToString();
                    lblUserCalendarTotalEntriesCreated.Text = ((int)reader["NewEventsCount"]).ToString();
                }
            }

            if (ddPeriod.Value != "0")
            {
                _header.Filter = LocRM.GetString("tPeriod") + ":<br/>&nbsp;&nbsp;" + StartDate.ToShortDateString() + " - " + EndDate.ToShortDateString();
            }
            else
            {
                _header.Filter = "";
            }

            if (ddPeriod.Value != "0")
            {
                lblInterval.Text = StartDate.ToShortDateString() + " - " + EndDate.ToShortDateString();
            }
            else
            {
                lblInterval.Text = "";
            }
        }