예제 #1
0
        public void ModifierMibModule(int nId, string nomUtil, string nomOfficiel, string nomfichiermib)
        {
            //Modifie les champs d'un objet "Module MIB"

            CSpvMibmodule moduleLibelle = new CSpvMibmodule(m_contexteDonnees);

            if (!moduleLibelle.ReadIfExists(new CFiltreData(CSpvMibmodule.c_champMIBMODULE_NOM + "=@1", nomUtil)))
            {
                Console.WriteLine("modification d'un module MIB");
                CSpvMibmodule module = new CSpvMibmodule(m_contexteDonnees);

                if (module.ReadIfExists(nId))
                {
                    module.NomModuleUtilisateur = nomUtil;
                    module.FichierModule        = nomfichiermib;
                    module.NomModuleOfficiel    = nomOfficiel;


                    Console.WriteLine("enregistrement du module MIB");
                    CResultAErreur result = CResultAErreur.True;
                    Console.WriteLine("vérification des donnéees");
                    result = module.VerifieDonnees(false);
                    if (!result)
                    {
                        System.Console.WriteLine(result.MessageErreur);
                    }
                    Assert.IsTrue(result.Result);

                    Console.WriteLine("enregistrement des donnéées");
                    m_contexteDonnees.SaveAll(true);
                    if (!result)
                    {
                        System.Console.WriteLine(result.MessageErreur);
                    }

                    Assert.IsTrue(result.Result);


                    CSpvMibmodule moduletest = new CSpvMibmodule(m_contexteDonnees);
                    Console.WriteLine("lecture du module MIB");
                    Assert.IsTrue(moduletest.ReadIfExists(nId));


                    Console.WriteLine("vérification du nom officiel");
                    Assert.IsTrue(moduletest.NomModuleOfficiel == nomOfficiel);
                    Console.WriteLine("vérification du nom utilisateur");
                    Assert.IsTrue(moduletest.NomModuleUtilisateur == nomUtil);
                    Console.WriteLine("vérification du nom du fichier MIB");
                    Assert.IsTrue(moduletest.FichierModule == nomfichiermib);
                }
                else
                {
                    System.Console.WriteLine("le module n'existe pas");
                }
            }
            else
            {
                Console.WriteLine("un module avec ce nom existe déjà");
            }
        }
예제 #2
0
        public void SupprimerMibModule(int nId)
        {
            Console.WriteLine("Suppression d'un module MIB");
            CResultAErreur result = CResultAErreur.True;
            CSpvMibmodule  module = new CSpvMibmodule(m_contexteDonnees);

            if (module.ReadIfExists(nId))
            {
                result = module.Delete();
                Console.WriteLine("suppression du module");
                if (!result)
                {
                    System.Console.WriteLine(result.MessageErreur);
                }
                Assert.IsTrue(result.Result);

                /*    Console.WriteLine("enregistrement de la suppression");
                 *   result = m_contexteDonnees.SaveAll(true);
                 *   if (!result)
                 *       System.Console.WriteLine(result.MessageErreur);
                 *   Assert.IsTrue(result.Result);
                 */

                Console.WriteLine("vérification de la suppression");
                CSpvMibmodule moduletest = new CSpvMibmodule(m_contexteDonnees);
                Assert.IsFalse(moduletest.ReadIfExists(nId));
            }
            else
            {
                System.Console.WriteLine("le module n'existe pas");
            }
        }
예제 #3
0
        public void CompilerModuleMib(int nModuleId)
        {
            CSpvMibmodule module = new CSpvMibmodule(m_contexteDonnees);

            Console.WriteLine("lecture du module MIB");

            Assert.IsTrue(module.ReadIfExists(nModuleId));

            System.Console.WriteLine(module.FichierModule);
            System.Console.WriteLine(module.NomModuleOfficiel);
            System.Console.WriteLine(module.NomModuleUtilisateur);


            Console.WriteLine("compliation du module MIB");

            CResultAErreur result = module.Compile();

            if (!result)
            {
                System.Console.WriteLine(result.MessageErreur);
            }
            if (result == CResultAErreur.True)
            {
                System.Console.WriteLine("compilation du module MIB réussie");
            }
            Assert.IsTrue(result.Result);
        }
