Esempio n. 1
0
        //-----------------------------------------------------------------------------------------
        /// <summary>
        ///
        /// </summary>
        /// <param name="strQowisioId"></param>
        /// <param name="contexte"></param>
        /// <returns></returns>
        public static CResultAErreur GetEquipementLogiqueFromQowisioId(string strQowisioId, CContexteDonnee contexte)
        {
            CResultAErreur result = CResultAErreur.True;

            CFiltreData filtre = new CFiltreDataAvance(
                CEquipementLogique.c_nomTable,
                CRelationEquipementLogique_ChampCustom.c_nomTable + "." +
                CChampCustom.c_nomTable + "." + CChampCustom.c_champId + " = @1 AND " +
                CRelationEquipementLogique_ChampCustom.c_nomTable + "." +
                CRelationEquipementLogique_ChampCustom.c_champValeurString + " = @2",
                c_nIdChampTimosQowisioId,
                strQowisioId);

            try
            {
                CEquipementLogique equipementLogiqueQowisio = new CEquipementLogique(contexte);
                if (equipementLogiqueQowisio.ReadIfExists(filtre))
                {
                    result.Data = equipementLogiqueQowisio;
                    return(result);
                }
            }
            catch (Exception e)
            {
                C2iEventLog.WriteErreur("Error in GetEquipementLogiqueFromQowisioId : " + e.Message);
                result.EmpileErreur(e.Message);
                return(result);
            }

            return(result);
        }
        void m_lnkLinkToLogique_LinkClicked(object sender, System.Windows.Forms.LinkLabelLinkClickedEventArgs e)
        {
            if (Equipement == null)
            {
                return;
            }

            if (Equipement.EmplacementSite == null)
            {
                CFormAlerte.Afficher(I.T("Equipment should be in a site|20081"));
                return;
            }

            CEquipementLogique eqptLogique = CFormSelectUnObjetDonnee.SelectionRechercheRapide(
                I.T("Select logical equipment to link|20733"),
                typeof(CEquipementLogique),
                new CFiltreData(CSite.c_champId + "=@1", Equipement.EmplacementSite.Id),
                "",
                "Libelle", "") as CEquipementLogique;

            if (eqptLogique != null)
            {
                Equipement.EquipementLogique = eqptLogique;
                InitChamps(Equipement);
            }
            m_lnkCreateNewLogique.Visible = EquipementLogique == null;
        }
Esempio n. 3
0
        //-----------------------------------------------------------------------------------------
        public static int?TrouveAssociationIdFuelProbe_IdEquipement(string strIdFuelProbe, CContexteDonnee contexte)
        {
            int nIdEquipementPhysique = -1;

            if (strIdFuelProbe != "")
            {
                lock (typeof(CLockerCacheDatasQowisio))
                {
                    if (s_dicCacheFuelProbeId_EquipementId.TryGetValue(strIdFuelProbe, out nIdEquipementPhysique))
                    {
                        return(nIdEquipementPhysique);
                    }
                    else
                    {
                        CResultAErreur result = GetEquipementLogiqueFromQowisioId(strIdFuelProbe, contexte);
                        if (result)
                        {
                            CEquipementLogique logicalFuelProbe = result.Data as CEquipementLogique;
                            if (logicalFuelProbe != null)
                            {
                                CEquipement tank = logicalFuelProbe.GetValeurChamp(c_nIdChampTimosFuelProbeAssociatedTank) as CEquipement;
                                if (tank != null)
                                {
                                    nIdEquipementPhysique = tank.Id;
                                    s_dicCacheFuelProbeId_EquipementId[strIdFuelProbe] = nIdEquipementPhysique;
                                    return(nIdEquipementPhysique);
                                }
                            }
                        }
                    }
                }
            }
            return(null);
        }
Esempio n. 4
0
 public CNoeudDeGrapheReseauEquipement GetNoeudForEquipement(CEquipementLogique equipement, CSchemaReseau schema)
 {
     if (equipement == null || schema == null)
     {
         return(null);
     }
     return(m_baseNoeuds.GetObjet(typeof(CNoeudDeGrapheReseauEquipement), equipement.Id, schema.Id) as CNoeudDeGrapheReseauEquipement);
 }
 //-------------------------------------------------------
 public void OnChangeTypeEquipementLogique(CEquipementLogique equipementLogique)
 {
     if (equipementLogique != null && equipementLogique.Equals(EquipementLogique))
     {
         if (Equipement != null && Equipement.IsNew())
         {
             m_selectTypeEquipement.ElementSelectionne = equipementLogique.TypeEquipement;
         }
     }
 }
