//----------------------------------------------------------------------------------------- /// <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; }
//----------------------------------------------------------------------------------------- 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); }
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; } } }
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); }
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); }
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; }
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); }
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); }
/// <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); }
//---------------------------------------------------- /// <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); }
/// //////////////////////////////////////////////////////// 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); }