예제 #4
0
        private void FillChilds(TreeNode nodeToFill)
        {
            CObjetDonnee objet = nodeToFill.Tag as CObjetDonnee;

            if (objet == null)
            {
                return;
            }
            CSpvFamilleMibmodule famille = objet as CSpvFamilleMibmodule;

            if (famille != null)
            {
                foreach (CSpvFamilleMibmodule sousFamille in famille.FamillesFilles)
                {
                    TreeNode node = new TreeNode();
                    FillNode(node, sousFamille);
                    nodeToFill.Nodes.Add(node);
                }
                foreach (CSpvMibmodule sousModule in famille.ModulesMIB)
                {
                    TreeNode node = new TreeNode();
                    FillNode(node, sousModule);
                    nodeToFill.Nodes.Add(node);
                }
            }
            CSpvMibmodule module = objet as CSpvMibmodule;

            if (module != null)
            {
                foreach (CSpvMibTable sousTable in module.Tables)
                {
                    TreeNode node = new TreeNode();
                    FillNode(node, sousTable);
                    nodeToFill.Nodes.Add(node);
                }
                foreach (CSpvMibVariable sousVariable in module.VariablesScalaires)
                {
                    TreeNode node = new TreeNode();
                    FillNode(node, sousVariable);
                    nodeToFill.Nodes.Add(node);
                }
            }

            CSpvMibTable table = objet as CSpvMibTable;

            if (table != null)
            {
                foreach (CSpvMibVariable variable in table.Variables)
                {
                    TreeNode node = new TreeNode();
                    FillNode(node, variable);
                    nodeToFill.Nodes.Add(node);
                }
            }
            m_arbre.Sort();
        }
예제 #5
0
        private void LireMibTraps(int nIdModule)
        {
            CSpvMibmodule module = new CSpvMibmodule(m_contexteDonnees);

            Console.WriteLine("lecture du module MIB");
            Assert.IsTrue(module.ReadIfExists(nIdModule));
            foreach (CSpvMibTrap trap in module.Traps)
            {
                Console.WriteLine(trap.NomObjetUtilisateur);
            }
        }
예제 #6
0
        private void LireMibVariables(int nIdModule)
        {
            CSpvMibmodule module = new CSpvMibmodule(m_contexteDonnees);

            Console.WriteLine("lecture du module MIB");
            Assert.IsTrue(module.ReadIfExists(nIdModule));
            foreach (CSpvMibVariable variable in module.VariablesScalaires)
            {
                Console.WriteLine(variable.NomObjetUtilisateur);
            }
        }
예제 #7
0
        private int LireIdMibModule(string libelle)
        {
            //lit l'id d'un module MIB
            CSpvMibmodule mib = new CSpvMibmodule(m_contexteDonnees);

            Console.WriteLine("lecture du module MIB");
            Assert.IsTrue(mib.ReadIfExists(new CFiltreData(CSpvMibmodule.c_champMIBMODULE_NOM + "=@1", libelle)));


            return(mib.Id);
        }
예제 #8
0
        public void CompilerModuleMibAvecErreur(int nModuleId)
        {
            CSpvMibmodule module = new CSpvMibmodule(m_contexteDonnees);

            Console.WriteLine("lecture du module MIB");
            Assert.IsTrue(module.ReadIfExists(nModuleId));
            Console.WriteLine("compliation du module MIB avec erreur");

            CResultAErreur result = module.Compile();

            if (!result)
            {
                System.Console.WriteLine(result.MessageErreur);
            }
            Assert.IsFalse(result.Result);
        }
예제 #9
0
        private void CreateNewMibs()
        {
            int nNbItems = m_listMibs.Items.Count;

            if (nNbItems > 0)
            {
                CSpvTypeq_Mibmodule spvTypeqMib = new CSpvTypeq_Mibmodule(m_spvTypeq.ContexteDonnee);
                for (int i = 0; i < nNbItems; i++)
                {
                    CSpvMibmodule spvMib = (CSpvMibmodule)m_listMibs.Items[i].Tag;
                    CFiltreData   filtre = new CFiltreData(CSpvTypeq_Mibmodule.c_champTYPEQ_ID + "=@1 AND " +
                                                           CSpvTypeq_Mibmodule.c_champMIBMODULE_ID + "=@2",
                                                           m_spvTypeq.Id, spvMib.Id);
                    if (!spvTypeqMib.ReadIfExists(filtre))
                    {
                        CSpvTypeq_Mibmodule typeqMib = new CSpvTypeq_Mibmodule(m_spvTypeq.ContexteDonnee);
                        typeqMib.CreateNewInCurrentContexte(new object[] { m_spvTypeq.Id, spvMib.Id });
                    }
                }
            }
        }
