示例#1
0
        public void ReinitialiserRestrictions(CConfigModulesTimos config)
        {
            //CConfigurationRestrictions.ClearRestrictions();

            CListeRestrictionsUtilisateurSurType restrictionsModules = CModuleRestrictionProvider.GetRestrictionsApp(config);

            CConfigurationRestrictions.AjouteRestrictions(CTimosServeur.c_keyRestrictionAllUsers, restrictionsModules);

            foreach (CSessionClientSurServeur session in CGestionnaireSessionsTimos.ListeSessionsServeur)
            {
                if (session is CSessionClientSurServeurTimos)
                {
                    CSessionClientSurServeurTimos sessionTimos = (CSessionClientSurServeurTimos)session;
                    sessionTimos.SetNewConfigModules(config);
                }
            }
        }
        //-------------------------------------------------------------------------------------------------
        public void RecalculeAffectationLicencesEtProfils()
        {
            //Identifie les sessions déconnectées
            foreach (int nId in GetListeIdSessionsConnectees())
            {
                CSessionClientSurServeurTimos sessionSurServeur = GetSessionClientSurServeur(nId) as CSessionClientSurServeurTimos;
                if (sessionSurServeur != null && sessionSurServeur.UserLicence != null)
                {
                    try
                    {
                        bool bConnected = sessionSurServeur.SessionClient.IsConnected;
                    }
                    catch {
                        try{
                            sessionSurServeur.CloseSession();
                        }
                        catch {
                        }
                    }
                }
            }
            //Remet les compteurs à 0
            foreach (CUserLicencePrtct licence in TimosServeur.LicenceLogiciel.UserLicences)
            {
                while (licence.GetNbUsed() > 0)
                {
                    licence.FreeLicence();
                }
            }
            foreach (CUserProfilPrtct profil in TimosServeur.LicenceLogiciel.ProfilsUtilisateurs)
            {
                while (profil.GetNbUsed() > 0)
                {
                    profil.FreeProfil();
                }
            }

            //Réaffecte les licences utilisées
            foreach (int nId in GetListeIdSessionsConnectees())
            {
                CSessionClientSurServeurTimos sessionSurServeur = GetSessionClientSurServeur(nId) as CSessionClientSurServeurTimos;
                if (sessionSurServeur != null)
                {
                    try
                    {
                        if (sessionSurServeur.SessionClient.IsConnected)
                        {
                            if (sessionSurServeur.UserLicence != null)
                            {
                                sessionSurServeur.UserLicence.GetLicence();
                            }
                            if (sessionSurServeur.UserProfil != null)
                            {
                                sessionSurServeur.UserProfil.GetProfil();
                            }
                        }
                    }
                    catch
                    {
                    }
                }
            }
        }