Esempio n. 6
0
        public override IElementDeSchemaReseau GetElementAssocie(CContexteDonnee contexte)
        {
            CEquipementLogique eqpt = new CEquipementLogique(contexte);

            if (eqpt.ReadIfExists(IdEquipement))
            {
                return(eqpt);
            }
            return(null);
        }
        //------------------------------------------------------------------------------------
        /// <summary>
        /// Assure l'exostance d'un Host partir des données fournies.
        /// Créé l'équipemtn logique du bon type si le Host n'existe pas
        /// </summary>
        /// <param name="strHostId"></param>
        /// <param name="strType"></param>
        /// <param name="strName"></param>
        /// <returns></returns>
        private static CResultAErreur AssureHostExiste(string strHostId, string strType, string strName, CContexteDonnee contexte)
        {
            CResultAErreur result = CResultAErreur.True;
            // Vérifie si le host existe ans Timos

            CTypeEquipement typeEquipement = new CTypeEquipement(contexte);

            result = CCamusatQowisioData.GetEquipementLogiqueFromQowisioId(strHostId, contexte);
            if (!result)
            {
                return(result);
            }
            CEquipementLogique qowisioBox = result.Data as CEquipementLogique;

            if (strType == "SITE" && typeEquipement.ReadIfExists(CCamusatQowisioData.c_nIdTypeEquipementQowisioVirtualSite))
            {
                // C'est trouvé, rien à faire de plus
            }
            else if (strType == "PICKUP" && typeEquipement.ReadIfExists(CCamusatQowisioData.c_nIdTypeEquipementQowisioBoxVehicule))
            {
                // Trouvé
            }
            else
            {
                result.EmpileErreur("No Equipment Type found for Host Id : " + strHostId);
                return(result);
            }

            if (qowisioBox == null)
            {
                // Créer un nouvel equipement logique Timos
                CSite siteAwaitingElements = new CSite(contexte);
                if (siteAwaitingElements.ReadIfExists(CCamusatQowisioData.c_nIdSiteQowisionAwaitingElements))
                {
                    qowisioBox = new CEquipementLogique(contexte);
                    qowisioBox.CreateNewInCurrentContexte();
                    qowisioBox.TypeEquipement = typeEquipement;
                    qowisioBox.Site           = siteAwaitingElements;
                    qowisioBox.SetValeurChamp(CCamusatQowisioData.c_nIdChampTimosQowisioId, strHostId);
                    qowisioBox.Libelle = strName;
                }
                else
                {
                    result.EmpileErreur("No Site found for awaiting elements. Host Id :  " + strHostId);
                    return(result);
                }
            }
            else
            {
                qowisioBox.TypeEquipement = typeEquipement;
            }

            result.Data = qowisioBox;
            return(result);
        }
        //--------------------------------------------------
        public CResultAErreur InitChamps(CEquipementLogique eqptLogique)
        {
            CResultAErreur result = CResultAErreur.True;

            m_equipementLogique = eqptLogique;
            CListeObjetsDonnees lstEquipements = eqptLogique.Equipements;

            if (lstEquipements.Count == 1)
            {
                m_equipement = lstEquipements[0] as CEquipement;
            }
            else
            {
                m_equipement = null;
            }


            m_panelMonoEquipement.Visible    = Equipement != null;
            m_panelMonoEquipement.Dock       = Equipement != null?DockStyle.Fill:DockStyle.None;
            m_panelListeEquipements.Visible  = lstEquipements.Count > 1;
            m_panelListeEquipements.Dock     = lstEquipements.Count > 1?DockStyle.Fill:DockStyle.None;
            m_lnkCreateNewEquipement.Visible = lstEquipements.Count == 0;


            if (Equipement != null)
            {
                result = m_extLinkField.FillDialogFromObjet(Equipement);
                if (!result)
                {
                    return(result);
                }
                m_selectTypeEquipement.Init <CTypeEquipement>(
                    "Libelle",
                    false);
                m_selectTypeEquipement.ElementSelectionne = Equipement.TypeEquipement;
                m_panelFormulaire.ElementEdite            = Equipement;
                m_cmbStatut.Init(typeof(CStatutEquipement), "Libelle", false);
                m_cmbStatut.ElementSelectionne = Equipement.Statut;
                m_panelOccupation.Init(Equipement);
                m_controleCoordonnee.Init(Equipement.ConteneurFilsACoordonnees, Equipement);
            }
            else
            {
                if (lstEquipements.Count > 1)
                {
                    m_panelListeEquipements.InitFromListeObjets(
                        EquipementLogique.Equipements,
                        typeof(CEquipement),
                        EquipementLogique,
                        "EquipementLogique");
                }
            }
            return(result);
        }