예제 #10
0
        /// <summary>
        /// Get SNMP
        /// </summary>
        /// <param name="nomModule"></param>
        /// <param name="nomsDesVariables">Si une variable n'intègre pas son index, 0 est pris comme index par défaut</param>
        /// <returns></returns>
        public CResultAErreur Get(string nomModule, params string[] nomsDesVariables)
        {
            string          strIndex;
            CSpvMibVariable mibVar;
            List <CSnmpVar> listeSnmpVar = new List <CSnmpVar>();

            CResultAErreur  result = CResultAErreur.True;
            CContexteDonnee ctx    = new CContexteDonnee(); //ATTENTION, récupérer le ctx de la session

            if (nomModule == null || nomModule.Length == 0)
            {
                result.EmpileErreur(I.T("You should fill the MIB module before doing an snmp get|50003"));
                return(result);
            }

            if (nomsDesVariables.Length == 0)
            {
                result.EmpileErreur(I.T("Fill variable(s) name before doing an snmp get|50004"));
                return(result);
            }

            foreach (string nomVariable in nomsDesVariables)
            {
                string [] nomModules = new string [1];
                nomModules[0] = nomModule;

                strIndex = GetIndexOrZero(nomVariable);
                mibVar   = (CSpvMibVariable)CSpvMibmodule.GetVariable(ctx, nomVariable, nomModules);
                if (mibVar == null)
                {
                    result.EmpileErreur(I.T("Snmp variable not found in bdd|50000"));
                    return(result);
                }
                listeSnmpVar.Add(new CSnmpVar(mibVar, strIndex));
            }
            return(Get(listeSnmpVar));
        }
예제 #11
0
        ///////////////////////////////////////////////////////////////
        public CResultAErreur Compile(int nIdMibModule)
        {
            CResultAErreur result = CResultAErreur.True;

            using (CContexteDonnee contexte = new CContexteDonnee(IdSession, true, false))
            {
                CSpvMibmodule mibModule = new CSpvMibmodule(contexte);
                if (!mibModule.ReadIfExists(nIdMibModule))
                {
                    result.EmpileErreur(I.T("Mib module @1 doesn't exists|20000", nIdMibModule.ToString()));
                    return(result);
                }
                CDocumentGED doc = mibModule.DocumentGEDModuleMib;
                if (doc == null)
                {
                    result.EmpileErreur(I.T("Mib module @1 should be associated to a mib file|20001", mibModule.NomModuleOfficiel));
                    return(result);
                }
                using (CProxyGED proxy = new CProxyGED(m_nIdSession, doc.ReferenceDoc))
                {
                    result = proxy.CopieFichierEnLocal();
                    if (!result)
                    {
                        return(result);
                    }

                    CMibModuleWrapper  mibModuleWrapper = new CMibModuleWrapper();
                    IDatabaseConnexion connexion        = CSc2iDataServer.GetInstance().GetDatabaseConnexion(m_nIdSession, GetType());
                    string             strConnexion     = connexion.ConnexionString;
                    string             strDatabase      = "";
                    string             strUser          = "";
                    string             strPassword      = "";
                    string[]           strRubriques     = strConnexion.Split(';');
                    foreach (string strRubrique in strRubriques)
                    {
                        string[] strData = strRubrique.Split('=');
                        if (strData.Length == 2)
                        {
                            string strCle = strData[0].ToUpper().Trim();
                            if (strCle == "DATA SOURCE")
                            {
                                strDatabase = strData[1].Trim();
                            }
                            if (strCle == "USER ID")
                            {
                                strUser = strData[1].Trim();
                            }
                            if (strCle == "PASSWORD")
                            {
                                strPassword = strData[1].Trim();
                            }
                        }
                    }
                    if (strDatabase == "" || strUser == "" || strPassword == "")
                    {
                        result.EmpileErreur(I.T("Can not parse connexion string|20002"));
                        return(result);
                    }

                    string strConnexionOracle = strUser + "/" + strPassword + "@" + strDatabase;
                    mibModuleWrapper.Init(strConnexionOracle, proxy.NomFichierLocal,
                                          mibModule.NomModuleUtilisateur, Convert.ToInt32(mibModule.Id));

                    int nResult = mibModuleWrapper.Compile();
                    if (nResult < 0)
                    {
                        result.EmpileErreur(I.T("Failed to compile mib module @1|20003", mibModule.NomModuleOfficiel));
                        string strMess;
                        while ((strMess = mibModuleWrapper.GetNextErrMess()) != "")
                        {
                            result.EmpileErreur(strMess);
                        }

                        if (mibModuleWrapper.AreCompileErrors())
                        {
                            result.EmpileErreur(mibModuleWrapper.GetCompileErrors());
                        }

                        if (mibModuleWrapper.AreCompileLogs())
                        {
                            result.EmpileErreur(mibModuleWrapper.GetCompileLogs());
                        }

                        return(result);
                    }
                    else
                    {
                        List <IDonneeNotification> notifs = new List <IDonneeNotification>();
                        notifs.Add(new CDonneeNotificationAjoutEnregistrement(m_nIdSession, CSpvMibmodule.c_nomTable));
                        notifs.Add(new CDonneeNotificationAjoutEnregistrement(m_nIdSession, CSpvMibobj.c_nomTable));
                        CEnvoyeurNotification.EnvoieNotifications(notifs.ToArray());
                    }
                }
            }
            return(result);
        }
