public CInfoSessionAsDynamicClass[] GetInfosSessionsActives() { List <CInfoSessionAsDynamicClass> lst = new List <CInfoSessionAsDynamicClass>(); int[] listeIdSessions = GetListeIdSessionsConnectees(); foreach (int nId in listeIdSessions) { CInfoSessionAsDynamicClass infoSession = new CInfoSessionAsDynamicClass(); infoSession.IdSession = nId; CDbKey keyUtilisateur = null; IInfoSession session = GetSessionClient(nId); try { session.GetInfoUtilisateur(); } catch { session = GetSessionClientSurServeur(nId); infoSession.Invalide = true; session = GetSessionClientSurServeur(nId); } if (session == null) { infoSession.Invalide = true; session = GetSessionClientSurServeur(nId); infoSession.NomUtilisateur = I.T("ACCESS ERROR|20000"); } try { infoSession.NomUtilisateur = session.GetInfoUtilisateur().NomUtilisateur; IInfoUtilisateur info = session.GetInfoUtilisateur(); //TESTDBKEYOK keyUtilisateur = info.KeyUtilisateur; infoSession.KeyUtilisateur = info.KeyUtilisateur; DateTime dt = session.DateHeureConnexion; infoSession.DateDebutConnexion = dt; infoSession.DateDerniereActivité = session.DateHeureDerniereActivite; infoSession.LibelleSession = session.DescriptionApplicationCliente; } catch { if (nId == 0) { infoSession.NomUtilisateur = I.T("Server|20001"); } else { infoSession.Invalide = true; infoSession.NomUtilisateur = I.T("ACCESS ERROR|20000"); } } infoSession.IsSystem = keyUtilisateur == null; lst.Add(infoSession); } return(lst.ToArray()); }
private void FillListeConnectes() { IGestionnaireSessions gestionnaire = (IGestionnaireSessions)C2iFactory.GetNewObject(typeof(IGestionnaireSessions)); int[] listeIdSessions = gestionnaire.GetListeIdSessionsConnectees(); string strNomGestionnaire = gestionnaire.GetType().ToString(); m_listView.Items.Clear(); foreach (int nId in listeIdSessions) { ListViewItem item = new ListViewItem(); item.Tag = nId; while (item.SubItems.Count < m_listView.Columns.Count) { item.SubItems.Add(""); } item.SubItems[colIdSession.Index].Text = nId.ToString(); IInfoSession session = gestionnaire.GetSessionClient(nId); try { session.GetInfoUtilisateur(); } catch { session = gestionnaire.GetSessionClientSurServeur(nId); item.BackColor = Color.Red; session = gestionnaire.GetSessionClientSurServeur(nId); } if (session == null) { item.BackColor = Color.Red; session = gestionnaire.GetSessionClientSurServeur(nId); item.SubItems[colNom.Index].Text = "#ERREUR ACCES"; } try { item.SubItems[colNom.Index].Text = session.GetInfoUtilisateur().NomUtilisateur; item.SubItems[colAppli.Index].Text = session.DescriptionApplicationCliente; item.SubItems[colType.Index].Text = session.TypeApplicationCliente.ToString(); DateTime dt = session.DateHeureConnexion; TimeSpan span = DateTime.Now - dt; string strChaine = ""; if (span.TotalDays > 1) { strChaine = ((int)span.TotalDays).ToString() + "j"; } if (span.TotalHours > 0) { strChaine += ((int)(span.TotalHours % 24)).ToString() + "h"; } strChaine += ((int)(span.TotalMinutes % 60)).ToString() + "m"; item.SubItems[colHeure.Index].Text = strChaine; string strKeyUtilisateur = ""; if (session.GetInfoUtilisateur().KeyUtilisateur != null) { strKeyUtilisateur = session.GetInfoUtilisateur().KeyUtilisateur.StringValue; item.SubItems[colIdUser.Index].Text = strKeyUtilisateur; CContexteDonnee ctx = new CContexteDonnee(session.IdSession, true, false); CDonneesActeurUtilisateur user = CUtilSession.GetUserForSession(ctx); if (user != null) { CListeObjetsDonnees lstEtapesPourActeur = user.Acteur.GetEtapeWorkflowsEnCours(); int nbTodo = lstEtapesPourActeur.Count; item.SubItems[colNbToDo.Index].Text = nbTodo.ToString(); } } } catch { if (nId == 0) { item.SubItems[colNom.Index].Text = "SERVEUR"; } else { item.BackColor = Color.Red; item.SubItems[colNom.Index].Text = "#ERREUR ACCES#"; } } if (nId == CSessionClient.GetSessionUnique().IdSession) { item.BackColor = Color.LightGreen; } m_listView.Items.Add(item); } }