Esempio n. 9
0
        public static bool RefreshFromSNMP(object obj)
        {
            CEquipementLogique eqpt = obj as CEquipementLogique;

            if (eqpt == null)
            {
                return(false);
            }
            CSpvEquip eqptSpv = CSpvEquip.GetObjetSpvFromObjetTimos(eqpt);

            if (eqptSpv == null)
            {
                return(false);
            }
            string strIP         = eqptSpv.AdresseIP;
            string strCommunaute = eqptSpv.CommunauteSnmp;

            CChampCustom[] lstChamps           = eqpt.TousLesChamps;
            string         strOldContexteModif = eqpt.ContexteDonnee.IdModificationContextuelle;;

            eqpt.ContexteDonnee.IdModificationContextuelle = CSpvChampCustomSNMP.c_contexteModificationRefreshFromSNMP;
            IRequeteSNMPServeur requeteurServeur = C2iFactory.GetNewObjetForSession("CRequeteSNMPServeur", typeof(IRequeteSNMPServeur), eqpt.ContexteDonnee.IdSession) as IRequeteSNMPServeur;

            foreach (CChampCustom champ in lstChamps)
            {
                CSpvChampCustomSNMP champSNMP = CSpvChampCustomSNMP.GetObjetSpvFromObjetTimos(champ);
                if (champSNMP != null && champSNMP.OID != null && champSNMP.OID.Length > 0 &&
                    champSNMP.FormuleIndex != null)
                {
                    CContexteEvaluationExpression ctxFormule = new CContexteEvaluationExpression(eqpt);
                    CResultAErreur result = champSNMP.FormuleIndex.Eval(ctxFormule);
                    if (result)
                    {
                        try
                        {
                            int             nIndex  = Convert.ToInt32(result.Data);
                            string          strOid  = champSNMP.OID + "." + nIndex.ToString();
                            CRequeteSnmpOID requete = new CRequeteSnmpOID(strIP, strCommunaute, strOid);
                            result = requeteurServeur.GetValue(requete);
                            if (result)
                            {
                                eqpt.SetValeurChamp(champ, result.Data);
                            }
                        }
                        catch {}
                    }
                }
            }
            eqpt.ContexteDonnee.IdModificationContextuelle = strOldContexteModif;
            return(true);
        }
Esempio n. 10
0
        private void InitControles()
        {
            if (m_bIsInit)
            {
                return;
            }
            m_panelChamps.ElementEdite = m_entiteEditee;
            m_lastSite       = m_entiteEditee.SiteSupervise;
            m_lastEquipement = m_entiteEditee.EquipementLogiqueSupervise;
            m_lastLien       = m_entiteEditee.LienReseauSupervise;
            InitZoneSelectionEntite();

            m_bIsInit = true;
        }
Esempio n. 11
0
        private static CSpvEquip GetSpvEquip(DataRow row)
        {
            CSpvEquip          spvEquip;
            CEquipementLogique equipement = new CEquipementLogique(row);

            if (equipement.Site != null)
            {
                spvEquip = CSpvEquip.GetSpvEquipFromEquipement(equipement) as CSpvEquip;
                if (spvEquip == null)
                {
                    spvEquip = CSpvEquip.GetSpvEquipFromEquipementAvecCreation(equipement);
                }
                spvEquip.CopyFromObjetTimos(equipement);
                return(spvEquip);
            }
            return(null);
        }
        internal override void InitFromElementDeSchema(CElementDeSchemaReseau elementDeSchema)
        {
            base.InitFromElementDeSchema(elementDeSchema);
            CEquipementLogique eqtLogique = elementDeSchema.EquipementLogique;

            if (eqtLogique == null)  //Ca ne doit jamais arriver
            {
                throw new Exception("Bad element for supervision data ");
            }
            m_dbKeyEquipement = eqtLogique.DbKey;
            m_dicEquipementsConcernant[eqtLogique.DbKey] = true;
            CDonneeDessinElementDeSchemaReseau donneeDessin = elementDeSchema.DonneeDessin as CDonneeDessinElementDeSchemaReseau;

            if (donneeDessin != null && donneeDessin.CollectChildsAlarms)
            {
                SoitConcernePar(eqtLogique.EquipementsLogiquesContenus);
            }
        }
        internal override void InitFromElementDeSchema(CElementDeSchemaReseau elementDeSchema)
        {
            base.InitFromElementDeSchema(elementDeSchema);
            CEquipementLogique eqtLogique = elementDeSchema.EquipementLogique;

            if (eqtLogique == null)  //Ca ne doit jamais arriver
            {
                throw new Exception("Bad element for supervision data ");
            }
            CSpvEquip equip = CSpvEquip.GetObjetSpvFromObjetTimos(eqtLogique);

            if (equip != null)
            {
                m_dicEquipementsSpvConcernant[equip.Id] = true;
                m_nIdEquipementSpv = equip.Id;
            }
            CDonneeDessinElementDeSchemaReseau donneeDessin = elementDeSchema.DonneeDessin as CDonneeDessinElementDeSchemaReseau;

            if (donneeDessin != null && donneeDessin.CollectChildsAlarms)
            {
                SoitConcernePar(eqtLogique.EquipementsLogiquesContenus);
            }
        }
        //-----------------------------------------------------
        public CResultAErreur InitChamps(CEquipement equipement)
        {
            CResultAErreur result = CResultAErreur.True;

            if (equipement == null)
            {
                return(result);
            }
            m_equipement = equipement;
            if (m_gestionnaireModeEdition.ModeEdition)
            {
                if (m_equipement.IsNew() && m_equipement.TypeEquipement != null &&
                    m_equipement.TypeEquipement.CreationAutomatiqueEquipementLogique &&
                    m_equipement.TypeEquipement != null)
                {
                    //m_equipement.CreateEquipementLogiqueAutomatiqueInContexte();
                }
            }
            m_equipementLogique = m_equipement.EquipementLogique;
            if (EquipementLogique == null)
            {
                m_panelDonnees.Visible = false;
            }
            else
            {
                m_panelDonnees.Visible = true;
                m_extLinkField.FillDialogFromObjet(EquipementLogique);
                m_selectTypeEquipement.Init <CTypeEquipement>(
                    "Libelle",
                    false);
                m_selectTypeEquipement.ElementSelectionne = EquipementLogique.TypeEquipement;
                m_panelFormulaire.ElementEdite            = EquipementLogique;
            }
            m_lnkCreateNewLogique.Visible = EquipementLogique == null;

            return(CResultAErreur.True);
        }