예제 #12
0
        private void AffecterMibmodule(int typeqId, int moduleId)
        {
            Console.WriteLine("Affectation d'un module MIB à un type d'équipemnt");
            CSpvMibmodule mib = new CSpvMibmodule(m_contexteDonnees);

            Console.WriteLine("lecture du module MIB");
            Assert.IsTrue(mib.ReadIfExists(new CFiltreData(CSpvMibmodule.c_champMIBMODULE_ID + "=@1", moduleId)));



            CSpvTypeq typeq = new CSpvTypeq(m_contexteDonnees);

            Assert.IsTrue(typeq.ReadIfExists(new CFiltreData(CSpvTypeq.c_champSmtTypeEquipement_Id + "=@1", typeqId)));

            int nSpvTypeqId = typeq.Id;

            CSpvTypeq_Mibmodule typeqMib = new CSpvTypeq_Mibmodule(m_contexteDonnees);

            CFiltreData filtre = new CFiltreData(CSpvTypeq_Mibmodule.c_champMIBMODULE_ID + "=@1", moduleId);

            filtre = CFiltreData.GetAndFiltre(filtre, new CFiltreData(CSpvTypeq_Mibmodule.c_champTYPEQ_ID + "=@1", nSpvTypeqId));

            if (!typeqMib.ReadIfExists(filtre))
            {
                typeqMib.CreateNewInCurrentContexte(new object[] { nSpvTypeqId, moduleId });
            }

            CResultAErreur result = CResultAErreur.True;

            Console.WriteLine("vérification des donnéees");
            result = typeqMib.VerifieDonnees(false);
            if (!result)
            {
                System.Console.WriteLine(result.MessageErreur);
            }
            Assert.IsTrue(result.Result);

            Console.WriteLine("des donneest");
            m_contexteDonnees.SaveAll(true);
            if (!result)
            {
                System.Console.WriteLine(result.MessageErreur);
            }

            Assert.IsTrue(result.Result);



            CSpvTypeq typeq_test = new CSpvTypeq(m_contexteDonnees);

            Assert.IsTrue(typeq_test.ReadIfExists(new CFiltreData(CSpvTypeq.c_champSmtTypeEquipement_Id + "=@1", typeqId)));
            bool bFind = false;

            foreach (CSpvTypeq_Mibmodule module in typeq_test.TypeqModulesMIB)
            {
                if (module.SpvMibmodule.Id == moduleId)
                {
                    bFind = true;
                }
            }

            Assert.IsTrue(bFind);
        }
