/////////////////////////////////////////////////////////////// protected override CResultAErreur MyFillFromElementDeGraphe(CElementDeArbreOperationnel element) { CResultAErreur result = CResultAErreur.True; CElementDeArbreOperationnelEntite eltComposant = element as CElementDeArbreOperationnelEntite; if (eltComposant == null) { result.EmpileErreur(I.T("Bad element type|20030")); return(result); } CComposantDeGrapheReseau composant = eltComposant.Composant; IElementDeSchemaReseau eltAssocie = composant.GetElementAssocie(ContexteDonnee); ElementAssocie = null; if (eltAssocie is CSite) { ElementAssocie = CSpvSite.GetObjetSpvFromObjetTimosAvecCreation(eltAssocie as CSite); } else if (eltAssocie is CEquipementLogique) { ElementAssocie = CSpvEquip.GetObjetSpvFromObjetTimosAvecCreation(eltAssocie as CEquipementLogique); } else if (eltAssocie is CLienReseau) { ElementAssocie = CSpvLiai.GetObjetSpvFromObjetTimosAvecCreation(eltAssocie as CLienReseau); } if (ElementAssocie == null) { result.EmpileErreur(I.T("Can not associate element to Graph component|20031")); return(result); } return(result); }
// public void CopyFromLienReseau(CLienReseau lienReseau) public override void CopyFromObjetTimos(CLienReseau lienReseau) { CResultAErreur result = CanSupervise(lienReseau); if (!result) { throw new CExceptionErreur(result.Erreur); } NomTypeLiaison = lienReseau.TypeLienReseau.Libelle; Typeliaison = CSpvTypliai.GetObjetSpvFromObjetTimos(lienReseau.TypeLienReseau) as CSpvTypliai; if (lienReseau.Site1 != null) { SiteOrigine = CSpvSite.GetObjetSpvFromObjetTimosAvecCreation(lienReseau.Site1); } if (lienReseau.Site2 != null) { SiteDestination = CSpvSite.GetObjetSpvFromObjetTimosAvecCreation(lienReseau.Site2); } if (lienReseau.Equipement1 != null) { EquipementOrigine = CSpvEquip.GetObjetSpvFromObjetTimosAvecCreation(lienReseau.Equipement1); } if (lienReseau.Equipement2 != null) { EquipementDestination = CSpvEquip.GetObjetSpvFromObjetTimosAvecCreation(lienReseau.Equipement2); } result = UpdateMasquagesEquipements(); NomLiaison = lienReseau.Libelle; switch (lienReseau.Direction.Code) { case EDirectionLienReseau.UnVersDeux: Direction = new CSensLiaison(ESensLiaison.AVersB); break; case EDirectionLienReseau.DeuxVersUn: Direction = new CSensLiaison(ESensLiaison.BVersA); break; } /*UpdateSupportants(); * UpdateSupportés();*/ }
/// //////////////////////////////////////////////////////// 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); }
public bool FormatMessAccesAlarme(CSpvLienAccesAlarme spvLienAccesAlarme, DataRowState rowState) { Int32 nIdTypeCARTE_GTR = 0, nIdTypeIP2PORT = 0, nIdTypeGSITE = 0; string strCategorieObjet = ""; Int32 nIdObjet = 0; bool bEquipToSurv = false; string strCodeSaisie; string strAddrIP; if (rowState == DataRowState.Added) { strCodeSaisie = "C"; } else if (rowState == DataRowState.Modified) { strCodeSaisie = "M"; } else if (rowState == DataRowState.Deleted) { strCodeSaisie = "S"; } else { throw new Exception(I.T("DataRowState not provided for this function|50010")); } CSpvTypeq spvTypeq = new CSpvTypeq(ContexteDonnee); if (spvTypeq.ReadIfExists(new CFiltreData(CSpvTypeq.c_champTYPEQ_NOM + "=@1", CSpvTypeq.c_CARTE_GTR))) { nIdTypeCARTE_GTR = spvTypeq.Id; } if (spvTypeq.ReadIfExists(new CFiltreData(CSpvTypeq.c_champTYPEQ_NOM + "=@1", CSpvTypeq.c_GSITE))) { nIdTypeGSITE = spvTypeq.Id; } if (spvTypeq.ReadIfExists(new CFiltreData(CSpvTypeq.c_champTYPEQ_NOM + "=@1", CSpvTypeq.c_IP2PORT))) { nIdTypeIP2PORT = spvTypeq.Id; } CSpvAccesAlarme accesOne, accesTwo; accesOne = spvLienAccesAlarme.AccesAlarmeOne; accesTwo = spvLienAccesAlarme.AccesAlarmeTwo; CSpvEquip spvEqt = spvLienAccesAlarme.SpvEquip; CSpvSite spvSite = spvLienAccesAlarme.SpvSite; CSpvLiai spvLiai = spvLienAccesAlarme.SpvLiai; if (rowState == DataRowState.Deleted) { if (accesOne.Row.RowState == DataRowState.Deleted) { accesOne.VersionToReturn = DataRowVersion.Original; } if (accesTwo.Row.RowState == DataRowState.Deleted) { accesTwo.VersionToReturn = DataRowVersion.Original; } if (spvEqt != null && spvEqt.Row.RowState == DataRowState.Deleted) { spvEqt.VersionToReturn = DataRowVersion.Original; } if (spvSite != null && spvSite.Row.RowState == DataRowState.Deleted) { spvSite.VersionToReturn = DataRowVersion.Original; } if (spvLiai != null && spvLiai.Row.RowState == DataRowState.Deleted) { spvLiai.VersionToReturn = DataRowVersion.Original; } } if (accesOne == spvLienAccesAlarme.SpvAccesAlarmeSysteme0()) { // Dans ce cas, seul le cas GSITE nous intéresse CSpvEquip spvEquip = new CSpvEquip(ContexteDonnee); if (spvEquip.ReadIfExists(new CFiltreData(CSpvEquip.c_champEQUIP_ID + "=@1", spvLienAccesAlarme.BindingId))) { if (spvEquip.TypeEquipement.Id != nIdTypeGSITE) { return(false); } else { bEquipToSurv = spvEquip.ASuperviser; } } } else { if (spvSite != null) { strCategorieObjet = c_SITE; nIdObjet = spvSite.Id; bEquipToSurv = true; } else if (spvLiai != null) { strCategorieObjet = c_LIAISON; nIdObjet = spvLiai.Id; bEquipToSurv = true; } else if (spvEqt != null) { strCategorieObjet = c_EQUIP; nIdObjet = spvEqt.Id; bEquipToSurv = spvEqt.ASuperviser; strAddrIP = spvEqt.AdresseIP; } else { throw new Exception(I.T("Father object not filled|50009")); } } if (!bEquipToSurv) { return(false); } string strMess = ""; if (accesOne == spvLienAccesAlarme.SpvAccesAlarmeSysteme0()) { // Concerne un accès alarme GSITE if (rowState == DataRowState.Deleted) { strMess = string.Format("#9#7#5#S#{0}#{1}#", spvLienAccesAlarme.BindingId, spvEqt.CommentairePourSituer); } else { strMess = string.Format("#9#11#5#{0}#{1}#{2}#{3}#{4}#{5}#{6}#", strCodeSaisie, spvLienAccesAlarme.BindingId, spvEqt.CommentairePourSituer, spvLienAccesAlarme.DureeMin, spvLienAccesAlarme.FreqNb, spvLienAccesAlarme.FreqPeriod, System.Convert.ToInt32(spvLienAccesAlarme.Surveiller)); } } else if (accesTwo == spvLienAccesAlarme.SpvAccesAlarmeSysteme0()) { // Concerne un accès alarme TRAP if (rowState == DataRowState.Deleted) { strMess = string.Format("#9#8#5#S#{0}#{1}#{2}#", spvEqt.AdresseIP, spvEqt.Id, accesOne.TrapIdent); } else { strMess = string.Format("#9#12#4#{0}#{1}#{2}#{3}#{4}#{5}#{6}#{7}#", strCodeSaisie, spvEqt.AdresseIP, spvEqt.Id, accesOne.TrapIdent, spvLienAccesAlarme.DureeMin, spvLienAccesAlarme.FreqNb, spvLienAccesAlarme.FreqPeriod, System.Convert.ToInt32(spvLienAccesAlarme.Surveiller)); } } else if (accesTwo != null && accesTwo != spvLienAccesAlarme.SpvAccesAlarmeSysteme0()) { // Concerne un accès alarme de type boucle // La donnée "A surveiller" a-t-elle changée bool bSurveillanceChangee = (rowState == DataRowState.Added && spvLienAccesAlarme.Surveiller) || (rowState == DataRowState.Modified && (bool)spvLienAccesAlarme.Row[CSpvLienAccesAlarme.c_champALARMGEREE_TOSURV, DataRowVersion.Original] != spvLienAccesAlarme.Surveiller); if (accesTwo.SpvEquip.TypeEquipement.Id == nIdTypeCARTE_GTR) { // Le nom de l'équipement de collecte est de la forme // IS xx/GTR yy string strNomEquipCollecte = accesTwo.SpvEquip.CommentairePourSituer; if (rowState == DataRowState.Deleted) { strMess = string.Format("#9#9#2#S#{0}#{1}#{2}#{3}#", strCategorieObjet, nIdObjet, strNomEquipCollecte.Substring(3, 2), ((Convert.ToInt32(strNomEquipCollecte.Substring(10, 2)) - 1) * 48) + Convert.ToInt32(accesTwo.NomAcces)); } else if (bSurveillanceChangee) { strMess = string.Format("#9#10#2#{0}#{1}#{2}#{3}#{4}#{5}#", strCodeSaisie, strCategorieObjet, nIdObjet, strNomEquipCollecte.Substring(3, 2), ((Convert.ToInt32(strNomEquipCollecte.Substring(10, 2)) - 1) * 48) + Convert.ToInt32(accesTwo.NomAcces), System.Convert.ToInt32(spvLienAccesAlarme.Surveiller)); } } else { // IP2PORT ou IP2CHOICE ou autre EDC boucle de type IP (ex: NEC) if (rowState == DataRowState.Deleted) { strMess = string.Format("#9#10#3#S#{0}#{1}#{2}#{3}#{4}#", strCategorieObjet, nIdObjet, accesTwo.SpvEquip.AdresseIP, accesTwo.SpvEquip.Id, accesTwo.NomAcces); } else { strMess = string.Format("#9#14#3#{0}#{1}#{2}#{3}#{4}#{5}#{6}#{7}#{8}#{9}#", strCodeSaisie, strCategorieObjet, nIdObjet, accesTwo.SpvEquip.AdresseIP, accesTwo.SpvEquip.Id, accesTwo.NomAcces, spvLienAccesAlarme.DureeMin, spvLienAccesAlarme.FreqNb, spvLienAccesAlarme.FreqPeriod, System.Convert.ToInt32(spvLienAccesAlarme.Surveiller)); } } } Message = strMess; return(true); }