Example #1
0
        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());
        }
Example #2
0
        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);
            }
        }