예제 #13
0
        public void InsérerMibEnGed(int nModuleId)
        {
            CSpvMibmodule module = new CSpvMibmodule(m_contexteDonnees);

            Console.WriteLine("Lecture du module MIB");
            Assert.IsTrue(module.ReadIfExists(nModuleId));
            CResultAErreur result = CResultAErreur.True;

            if (File.Exists(module.FichierModule))
            {
                Console.WriteLine("le fichier existe");

                CDocumentGED doc   = module.DocumentGEDModuleMib;
                CProxyGED    proxy = new CProxyGED(m_contexteDonnees.IdSession,
                                                   doc == null ? null : doc.ReferenceDoc);
                proxy.AttacheToLocal(module.FichierModule);
                result = proxy.UpdateGed();
                if (result)
                {
                    if (doc == null)
                    {
                        Console.WriteLine("doc null :création d'un nouveau document GED");
                        doc = new CDocumentGED(m_contexteDonnees);
                        doc.CreateNewInCurrentContexte();
                        doc.Descriptif   = "";
                        doc.DateCreation = DateTime.Now;


                        doc.Libelle      = "MIB file " + module.NomModuleUtilisateur;
                        doc.ReferenceDoc = (CReferenceDocument)result.Data;
                        doc.DateMAJ      = DateTime.Now;
                        doc.NumVersion++;
                        doc.IsFichierSysteme        = true;
                        module.DocumentGEDModuleMib = doc;
                    }
                }



                Console.WriteLine("vérification des donnéees");
                result = module.VerifieDonnees(false);
                if (!result)
                {
                    System.Console.WriteLine(result.MessageErreur);
                }
                Assert.IsTrue(result.Result);

                Console.WriteLine("enregistrement des donnéées");
                m_contexteDonnees.SaveAll(true);
                if (!result)
                {
                    System.Console.WriteLine(result.MessageErreur);
                }

                Assert.IsTrue(result.Result);


                int nDocId = doc.Id;

                CDocumentGED doctest = new CDocumentGED(m_contexteDonnees);
                Console.WriteLine("lecture du document GED");
                Assert.IsTrue(doctest.ReadIfExists(nDocId));

                Console.WriteLine(doctest.Id);
                Console.WriteLine(doctest.Libelle);
            }
        }
예제 #14
0
        public int CreerMibModule(int familleId, string nomUtil, string nomOfficiel, string nomfichiermib)
        {
            CSpvFamilleMibmodule famille = new CSpvFamilleMibmodule(m_contexteDonnees);

            Console.WriteLine("lecture de la famille de modules MIB");
            Assert.IsTrue(famille.ReadIfExists(familleId));

            CSpvMibmodule module = new CSpvMibmodule(m_contexteDonnees);



            Console.WriteLine("création d'un module MIB");
            if (!module.ReadIfExists(new CFiltreData(CSpvMibmodule.c_champMIBMODULE_NOM + "=@1", nomUtil)))
            {
                module.CreateNewInCurrentContexte();

                /*  module.NomModuleUtilisateur = nomUtil;
                 * module.FichierModule = nomfichiermib;
                 * module.NomModuleOfficiel = nomOfficiel;
                 * module.FamilleMere = famille;*/
            }
            else
            {
                Console.WriteLine("le module MIB à créer existe déjà");
            }

            module.NomModuleUtilisateur = nomUtil;
            module.FichierModule        = nomfichiermib;
            module.NomModuleOfficiel    = nomOfficiel;
            module.FamilleMere          = famille;

            Console.WriteLine("enregistremnt du module MIB");
            CResultAErreur result = CResultAErreur.True;

            Console.WriteLine("vérification des donnéees");
            result = module.VerifieDonnees(false);
            if (!result)
            {
                System.Console.WriteLine(result.MessageErreur);
            }
            Assert.IsTrue(result.Result);

            Console.WriteLine("enregistrement des donnéées");
            m_contexteDonnees.SaveAll(true);
            if (!result)
            {
                System.Console.WriteLine(result.MessageErreur);
            }

            Assert.IsTrue(result.Result);


            CSpvMibmodule mibtest = new CSpvMibmodule(m_contexteDonnees);

            Console.WriteLine("vérification de la création du module MIB");
            Assert.IsTrue(mibtest.ReadIfExists(new CFiltreData(CSpvMibmodule.c_champMIBMODULE_ID + "=@1", module.Id)));
            Console.WriteLine("vérification du nom utilisateur");
            Assert.IsTrue(mibtest.NomModuleUtilisateur == nomUtil);

            Console.WriteLine("vérification du nom du fichier");
            Assert.IsTrue(mibtest.FichierModule == nomfichiermib);



            return(module.Id);
        }