/// <summary> /// Returns ArrayList of UserActivityInfo objects. /// </summary> public static ArrayList GetUsersActivity(DateTime fromDate, DateTime toDate, ActivityReportType type, int topCount) { ArrayList list = new ArrayList(); UserActivityInfo user; using (IDataReader reader = GetUsersByCompany()) { while (reader.Read()) { string sDisplayName = reader["DisplayName"].ToString(); int iIMGroupId = (int)reader["IMGroupId"]; int user_id = (int)reader["UserId"]; user = new UserActivityInfo(sDisplayName, iIMGroupId); list.Add(user); using (IDataReader _obj = UserReport.GetUserInfoByOriginalId(user_id)) { if (_obj.Read()) user_id = (int)_obj["UserId"]; else continue; } int DefaultBias = UserReport.GetTimeZoneBias(Security.CurrentUser.TimeZoneId); switch (type) { case ActivityReportType.Messages: using (IDataReader _obj = DBUserReport.GetUserStats(user_id, fromDate, toDate, DefaultBias)) { if (_obj.Read()) user.Count = (int)_obj["MsgSent"]; } break; case ActivityReportType.FilesExchanged: using (IDataReader _obj = DBUserReport.GetUserStats(user_id, fromDate, toDate, DefaultBias)) { if (_obj.Read()) user.Count = (int)_obj["FilesSent"]; } break; case ActivityReportType.IMLogins: using (IDataReader _obj = DBUserReport.GetUserStats(user_id, fromDate, toDate, DefaultBias)) { if (_obj.Read()) user.Count = (int)_obj["LoginsClient"]; } break; case ActivityReportType.PortalLogins: using (IDataReader _obj = GetQuickSnapshotReport(fromDate, toDate, user_id)) { if (_obj.Read()) user.Count = (int)_obj["PortalLogins"]; } break; case ActivityReportType.CalendarEntries: using (IDataReader _obj = GetQuickSnapshotReport(fromDate, toDate, user_id)) { if (_obj.Read()) user.Count = (int)_obj["NewEventsCount"]; } break; case ActivityReportType.ActiveProjects: using (IDataReader _obj = GetQuickSnapshotReport(fromDate, toDate, user_id)) { if (_obj.Read()) user.Count = (int)_obj["NewProjectsCount"]; } break; case ActivityReportType.FilesPublished: using (IDataReader _obj = GetQuickSnapshotReport(fromDate, toDate, user_id)) { if (_obj.Read()) user.Count = (int)_obj["NewAssetsCount"]; } break; case ActivityReportType.FileVersionsPublished: using (IDataReader _obj = GetQuickSnapshotReport(fromDate, toDate, user_id)) { if (_obj.Read()) user.Count = (int)_obj["NewAssetVersionsCount"]; } break; case ActivityReportType.NewIssues: using (IDataReader _obj = GetQuickSnapshotReport(fromDate, toDate, user_id)) { if (_obj.Read()) user.Count = (int)_obj["NewIncidentsCount"]; } break; case ActivityReportType.NewTasks: using (IDataReader _obj = GetQuickSnapshotReport(fromDate, toDate, user_id)) { if (_obj.Read()) user.Count = (int)_obj["NewTasksCount"]; } break; case ActivityReportType.NewToDos: using (IDataReader _obj = GetQuickSnapshotReport(fromDate, toDate, user_id)) { if (_obj.Read()) user.Count = (int)_obj["NewToDosCount"]; } break; default: break; } } } // Leave only topCount items if (topCount > 0) { list.Sort(); if (list.Count > topCount) list.RemoveRange(topCount, list.Count - topCount); } // Remove items with zero counter for (int i = 0; i < list.Count; ) { if (((ActivityInfo)list[i]).Count == 0) list.RemoveAt(i); else i++; } return list; }
/// <summary> /// Returns ArrayList of UserActivityInfo objects. /// </summary> public static ArrayList GetUsersActivity(DateTime fromDate, DateTime toDate, ActivityReportType type, int topCount) { ArrayList list = new ArrayList(); UserActivityInfo user; using (IDataReader reader = GetUsersByCompany()) { while (reader.Read()) { string sDisplayName = reader["DisplayName"].ToString(); int iIMGroupId = (int)reader["IMGroupId"]; int user_id = (int)reader["UserId"]; user = new UserActivityInfo(sDisplayName, iIMGroupId); list.Add(user); using (IDataReader _obj = UserReport.GetUserInfoByOriginalId(user_id)) { if (_obj.Read()) { user_id = (int)_obj["UserId"]; } else { continue; } } int DefaultBias = UserReport.GetTimeZoneBias(Security.CurrentUser.TimeZoneId); switch (type) { case ActivityReportType.Messages: using (IDataReader _obj = DBUserReport.GetUserStats(user_id, fromDate, toDate, DefaultBias)) { if (_obj.Read()) { user.Count = (int)_obj["MsgSent"]; } } break; case ActivityReportType.FilesExchanged: using (IDataReader _obj = DBUserReport.GetUserStats(user_id, fromDate, toDate, DefaultBias)) { if (_obj.Read()) { user.Count = (int)_obj["FilesSent"]; } } break; case ActivityReportType.IMLogins: using (IDataReader _obj = DBUserReport.GetUserStats(user_id, fromDate, toDate, DefaultBias)) { if (_obj.Read()) { user.Count = (int)_obj["LoginsClient"]; } } break; case ActivityReportType.PortalLogins: using (IDataReader _obj = GetQuickSnapshotReport(fromDate, toDate, user_id)) { if (_obj.Read()) { user.Count = (int)_obj["PortalLogins"]; } } break; case ActivityReportType.CalendarEntries: using (IDataReader _obj = GetQuickSnapshotReport(fromDate, toDate, user_id)) { if (_obj.Read()) { user.Count = (int)_obj["NewEventsCount"]; } } break; case ActivityReportType.ActiveProjects: using (IDataReader _obj = GetQuickSnapshotReport(fromDate, toDate, user_id)) { if (_obj.Read()) { user.Count = (int)_obj["NewProjectsCount"]; } } break; case ActivityReportType.FilesPublished: using (IDataReader _obj = GetQuickSnapshotReport(fromDate, toDate, user_id)) { if (_obj.Read()) { user.Count = (int)_obj["NewAssetsCount"]; } } break; case ActivityReportType.FileVersionsPublished: using (IDataReader _obj = GetQuickSnapshotReport(fromDate, toDate, user_id)) { if (_obj.Read()) { user.Count = (int)_obj["NewAssetVersionsCount"]; } } break; case ActivityReportType.NewIssues: using (IDataReader _obj = GetQuickSnapshotReport(fromDate, toDate, user_id)) { if (_obj.Read()) { user.Count = (int)_obj["NewIncidentsCount"]; } } break; case ActivityReportType.NewTasks: using (IDataReader _obj = GetQuickSnapshotReport(fromDate, toDate, user_id)) { if (_obj.Read()) { user.Count = (int)_obj["NewTasksCount"]; } } break; case ActivityReportType.NewToDos: using (IDataReader _obj = GetQuickSnapshotReport(fromDate, toDate, user_id)) { if (_obj.Read()) { user.Count = (int)_obj["NewToDosCount"]; } } break; default: break; } } } // Leave only topCount items if (topCount > 0) { list.Sort(); if (list.Count > topCount) { list.RemoveRange(topCount, list.Count - topCount); } } // Remove items with zero counter for (int i = 0; i < list.Count;) { if (((ActivityInfo)list[i]).Count == 0) { list.RemoveAt(i); } else { i++; } } return(list); }