/////////////////////////////////////////////////////////////// /* * public override void CalculeUnicite() * { * if (SpvTypeq != null) * Row[c_champACCES_UNICITE] = CSpvTypeq.c_nomTableInDb + "/" + SpvTypeq.Id.ToString() + "/" + NomAcces; * else if (SpvSite != null) * Row[c_champACCES_UNICITE] = CSpvSite.c_nomTableInDb + "/" + SpvSite.Id.ToString() + "/" + NomAcces; * else if (SpvLiai != null) * Row[c_champACCES_UNICITE] = CSpvLiai.c_nomTableInDb + "/" + SpvLiai.Id.ToString() + "/" + NomAcces; * else * throw new Exception(I.T("Unknown case in computing unicity|50008")); ; * }*/ ////////////////////////////////////////////////////////////// public virtual CResultAErreur GenAccesAlarmeEquips() { CResultAErreur result = CResultAErreur.True; try { CSpvTypeq spvTypeq = SpvTypeq; if (spvTypeq != null) { CSpvAccesAlarme spvAccesAlarme; foreach (CSpvEquip spvEquip in spvTypeq.Equipements) { spvAccesAlarme = new CSpvAccesAlarme(ContexteDonnee); spvAccesAlarme.CreateNewInCurrentContexte(); spvAccesAlarme.InitFromTypeAccesAlarme(this); spvAccesAlarme.SpvEquip = spvEquip; } } } catch (Exception e) { result.EmpileErreur(new CErreurException(e)); } return(result); }
public CSpvTypeAccesAlarme TypeAccesAlarme() { if (SpvEquip != null) { CSpvTypeq spvTypeq = this.SpvEquip.TypeEquipement; CListeObjetsDonnees liste = new CListeObjetsDonnees(ContexteDonnee, typeof(CSpvTypeAccesAlarme)); liste.Filtre = new CFiltreData(CSpvTypeAccesAlarme.c_champTYPEQ_ID + "=@1 AND " + CSpvTypeAccesAlarme.c_champACCES_NOM + "=@2", spvTypeq.Id, this.NomAcces); if (liste.Count != 1) { return(null); } return((CSpvTypeAccesAlarme)liste[0]); } else { CSpvTypeAccesAlarme typeAccesAlarm = new CSpvTypeAccesAlarme(ContexteDonnee); if (typeAccesAlarm.ReadIfExists(Id)) { return(typeAccesAlarm); } else { return(null); } } }
public virtual CResultAErreur MajAccesAlarmeEquips() { CResultAErreur result = CResultAErreur.True; try { CSpvTypeq spvTypeq = SpvTypeq; string strNom; if (spvTypeq != null) { CSpvAccesAlarme spvAccesAlarme; strNom = (string)Row[c_champACCES_NOM, DataRowVersion.Original]; foreach (CSpvEquip spvEquip in spvTypeq.Equipements) { spvAccesAlarme = spvEquip.GetAccesAlarme(strNom); if (spvAccesAlarme != null) { spvAccesAlarme.InitFromTypeAccesAlarme(this); } } // Les données "alarme fréquente" sont-elles modifiées ? bool bChangeFreq = false; if (this.AlarmeGeree != null && this.AlarmeGeree.Row.RowState == DataRowState.Modified) { Int32 nFreqnOld = (Int32)this.AlarmeGeree.Row[CSpvAlarmGeree.c_champALARMGEREE_FREQN, DataRowVersion.Original]; Int32 nFreqpOld = (Int32)this.AlarmeGeree.Row[CSpvAlarmGeree.c_champALARMGEREE_FREQD, DataRowVersion.Original]; if (nFreqnOld != this.AlarmeGeree.AlarmgereeFreqNb || nFreqpOld != this.AlarmeGeree.AlarmgereeFreqPeriod) { bChangeFreq = true; } } if (this.AlarmeGeree != null && (this.AlarmeGeree.PropagerAuxEquipements || bChangeFreq)) { foreach (CSpvLienAccesAlarme accesAccesc in this.AlarmeGeree.SpvAcces_Accescs) { if (this.AlarmeGeree.PropagerAuxEquipements) { accesAccesc.MajFromAlarmeGeree(this.AlarmeGeree); } // La partie "Alarme fréquente" n'est modifiable // qu'au niveau de l'alarme gérée if (bChangeFreq) { accesAccesc.MajFrequenceFromAlarmeGeree(this.AlarmeGeree); } } } } } catch (Exception e) { result.EmpileErreur(new CErreurException(e)); } return(result); }
public static CResultAErreur SetSpvTypeqFromTypeEquipement(object objet, object valeur) { CSpvTypeq spvTypeq = valeur as CSpvTypeq; CTypeEquipement typeEquipement = objet as CTypeEquipement; if (spvTypeq != null && typeEquipement != null) { spvTypeq.TypeEquipementSmt = typeEquipement; } return(CResultAErreur.True); }
public static CSpvTypeq GetSpvTypeqFromTypeEquipementAvecCreation(CTypeEquipement typeEquipement) { CSpvTypeq spvTypeq = GetSpvTypeqFromTypeEquipement(typeEquipement) as CSpvTypeq; if (spvTypeq == null) { spvTypeq = new CSpvTypeq(typeEquipement.ContexteDonnee); spvTypeq.CreateNewInCurrentContexte(); //spvTypeq.SiteSmt = site; spvTypeq.TypeEquipementSmt = typeEquipement; spvTypeq.CopyFromTypeEquipement(typeEquipement); } return(spvTypeq); }
public static object GetSpvTypeqFromTypeEquipement(object objet) { CTypeEquipement typeEquipement = objet as CTypeEquipement; if (typeEquipement != null) { CSpvTypeq spvTypeq = new CSpvTypeq(typeEquipement.ContexteDonnee); if (spvTypeq.ReadIfExists(new CFiltreData(CSpvTypeq.c_champSmtTypeEquipement_Id + "=@1", typeEquipement.Id))) { return(spvTypeq); } } return(null); }
/// <summary> /// Permet, lors des effacements, de récupérer l'ancien enregistrement /// afin de pouvoir déclencher les traitements métier en rapport /// avec celui-ci /// </summary> /// <param name="typeqEquipementId">ID du type d'équipement SMT</param> public Int32 GetOriginalTypeqId(Int32 typeqEquipementId, CContexteDonnee ctx) { Int32 nTypeqId = -1; // ID du type SPV CListeObjetsDonnees liste = new CListeObjetsDonnees(ctx, typeof(CSpvTypeq)); liste.InterditLectureInDB = true; liste.RowStateFilter = DataViewRowState.Deleted; liste.Filtre = new CFiltreData(CSpvTypeq.c_champSmtTypeEquipement_Id + "=@1", typeqEquipementId); if (liste.Count == 1) { CSpvTypeq spvTypeq = (CSpvTypeq)liste[0]; nTypeqId = (Int32)spvTypeq.Row[CSpvTypeq.c_champSmtTypeEquipement_Id, DataRowVersion.Original]; } return(nTypeqId); }
/// //////////////////////////////////////////////////////// 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); }