Esempio n. 15
0
        public static int?TrouveAssociationIdHost_IdSite(string strHostId, CContexteDonnee contexte)
        {
            int nIdSite = -1;

            if (strHostId != "")
            {
                lock (typeof(CLockerCacheDatasQowisio))
                {
                    if (s_dicCacheHostId_SiteId.TryGetValue(strHostId, out nIdSite))
                    {
                        return(nIdSite);
                    }
                    else
                    {
                        CResultAErreur result = GetEquipementLogiqueFromQowisioId(strHostId, contexte);
                        if (!result)
                        {
                            return(null);
                        }
                        CEquipementLogique qowisioBox = result.Data as CEquipementLogique;
                        if (qowisioBox != null)
                        {
                            // Recherche le Pickup correspondant
                            CSite site = qowisioBox.Site;
                            if (site != null && site.Id != c_nIdSiteQowisionAwaitingElements)
                            {
                                nIdSite = site.Id;
                                s_dicCacheHostId_SiteId[strHostId] = nIdSite;
                                return(nIdSite);
                            }
                        }
                    }
                }
            }

            return(null);
        }
        //------------------------------------------------------------------------------------
        /// <summary>
        ///
        /// </summary>
        /// <param name="fichierXml"></param>
        /// <param name="contexte"></param>
        /// <returns></returns>
        private static CResultAErreur TraiteInventaireQowisio(XmlNode nodeInventory, CContexteDonnee contexte)
        {
            CResultAErreur result = CResultAErreur.True;

            if (nodeInventory != null)
            {
                XmlNode nodeHosts = nodeInventory.FirstChild;
                if (nodeHosts != null)
                {
                    foreach (XmlNode nodeHost in nodeHosts.ChildNodes)
                    {
                        // Traitement du Host
                        string strHostId   = nodeHost.SelectSingleNode("host_id").InnerText;
                        string strHostType = nodeHost.SelectSingleNode("type").InnerText;
                        string strHostName = nodeHost.SelectSingleNode("name").InnerText;

                        result = AssureHostExiste(strHostId, strHostType, strHostName, contexte);
                        if (!result)
                        {
                            result.EmpileErreur("Error in AssureHostExiste fo host : " + strHostId + " - " + strHostName);
                            return(result);
                        }
                        else
                        {
                            CEquipementLogique parentHost = result.Data as CEquipementLogique;
                            if (parentHost == null)
                            {
                                result.EmpileErreur("Parent Host is null");
                                return(result);
                            }
                            // Traitement des sondes
                            XmlNode nodeProbes = nodeHost.SelectSingleNode("FuelProbes");
                            foreach (XmlNode nodeProbe in nodeProbes.ChildNodes)
                            {
                                string strFuelProbeId    = nodeProbe.SelectSingleNode("FuelProbe_id").InnerText;
                                string strTankShape      = nodeProbe.SelectSingleNode("TankShape").InnerText;
                                string strTankDimensions = nodeProbe.SelectSingleNode("TankDimensions").InnerText;
                                string strTankCapacity   = nodeProbe.SelectSingleNode("TankCapacity").InnerText;
                                string strFuelProbeType  = nodeProbe.SelectSingleNode("FuelProbeType").InnerText;

                                result = AssureProbeExiste(
                                    parentHost,
                                    strFuelProbeId,
                                    strTankShape,
                                    strTankDimensions,
                                    strTankCapacity,
                                    strFuelProbeType,
                                    contexte);
                                if (!result)
                                {
                                    result.EmpileErreur("Error in AssureProbeExiste fo Probe : " + strFuelProbeId + " - " + strFuelProbeType);
                                    return(result);
                                }
                            }
                        }
                    }
                }
                else
                {
                    result.EmpileErreur("XML node <hosts> not found in file : " + nodeInventory.Name);
                    return(result);
                }
            }
            else
            {
                result.EmpileErreur("XML node <inventory> not found");
                return(result);
            }


            return(result);
        }
Esempio n. 17
0
        /// <summary>
        /// Calcule un graphe pour un schéma donné
        /// </summary>
        /// <param name="schema"></param>
        /// <param name="sens"></param>
        /// <returns></returns>
        public CResultAErreur CalculeGraphe(
            CSchemaReseau schema,
            ESensAllerRetourLienReseau?sens)
        {
            CResultAErreur result = CResultAErreur.True;

            m_baseDeGraphes.AddGrapheReseau(schema.Id, sens, this);
            m_sensGraphe            = sens;
            m_nIdSchemaReseauRacine = schema.Id;
            m_baseLiens.Clear();
            m_baseNoeuds.Clear();
            m_dicSuccesseurs.Clear();
            m_dicPredecesseurs.Clear();
            Dictionary <int, CNoeudDeGrapheReseauSite>       dicIdSiteToNoeud       = new Dictionary <int, CNoeudDeGrapheReseauSite>();
            Dictionary <int, CNoeudDeGrapheReseauEquipement> dicIdEquipementToNoeud = new Dictionary <int, CNoeudDeGrapheReseauEquipement>();

            foreach (CElementDeSchemaReseau elt in schema.ElementsDeSchema)//Ne prend que les éléments de premier niveau
            {
                CSite site = elt.ElementAssocie as CSite;
                if (site != null)
                {
                    CNoeudDeGrapheReseauSite noeud = new CNoeudDeGrapheReseauSite(site.Id, schema.Id, elt.IsCableALinterieur);
                    if (!m_baseNoeuds.Contains(noeud))
                    {
                        if (IntegreNoeud == null || IntegreNoeud(noeud))
                        {
                            m_baseNoeuds.Add(noeud);
                            dicIdSiteToNoeud[site.Id] = noeud;
                        }
                    }
                }
                else
                {
                    CEquipementLogique eqpt = elt.ElementAssocie as CEquipementLogique;
                    if (eqpt != null)
                    {
                        CNoeudDeGrapheReseauEquipement noeud = new CNoeudDeGrapheReseauEquipement(eqpt.Id, schema.Id);
                        if (!m_baseNoeuds.Contains(noeud))
                        {
                            if (IntegreNoeud == null || IntegreNoeud(noeud))
                            {
                                m_baseNoeuds.Add(noeud);
                                dicIdEquipementToNoeud[eqpt.Id] = noeud;
                            }
                        }
                    }
                }
            }

            Dictionary <int, CGrapheReseau> dicGraphesCalcules = new Dictionary <int, CGrapheReseau>();

            foreach (CElementDeSchemaReseau elt in schema.GetElementsForType <CLienReseau>())
            {
                if (elt.SchemaReseau.Id == schema.Id) //Ne prend pas les sous schémas
                {
                    CLienReseau lien = elt.ElementAssocie as CLienReseau;
                    if (lien != null)
                    {
                        if (m_sensGraphe != null)
                        {
                            CDonneeDessinLienDeSchemaReseau donneeDessin = elt.DonneeDessin as CDonneeDessinLienDeSchemaReseau;
                            if (donneeDessin == null)
                            {
                                continue;
                            }
                            if (m_sensGraphe.Value != donneeDessin.Forward_Backward)
                            {
                                continue;
                            }
                        }
                        EDirectionLienReseau[] directions = new EDirectionLienReseau[]
                        {
                            EDirectionLienReseau.UnVersDeux,
                            EDirectionLienReseau.DeuxVersUn
                        };
                        foreach (EDirectionLienReseau direction in directions)
                        {
                            if (direction == lien.Direction.Code || lien.Direction == EDirectionLienReseau.Bidirectionnel)
                            {
                                int nSigne = direction == EDirectionLienReseau.UnVersDeux ? 1 : -1;
                                IElementALiensReseau elt1    = null;
                                IElementALiensReseau elt2    = null;
                                CCheminLienReseau    chemin1 = null;
                                CCheminLienReseau    chemin2 = null;
                                if (direction == EDirectionLienReseau.UnVersDeux)
                                {
                                    elt1    = lien.Element1;
                                    chemin1 = elt.RacineChemin1;
                                    elt2    = lien.Element2;
                                    chemin2 = elt.RacineChemin2;
                                }
                                else if (direction == EDirectionLienReseau.DeuxVersUn)
                                {
                                    elt1    = lien.Element2;
                                    chemin1 = elt.RacineChemin2;
                                    elt2    = lien.Element1;
                                    chemin2 = elt.RacineChemin2;
                                }
                                if (!(elt1 is CSite) && !(elt1 is CEquipementLogique))
                                {
                                    elt1 = null;
                                }
                                if (!(elt2 is CSite) && !(elt2 is CEquipementLogique))
                                {
                                    elt2 = null;
                                }
                                if (elt1 != null && elt2 != null)
                                {
                                    CNoeudDeGrapheReseau noeud1 = null;
                                    if (chemin1 != null)
                                    {
                                        result = GetNoeudDansSousSchema(elt1, chemin1);//Result testé ensuite avec noeud1 = null;
                                        noeud1 = result.Data as CNoeudDeGrapheReseau;
                                    }
                                    else
                                    {
                                        if (elt1 is CSite)
                                        {
                                            CNoeudDeGrapheReseauSite noeudSite = null;
                                            dicIdSiteToNoeud.TryGetValue(elt1.Id, out noeudSite);
                                            noeud1 = noeudSite;
                                        }
                                        else if (elt1 is CEquipementLogique)
                                        {
                                            CNoeudDeGrapheReseauEquipement noeudEqpt = null;
                                            dicIdEquipementToNoeud.TryGetValue(elt1.Id, out noeudEqpt);
                                            noeud1 = noeudEqpt;
                                        }
                                    }
                                    if (noeud1 == null)
                                    {
                                        result.EmpileErreur(I.T("Can not find link @1 extremity|20043", lien.Libelle));
                                        return(result);
                                    }

                                    CNoeudDeGrapheReseau noeud2 = null;
                                    if (chemin2 != null)
                                    {
                                        result = GetNoeudDansSousSchema(elt2, chemin2);//Result testé ensuite avec noeud2= null;
                                        noeud2 = result.Data as CNoeudDeGrapheReseau;
                                    }
                                    else
                                    {
                                        if (elt2 is CSite)
                                        {
                                            CNoeudDeGrapheReseauSite noeudSite = null;
                                            dicIdSiteToNoeud.TryGetValue(elt2.Id, out noeudSite);
                                            noeud2 = noeudSite;
                                        }
                                        else if (elt2 is CEquipementLogique)
                                        {
                                            CNoeudDeGrapheReseauEquipement noeudEquip = null;
                                            dicIdEquipementToNoeud.TryGetValue(elt2.Id, out noeudEquip);
                                            noeud2 = noeudEquip;
                                        }
                                    }
                                    if (noeud2 == null)
                                    {
                                        result.EmpileErreur(I.T("Can not find link @1 extremity|20043", lien.Libelle));
                                        return(result);
                                    }

                                    CLienDeGrapheReseau lienDeGraphe = m_baseLiens.GetObjet(typeof(CLienDeGrapheReseau), nSigne * lien.Id, schema.Id);
                                    if (lienDeGraphe == null)
                                    {
                                        CEtapesExtremiteLienDeGraphe etapes1 = null;
                                        if (chemin1 != null)
                                        {
                                            etapes1 = new CEtapesExtremiteLienDeGraphe(chemin1);
                                        }
                                        CEtapesExtremiteLienDeGraphe etapes2 = null;
                                        if (chemin2 != null)
                                        {
                                            etapes2 = new CEtapesExtremiteLienDeGraphe(chemin2);
                                        }

                                        lienDeGraphe = new CLienDeGrapheReseau(
                                            nSigne * lien.Id,
                                            schema.Id,
                                            noeud1,
                                            noeud2,
                                            etapes1,
                                            etapes2);
                                        if (IntegreLiaison == null || IntegreLiaison(lienDeGraphe))
                                        {
                                            m_baseLiens.Add(lienDeGraphe);
                                            m_dicSuccesseurs.AddSuccesseur(noeud1, lienDeGraphe);
                                            m_dicPredecesseurs.AddPredecesseur(noeud2, lienDeGraphe);
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
            return(result);
        }
Esempio n. 18
0
        //----------------------------------------------------
        /// <summary>
        /// Remplit ou met à jour l'alarme à partir de données
        /// issues d'un service de médiation
        /// </summary>
        /// <param name="alarme"></param>
        public void FillFromLocalAlarmeFromMediation(CLocalAlarme alarme)
        {
            Libelle   = alarme.Libelle;
            Cle       = alarme.GetKey();
            AlarmId   = alarme.Id;
            EtatCode  = (int)alarme.EtatCode;
            DateDebut = alarme.DateDebut;
            DateFin   = alarme.DateFin;
            CTypeAlarme ta = new CTypeAlarme(ContexteDonnee);

            if (ta.ReadIfExists(Int32.Parse(alarme.TypeAlarme.Id)))
            {
                TypeAlarme = ta;
            }
            else
            {
                throw new Exception(I.T("Alarm type @1 doesn't exists|20104", alarme.TypeAlarme.Libelle));
            }

            Site = null;
            EquipementLogique = null;
            LienReseau        = null;
            EntiteSnmp        = null;
            //Site
            if (alarme.SiteId != null)
            {
                /*int? nId = CDbKeyAddOn.GetIdFromUniverselId(typeof(CSite), alarme.SiteId);
                 * if (nId != null)
                 *  Row[CSite.c_champId] = nId.Value;*/
                CSite site = new CSite(ContexteDonnee);
                if (site.ReadIfExists(alarme.SiteId))
                {
                    Site = site;
                }
            }
            if (alarme.EquipementId != null)
            {
                /*int? nId = CDbKeyAddOn.GetIdFromUniverselId(typeof(CEquipementLogique), alarme.EquipementId);
                 * if (nId != null)
                 *  Row[CEquipementLogique.c_champId] = nId.Value;*/
                CEquipementLogique eqt = new CEquipementLogique(ContexteDonnee);
                if (eqt.ReadIfExists(alarme.EquipementId))
                {
                    EquipementLogique = eqt;
                }
            }
            if (alarme.LienId != null)
            {
                /*int? nId = CDbKeyAddOn.GetIdFromUniverselId(typeof(CLienReseau), alarme.LienId);
                 * if (nId != null)
                 *  Row[CLienReseau.c_champId] = nId.Value;*/
                CLienReseau lien = new CLienReseau(ContexteDonnee);
                if (lien.ReadIfExists(alarme.LienId))
                {
                    LienReseau = lien;
                }
            }
            if (alarme.EntiteSnmpId != null)
            {
                /*int? nId = CDbKeyAddOn.GetIdFromUniverselId(typeof(CEntiteSnmp), alarme.EntiteSnmpId);
                 * if (nId != null)
                 *  Row[CEntiteSnmp.c_champId] = nId.Value;*/
                CEntiteSnmp entite = new CEntiteSnmp(ContexteDonnee);
                if (entite.ReadIfExists(alarme.EntiteSnmpId))
                {
                    EntiteSnmp = entite;
                }
            }
            IsHS = alarme.IsHS;
            if (alarme.IdSeverite != null)
            {
                CSeveriteAlarme severite = new CSeveriteAlarme(ContexteDonnee);
                if (severite.ReadIfExists(Int32.Parse(alarme.IdSeverite)))
                {
                    Severite = severite;
                }
            }
            if (alarme.MasquagePropre != null)
            {
                CParametrageFiltrageAlarmes parametreFiltre = new CParametrageFiltrageAlarmes(ContexteDonnee);
                if (parametreFiltre.ReadIfExists(Int32.Parse(alarme.MasquagePropre.Id)))
                {
                    MasquagePropre = parametreFiltre;
                }
            }
            else
            {
                MasquagePropre = null;
            }
            foreach (CChampCustom champ in ta.TousLesChampsAssocies)
            {
                object val = alarme.GetValeurChamp(champ.Id.ToString());
                if (val != null)
                {
                    SetValeurChamp(champ.Id, val);
                }
            }
        }
        //-----------------------------------------------------------------------------------------
        /// <summary>
        /// Assure l'existance d'une Fuel Probe partir des données fournies.
        /// Créé l'équipemtn logique du bon type si le Host n'existe pas
        /// </summary>
        /// <param name="strHostId"></param>
        /// <param name="strType"></param>
        /// <param name="strName"></param>
        /// <returns></returns>
        private static CResultAErreur AssureProbeExiste(CEquipementLogique parentQowisioBox, string strProbeId, string strTankShape, string strTankDimensions, string strTankCapacity, string strType, CContexteDonnee contexte)
        {
            CResultAErreur result = CResultAErreur.True;

            if (parentQowisioBox == null)
            {
                result.EmpileErreur("Can not create Qowisio Fuel Probe Id = " + strProbeId + " because parent Qowisio Box is nul");
                return(result);
            }

            result = CCamusatQowisioData.GetEquipementLogiqueFromQowisioId(strProbeId, contexte);
            if (!result)
            {
                return(result);
            }
            CEquipementLogique qowisioFuelProbe = result.Data as CEquipementLogique;

            if (qowisioFuelProbe == null)
            {
                // Créer un nouvel equipement logique Timos
                CSite siteAwaitingElements = new CSite(contexte);
                if (siteAwaitingElements.ReadIfExists(CCamusatQowisioData.c_nIdSiteQowisionAwaitingElements))
                {
                    CTypeEquipement typeEquipement = new CTypeEquipement(contexte);
                    if (typeEquipement.ReadIfExists(CCamusatQowisioData.c_nIdTypeEquipementQowisioFuelProbe))
                    {
                        qowisioFuelProbe = new CEquipementLogique(contexte);
                        qowisioFuelProbe.CreateNewInCurrentContexte();
                        qowisioFuelProbe.TypeEquipement             = typeEquipement;
                        qowisioFuelProbe.EquipementLogiqueContenant = parentQowisioBox;
                        qowisioFuelProbe.Site    = siteAwaitingElements; // Site des equipements logiques en attente d'affectation
                        qowisioFuelProbe.Libelle = "Fuel Probe " + strProbeId;
                        result = qowisioFuelProbe.SetValeurChamp(CCamusatQowisioData.c_nIdChampTimosQowisioId, strProbeId);
                        if (result)
                        {
                            result = qowisioFuelProbe.SetValeurChamp(CCamusatQowisioData.c_nIdChampTimosFuelProbeAssociatedTank, null); // Relation vers Tank
                        }
                        else
                        {
                            return(result);
                        }
                    }
                    else
                    {
                        result.EmpileErreur("No Equipment Type found for Fuel Probe Id : " + strProbeId);
                        return(result);
                    }
                }
                else
                {
                    result.EmpileErreur("No Site found for awaiting elements. Host Id :  " + strProbeId);
                    return(result);
                }
            }
            else
            {
                if (qowisioFuelProbe.EquipementLogiqueContenant != parentQowisioBox)
                {
                    qowisioFuelProbe.EquipementLogiqueContenant = parentQowisioBox;
                    result = qowisioFuelProbe.SetValeurChamp(CCamusatQowisioData.c_nIdChampTimosFuelProbeAssociatedTank, null); // Relation vers Tank
                    if (!result)
                    {
                        return(result);
                    }
                }
            }
            if (qowisioFuelProbe != null)
            {
                //  Maj champs de fuel probe (equipement logique)
                result = qowisioFuelProbe.SetValeurChamp(CCamusatQowisioData.c_nIdChampTimosFuelTankShape, strTankShape);
                if (result)
                {
                    result = qowisioFuelProbe.SetValeurChamp(CCamusatQowisioData.c_nIdChampTimosFuelTankDimensions, strTankDimensions);
                }
                if (result)
                {
                    result = qowisioFuelProbe.SetValeurChamp(CCamusatQowisioData.c_nIdChampTimosFuelTankCapacity, strTankCapacity);
                }
                if (result)
                {
                    result = qowisioFuelProbe.SetValeurChamp(CCamusatQowisioData.c_nIdChampTimosFuelProbeType, strType);
                }

                if (!result)
                {
                    return(result);
                }

                // Maj champs de Tank (equipement physique)
                CEquipement tank = qowisioFuelProbe.GetValeurChamp(CCamusatQowisioData.c_nIdChampTimosFuelProbeAssociatedTank) as CEquipement;
                if (tank != null)
                {
                    result = qowisioFuelProbe.SetValeurChamp(CCamusatQowisioData.c_nIdChampTimosFuelTankShape, strTankShape);
                    if (result)
                    {
                        result = qowisioFuelProbe.SetValeurChamp(CCamusatQowisioData.c_nIdChampTimosFuelTankDimensions, strTankDimensions);
                    }
                    if (result)
                    {
                        result = qowisioFuelProbe.SetValeurChamp(CCamusatQowisioData.c_nIdChampTimosFuelTankCapacity, strTankCapacity);
                    }
                }
            }

            result.Data = qowisioFuelProbe;
            return(result);
        }
Esempio n. 20
0
        /// ////////////////////////////////////////////////////////
        protected override CResultAErreur MyExecute(CContexteExecutionAction contexte)
        {
            CResultAErreur     result  = CResultAErreur.True;
            CFamilleEquipement famille = new CFamilleEquipement(contexte.ContexteDonnee);

            if (!famille.ReadIfExists(m_nIdFamilleEquipement))
            {
                result.EmpileErreur(I.T("Equipment type family @1 doesn't exists|20027", m_nIdFamilleEquipement.ToString()));
                return(result);
            }

            CListeObjetsDonnees lstTypes = new CListeObjetsDonnees(contexte.ContexteDonnee, typeof(CSpvTypeq));

            lstTypes.Filtre = new CFiltreData(CSpvTypeq.c_champSmtTypeEquipement_Id + " is null");
            foreach (CSpvTypeq typeEq in lstTypes.ToArrayList())
            {
                CTypeEquipement type = new CTypeEquipement(contexte.ContexteDonnee);
                type.CreateNewInCurrentContexte();
                type.Libelle             = typeEq.Libelle;
                type.Famille             = famille;
                typeEq.TypeEquipementSmt = type;
            }

            CListeObjetsDonnees lstObjets = new CListeObjetsDonnees(contexte.ContexteDonnee, typeof(CSpvEquip));

            lstObjets.Filtre = new CFiltreDataAvance(CSpvEquip.c_nomTable,
                                                     "HasNo(" + CSpvEquip.c_champSmtEquipementLogique_Id + ") and " +
                                                     "Has(TypeEquipement." + CSpvTypeq.c_champSmtTypeEquipement_Id + ") and " +
                                                     "has(" + CSpvSite.c_nomTable + "." + CSpvSite.c_champSmtSite_Id + ")");
            int nNbEquips = lstObjets.Count;
            int nEquip    = 0;

            if (contexte.IndicateurProgression != null)
            {
                contexte.IndicateurProgression.PushSegment(9, nNbEquips);
                contexte.SetInfoProgression(I.T("Transfering discovered equipments|20221"));
            }
            ArrayList lstEquips = lstObjets.ToArrayList();

            foreach (CSpvEquip equipSpv in lstEquips)
            {
                nEquip++;
                if (nEquip % 20 == 0 && contexte.IndicateurProgression != null)
                {
                    contexte.IndicateurProgression.SetValue(nEquip / 2);
                    contexte.SetInfoProgression((int)(nEquip / 2) + "/" + nNbEquips);
                }
                CSpvSite  siteSpv   = equipSpv.SpvSite;
                CSpvTypeq typeEqSpv = equipSpv.TypeEquipement;
                if (siteSpv != null && typeEqSpv != null)
                {
                    CTypeEquipement typeTimos = typeEqSpv.TypeEquipementSmt;
                    CSite           siteTimos = siteSpv.ObjetTimosAssocie;
                    if (typeTimos != null && siteTimos != null)
                    {
                        CEquipementLogique equipementTimos = new CEquipementLogique(contexte.ContexteDonnee);
                        equipementTimos.TypeEquipement = typeTimos;
                        equipementTimos.Site           = siteTimos;
                        equipementTimos.Libelle        = equipSpv.CommentairePourSituer;
                        equipSpv.ObjetTimosAssocie     = equipementTimos;
                    }
                }
            }
            foreach (CSpvEquip equipSpv in lstEquips)
            {
                nEquip++;
                if (nEquip % 20 == 0 && contexte.IndicateurProgression != null)
                {
                    contexte.IndicateurProgression.SetValue(nEquip / 2);
                    contexte.SetInfoProgression((int)(nEquip / 2) + "/" + nNbEquips);
                }
                CEquipementLogique equip = equipSpv.ObjetTimosAssocie;
                if (equipSpv.EquipementEnglobant != null)
                {
                    CEquipementLogique englobant = equipSpv.EquipementEnglobant.ObjetTimosAssocie;
                    if (englobant == null)
                    {
                        result = equipSpv.Delete(true);
                        if (!result)
                        {
                            return(result);
                        }
                    }
                    else
                    {
                        equip.EquipementLogiqueContenant = englobant;
                    }
                }
            }
            if (contexte.IndicateurProgression != null)
            {
                contexte.IndicateurProgression.PopSegment();
            }
            return(result);
        }